Strona 1 z 1

Filtr w oparciu o atrybut na TraPlat

: 22 cze 2010, 22:06
autor: wojtini
Dodałem taki atrybut do PŁATNOŚCI:

Obrazek

Obrazek


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=1

PS
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) = 76512
czy to raczej powinno być coś w ten deseń ??

Kod: 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
)
FUNKCJA AS_AtrybutGida

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)
   
end
FUNKCJA AS_DateToTS

Kod: 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



Re: Filtr w oparciu o atrybut na TraPlat

: 24 cze 2010, 11:53
autor: JakubK
witam

Zrób w filtrze coś takiego
trp_gidnumer in
(select trp_gidnumer from cdn.traplat
where warunki_funkcje_i_inne_cuda
)