Filtry po terminie (ilość dni) na liście nierozliczonych płatności.

Zapytania SQL, widoki, Crystal, definicje filtrów, szybkich raportów, wydruków, API, Hydra, .NET

Moderator: mikey

VoYecK
Posty: 151
Rejestracja: 26 paź 2016, 14:11
Rola: Użytkownik CDN XL
Wersja: 2023
Kontakt:

Filtry po terminie (ilość dni) na liście nierozliczonych płatności.

Post autor: VoYecK »

Dzień dobry, proszę o pomoc w napisaniu filtrów na "liście nierozliczonych płatności" aby można było wyfiltrować faktury, które są po terminie:
1-3 dni,
4-7 dni,
8-14 dni,
15-30 dni,
31-40 dni,
i powyżej 40 dni.

Dziękuję z góry.

Miłego dnia.

Awatar użytkownika
praiser
Posty: 1091
Rejestracja: 02 lip 2014, 12:22
Rola: Handlowiec CDN XL
Wersja: 2023

Re: Filtry po terminie (ilość dni) na liście nierozliczonych płatności.

Post autor: praiser »

Trzeba pamiętać, że filtr użytkownika działa jako AND dla filtrów z okna, zatem gdy ustawisz główny filtr na dzisiejsze albo przeterminowane (ale poza zakresem badanego okresu), to wynik będzie zerowy. Najlepiej ustawić zawsze główny filtr na wszystkie (wtedy filtr z okna nie dotyka Trp_Termin i daty z własnego filtra złapią zadane okresy).

Kod: Zaznacz cały

@PAR ?@O(&do 3:1|&od 4 do 7:2|&od 8 do14:3|&od 15 do 30:4|&od 31 do 40:5|&pow 40:6)|Dnipoterminie|&Dni po terminie:REG=82112 @? PAR@
Trp_GidNumer IN
(select Trp_GidNumer from CDN.TraPlat TRP 
where Trp_GidNumer = TRP.Trp_GidNumer 
AND 
(
  (??Dnipoterminie = 1 AND TRP.Trp_Termin BETWEEN DATEDIFF(d,'18001228',getdate())-3 AND DATEDIFF(d,'18001228',getdate())-1)
  OR (??Dnipoterminie = 2 AND TRP.Trp_Termin BETWEEN DATEDIFF(d,'18001228',getdate())-7 AND DATEDIFF(d,'18001228',getdate())-4)
  OR (??Dnipoterminie = 3 AND TRP.Trp_Termin BETWEEN DATEDIFF(d,'18001228',getdate())-14 AND DATEDIFF(d,'18001228',getdate())-8)
  OR (??Dnipoterminie = 4 AND TRP.Trp_Termin BETWEEN DATEDIFF(d,'18001228',getdate())-30 AND DATEDIFF(d,'18001228',getdate())-15)
  OR (??Dnipoterminie = 5 AND TRP.Trp_Termin BETWEEN DATEDIFF(d,'18001228',getdate())-40 AND DATEDIFF(d,'18001228',getdate())-31)
  OR (??Dnipoterminie = 6 AND TRP.Trp_Termin < DATEDIFF(d,'18001228',getdate())-40)
))
--------------------------------
Pozdrawiam
WW

VoYecK
Posty: 151
Rejestracja: 26 paź 2016, 14:11
Rola: Użytkownik CDN XL
Wersja: 2023
Kontakt:

Re: Filtry po terminie (ilość dni) na liście nierozliczonych płatności.

Post autor: VoYecK »

Dziękuję ślicznie za kolejną pomoc.

Działa :-)

Miłego dnia.

ODPOWIEDZ