Filtr w oparciu o atrybut na TraPlat
: 22 cze 2010, 22:06
Dodałem taki atrybut do PŁATNOŚCI:


Osoby na zakładce PŁATNOŚCI sprawdzają dane typu konto bankowe kwota i data i wstawiają ten atrybut
wraz z innym typu TAK/NIE aby oznaczyć że dana płatność jest sprawdzona.
Ten atrybut dodaje bieżącą datę czyli datę sprawdzenia - ponieważ osoby chcą sobie robić wydruk sprawdzonych płatności w danym dniu.
I teraz mam problem jak w oparciu o to zbudować na liście KSIĘGOWOŚĆ -> PŁATNOŚCI -> NIEROZLICZONE
filtr, który po podaniu zakresów dat (data początkowa i końcowa) wyfiltruje tylko te płatności, których ATRYBUT
Data sprawdzenia: będzie spełniony (zawiera się w przedziale dat)
W Management Studio taki SQL działa ale nie wiem czemu różne kombinację na liście filtrów nie chcą działąć ???
Chyba coś źle pobieram albo konwertuje ???
PS
Czemu taka składnia na filtrze nie działą ???
czy to raczej powinno być coś w ten deseń ??
FUNKCJA AS_AtrybutGida
FUNKCJA AS_DateToTS


Osoby na zakładce PŁATNOŚCI sprawdzają dane typu konto bankowe kwota i data i wstawiają ten atrybut
wraz z innym typu TAK/NIE aby oznaczyć że dana płatność jest sprawdzona.
Ten atrybut dodaje bieżącą datę czyli datę sprawdzenia - ponieważ osoby chcą sobie robić wydruk sprawdzonych płatności w danym dniu.
I teraz mam problem jak w oparciu o to zbudować na liście KSIĘGOWOŚĆ -> PŁATNOŚCI -> NIEROZLICZONE
filtr, który po podaniu zakresów dat (data początkowa i końcowa) wyfiltruje tylko te płatności, których ATRYBUT
Data sprawdzenia: będzie spełniony (zawiera się w przedziale dat)
W Management Studio taki SQL działa ale nie wiem czemu różne kombinację na liście filtrów nie chcą działąć ???
Chyba coś źle pobieram albo konwertuje ???
Kod: Zaznacz cały
SELECT
CDN.AS_AtrybutGida ('Data sprawdzenia:', TrP_GIDTyp, TrP_GIDFirma, TrP_GIDNumer, 63) as DataSPR,
CDN.AS_DateToTS ((CDN.AS_AtrybutGida ('Data sprawdzenia:', TrP_GIDTyp, TrP_GIDFirma, TrP_GIDNumer, 63)),0) as DataSPR2,
*
FROM CDN.TraPlat
where
TrP_GIDTyp=1521 AND TrP_GIDNumer=781695 AND TrP_GIDLp=1PS
Czemu taka składnia na filtrze nie działą ???
Kod: Zaznacz cały
CDN.AS_DateToTS ((CDN.AS_AtrybutGida ('Data sprawdzenia:', TrP_GIDTyp, TrP_GIDFirma, TrP_GIDNumer, 63)),0) = 76512Kod: Zaznacz cały
EXISTS
(
SELECT 1
from CDN.Atrybuty
where
CDN.AS_DateToTS(Atr_Wartosc,0) = @PAR ?@D17|DataSPR|&DataSPR:REG={Today()} @? PAR@
AND Atr_Obityp = TrP_GIDTyp
AND Atr_Obinumer = TrP_GIDNumer
)Kod: Zaznacz cały
CREATE Function [CDN].[AS_AtrybutGida] (@p_atrybut as char, @p_gidtyp as int, @p_gidfirma as int, @p_gidnumer as int, @p_atr_atkid as int)
returns varchar(100)
as
begin
declare @v_atrybut varchar(100)
Set @v_atrybut = ISNUll((
SELECT top 1 Atr_Wartosc
FROM CDN.Atrybuty
WHERE Atr_AtkId = @p_atr_atkid
AND Atr_Obityp = @p_gidtyp
AND Atr_Obifirma = @p_gidfirma
AND Atr_Obinumer = @p_gidnumer
), 0)
Return(@v_atrybut)
endKod: Zaznacz cały
CREATE FUNCTION [CDN].[AS_DateToTS]( @data datetime, @ists bit)
RETURNS INT
as
begin
IF (@ists=1)
RETURN DATEDIFF( ss,CONVERT(DATETIME,'19900101',11),@data )
RETURN DATEDIFF( dd,CONVERT(DATETIME,'18001228',11), @data )
end