Cześć.
Mam prośbę do Was .
Czy mogę uzyskać u Was pomoc w stworzeniu filtra :
Pierwszy by ukrywał wszystkich klientów zalegających z płatnościami np: ustawienie kwota powyżej 2tys zł to znikają
Drugi zostawia na liście wszystkich dłużników.
Filtr w dziale Kontrahenci (ukrywanie dłużników i 2-ga opcja pokazywanie dłużników)
Moderator: mikey
Re: Filtr w dziale Kontrahenci (ukrywanie dłużników i 2-ga opcja pokazywanie dłużników)
Listę dłużników otrzymasz np. takim filtrem ale on chyba nie jest zbyt optymalny. Zakłada wartość faktur i korekt powyżej "Kwota"
Zalecałbym jednak stworzenie funkcji w MSSM zwracającą wartość float
wtedy można to wywołać dla tylko dłużników równej lub pow kwoty przeterminowanej:
działą to nieporównywalnie szybciej
Wszystkich dłużników po terminie wyfiltrujesz wtedy tak:
mogłem coś pokręcić bo przy drinku to piszę
czuwaj!
Kod: Zaznacz cały
@PAR ?@n9_.2|Kwota|&Kwota:REG=0 @? PAR@
Knt_GidNumer IN (
SELECT t.Trp_KntNumer
FROM CDN.TraPlat t
WHERE t.TrP_Typ = 2
AND t.TrP_Rozliczona = 0
AND t.TRP_Waluta = 'PLN'
AND t.TRP_GIDTyp IN (2033,2041,2034,2042)
AND t.Trp_Termin < cdn.DateToClarion(getdate())
GROUP BY t.TrP_KntNumer
HAVING SUM(t.Trp_Pozostaje) > 0
AND SUM(t.Trp_Pozostaje) >= ??_QKwota
)Kod: Zaznacz cały
CREATE FUNCTION [CDN].[Zadluzenie]
(
@knt_gid int, @knt_gidtyp int
)
RETURNS float
AS
BEGIN
DECLARE @wynik float = NULL
SELECT @wynik = sum(Trp_Pozostaje)
FROM CDN.TraPlat
WHERE Trp_KntNumer=@knt_gid
AND Trp_KntTyp=@knt_gidtyp
AND TrP_Typ = 2
AND TrP_Rozliczona = 0
AND TRP_Waluta = 'PLN' --mozna przesunąć do argumentu funkcji
AND TRP_GIDTyp IN (2033,2041,2034,2042) --faktury i korekty
AND Trp_Termin < cdn.DateToClarion(getdate())
RETURN @wynik
ENDKod: Zaznacz cały
@PAR ?@n9_.2|Kwota|&Kwota:REG=0 @? PAR@
Knt_GidNumer IN (
SELECT k.Knt_GidNumer
FROM CDN.KntKarty k
WHERE cdn.zadluzenie(k.Knt_GidNUmer, k.Knt_Gidtyp) IS NOT NULL
AND ISNULL(cdn.zadluzenie(k.Knt_GidNUmer, k.Knt_Gidtyp),0) >= ??_QKwota
)Wszystkich dłużników po terminie wyfiltrujesz wtedy tak:
Kod: Zaznacz cały
Knt_GidNumer IN (
SELECT k.Knt_GidNumer
FROM CDN.KntKarty k
WHERE cdn.zadluzenie(k.Knt_GidNUmer, k.Knt_Gidtyp) > 0
)
--------------------------------
Pozdrawiam
WW
Pozdrawiam
WW
Re: Filtr w dziale Kontrahenci (ukrywanie dłużników i 2-ga opcja pokazywanie dłużników)
Super.
Wszystko działa .
A czy jeszcze filtr w drugą stronę, ukrycie wszystkich dłużników od kwoty x ?
Czy mogę poprosić o pomoc jeszcze ?
Wszystko działa .
A czy jeszcze filtr w drugą stronę, ukrycie wszystkich dłużników od kwoty x ?
Czy mogę poprosić o pomoc jeszcze ?
Re: Filtr w dziale Kontrahenci (ukrywanie dłużników i 2-ga opcja pokazywanie dłużników)
Zamiana IN na NOT IN powinna być skuteczna. Potestuj.
Takie zapytanie powinno odrzucić wszystkich kontrahentów zwróconych przez podzapytanie. W ten sposób ukrywasz dłużników o zadłużeniu równym lub większym niż ??_QKwota.
Takie zapytanie powinno odrzucić wszystkich kontrahentów zwróconych przez podzapytanie. W ten sposób ukrywasz dłużników o zadłużeniu równym lub większym niż ??_QKwota.
Kod: Zaznacz cały
@PAR ?@n9_.2|Kwota|&Kwota:REG=0 @? PAR@
Knt_GidNumer NOT IN (
SELECT k.Knt_GidNumer
FROM CDN.KntKarty k
WHERE cdn.zadluzenie(k.Knt_GidNUmer, k.Knt_Gidtyp) IS NOT NULL
AND ISNULL(cdn.zadluzenie(k.Knt_GidNUmer, k.Knt_Gidtyp),0) >= ??_QKwota
)--------------------------------
Pozdrawiam
WW
Pozdrawiam
WW