Filtr w oparciu o atrybut na TraPlat

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

Moderator: mikey

Awatar użytkownika
wojtini
Posty: 150
Rejestracja: 24 sty 2008, 22:41
Rola: Administrator CDN XL
Wersja: 2016
Lokalizacja: Grodków, opolskie

Filtr w oparciu o atrybut na TraPlat

Post 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


PoZdrawiam

Wojciech FRED Błauciak
Administrator AgroAs.pl
GG# 2913
GSM: 608 037 025
administrator@agroas.pl

JakubK
Posty: 77
Rejestracja: 09 lis 2009, 12:22
Rola: Administrator CDN XL

Re: Filtr w oparciu o atrybut na TraPlat

Post autor: JakubK »

witam

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

ODPOWIEDZ