Filtr w Rejestrze VAT
Moderator: mikey
-
- Posty: 50
- Rejestracja: 15 paź 2019, 13:07
- Rola: Administrator CDN XL
- Wersja: 2019
- Kontakt:
Filtr w Rejestrze VAT
Dzień Dobry,
W rejestrze VAT na poziomie nagłówka dokumentów utworzyłem kilka atrybutów, które przypisywane są do danego dokumentu (np. nazwisko osoby, która dany dokument kosztowy opisała na odwrocie). Zrobiłem filtr na liście tychże dokumentów w rejestrze VAT.
@PAR ?@S20|NAZWISKO|&NAZWISKO:REG=A @? PAR@
ifs.PodajAtrybut(TrN_GIDTyp, TrN_GIDNumer, 22) Like '%'+??NAZWISKO+'%'
ale pojawiła się dziwna sytuacja. Nie wszystkie pozycje z przypisanym atrybutem odnajduje filtr. Tak na prawdę nie odnajduje pozycji wpisywanych od kilku dni (wcześniejsze odnajduje). Wygląda na to, jakby przepełnił się jakiś stos czy coś w tym stylu.
Ktoś, coś?
W rejestrze VAT na poziomie nagłówka dokumentów utworzyłem kilka atrybutów, które przypisywane są do danego dokumentu (np. nazwisko osoby, która dany dokument kosztowy opisała na odwrocie). Zrobiłem filtr na liście tychże dokumentów w rejestrze VAT.
@PAR ?@S20|NAZWISKO|&NAZWISKO:REG=A @? PAR@
ifs.PodajAtrybut(TrN_GIDTyp, TrN_GIDNumer, 22) Like '%'+??NAZWISKO+'%'
ale pojawiła się dziwna sytuacja. Nie wszystkie pozycje z przypisanym atrybutem odnajduje filtr. Tak na prawdę nie odnajduje pozycji wpisywanych od kilku dni (wcześniejsze odnajduje). Wygląda na to, jakby przepełnił się jakiś stos czy coś w tym stylu.
Ktoś, coś?
Maciek L.
Re: Filtr w Rejestrze VAT
Ciężko coś powiedzieć, jeśli nie wiadomo co jest w ciele funkcji której używasz.
Pozdrawiam,
Mateusz
Pozdrawiam,
Mateusz
-
- Posty: 50
- Rejestracja: 15 paź 2019, 13:07
- Rola: Administrator CDN XL
- Wersja: 2019
- Kontakt:
Re: Filtr w Rejestrze VAT
Hmm, atrybut NAZWISKO - to pole kombi (zamknięta lista).
Filtr wskazałem w poprzedniej wyżej wiadomości, nie jest on skomplikowany. Pojawia się parametr użytkownikowi, który z tego korzysta do wpisania nazwiska lub fragmentu nazwiska osoby, która podpisywała dokumenty i wynikiem mają być wyświetlone tylko te dokumenty zakupu, które dotyczą danej osoby.
Może być zrezygnować z dynamicznego pola, a zaszyć konkretne nazwisko w filtrze? Tylko nie wiem jak zmienić zapytanie.....
Filtr wskazałem w poprzedniej wyżej wiadomości, nie jest on skomplikowany. Pojawia się parametr użytkownikowi, który z tego korzysta do wpisania nazwiska lub fragmentu nazwiska osoby, która podpisywała dokumenty i wynikiem mają być wyświetlone tylko te dokumenty zakupu, które dotyczą danej osoby.
Może być zrezygnować z dynamicznego pola, a zaszyć konkretne nazwisko w filtrze? Tylko nie wiem jak zmienić zapytanie.....
Maciek L.
-
- Posty: 50
- Rejestracja: 15 paź 2019, 13:07
- Rola: Administrator CDN XL
- Wersja: 2019
- Kontakt:
Re: Filtr w Rejestrze VAT
Może to będzie naprowadzenie na jakąś pomoc.....
Otóż, posiadam dwa atrybuty na poziomie dokumentu w omawianym rejestrze VAT.
Atrybut 1: DATA
Atrybut 2: NAZWISKO - już wcześniej opisywany wyżej w wątku, po którym nie mogę filtrować części dokumentów
Dostawiłem dwie ręczne kolumny na poziomie listy dokumentów w rejestrze VAT, które wywołują wartości z wyżej wymienionych atrybutów.
KOLUMNA 1: wartość atrybutu DATA
KOLUMNA 2: wartość atrybutu NAZWISKO
W KOLUMNA 1 wszystko gra, czyli z każdego dokumentu pokazuje wartość atrybutu
W KOLUMNA 2 - tylko z części dokumentów pokazuje wartość, a z części nie pokazuje nic. Dokładniej do pewnego dnia pokazuje wartości atrybutów, a od pewnego dnia już ich nie pokazuje, aż do teraz....
Definicje kolumn:
RĘCZNA KOLUMNA DATA:
select isnull(k1.DataKsiegowania,'') as Data_księgowania from (select trn_gidtyp as dokgidtyp, trn_gidnumer as dokgidnumer,
convert (varchar(10), cdn.tstodate (Atr_Wartosc,0), 121) as DataKsiegowania
from cdn.TraNag join cdn.Atrybuty on TrN_GIDNumer=Atr_ObiNumer and TrN_GIDTyp=Atr_ObiTyp and Atr_AtkId=28) as k1
where {filtrsql}
RĘCZNA KOLUMNA NAZWISKO:
SELECT ifs.PodajAtrybut(TrN_GIDTyp,TrN_GIDNumer,22) as OPISUJE
from
(
SELECT
Trn_GIDTyp, Trn_GIDNumer
, Trn_GIDTyp DokGIDTyp
, Trn_GIDNumer DokGIDNumer
, Trn_DokumentObcy
FROM CDN.TraNag (NOLOCK)
) DOK
WHERE {filtrsql}
Otóż, posiadam dwa atrybuty na poziomie dokumentu w omawianym rejestrze VAT.
Atrybut 1: DATA
Atrybut 2: NAZWISKO - już wcześniej opisywany wyżej w wątku, po którym nie mogę filtrować części dokumentów
Dostawiłem dwie ręczne kolumny na poziomie listy dokumentów w rejestrze VAT, które wywołują wartości z wyżej wymienionych atrybutów.
KOLUMNA 1: wartość atrybutu DATA
KOLUMNA 2: wartość atrybutu NAZWISKO
W KOLUMNA 1 wszystko gra, czyli z każdego dokumentu pokazuje wartość atrybutu
W KOLUMNA 2 - tylko z części dokumentów pokazuje wartość, a z części nie pokazuje nic. Dokładniej do pewnego dnia pokazuje wartości atrybutów, a od pewnego dnia już ich nie pokazuje, aż do teraz....
Definicje kolumn:
RĘCZNA KOLUMNA DATA:
select isnull(k1.DataKsiegowania,'') as Data_księgowania from (select trn_gidtyp as dokgidtyp, trn_gidnumer as dokgidnumer,
convert (varchar(10), cdn.tstodate (Atr_Wartosc,0), 121) as DataKsiegowania
from cdn.TraNag join cdn.Atrybuty on TrN_GIDNumer=Atr_ObiNumer and TrN_GIDTyp=Atr_ObiTyp and Atr_AtkId=28) as k1
where {filtrsql}
RĘCZNA KOLUMNA NAZWISKO:
SELECT ifs.PodajAtrybut(TrN_GIDTyp,TrN_GIDNumer,22) as OPISUJE
from
(
SELECT
Trn_GIDTyp, Trn_GIDNumer
, Trn_GIDTyp DokGIDTyp
, Trn_GIDNumer DokGIDNumer
, Trn_DokumentObcy
FROM CDN.TraNag (NOLOCK)
) DOK
WHERE {filtrsql}
Maciek L.
Re: Filtr w Rejestrze VAT
Ciężko coś powiedzieć, jeśli nie wiadomo co jest w ciele funkcji której używasz.
Podpowiem, że funkcja to "ifs.PodajAtrybut".
Podpowiem, że funkcja to "ifs.PodajAtrybut".
-
- Posty: 50
- Rejestracja: 15 paź 2019, 13:07
- Rola: Administrator CDN XL
- Wersja: 2019
- Kontakt:
Re: Filtr w Rejestrze VAT
elmiq - dzięki za sugestię i naprowadzenie. Filtr działa. Napisałem go w ten sposób:
@PAR ?@S20|NAZWISKO|&NAZWISKO:REG=A @? PAR@
TrN_GidNumer in (SELECT Atr_ObiNumer FROM cdn.atrybuty WHERE Atr_Wartosc LIKE '%'+??NAZWISKO+'%')
Dzięki temu pracownik księgowości może w szybki sposób dotrze√ do dokumentów z obszaru osoby której nazwisko wpisze w parametrze (przy uruchamianiu filtra).
Natomiast w jaki sposób zmienić składnię, by filtr powyższy pokazywał wszystkie dokumenty z obszaru pracownika ale takie, których drugi atrybut (także w nagłówku dokumentu) jest pusty.
@PAR ?@S20|NAZWISKO|&NAZWISKO:REG=A @? PAR@
TrN_GidNumer in (SELECT Atr_ObiNumer FROM cdn.atrybuty WHERE Atr_Wartosc LIKE '%'+??NAZWISKO+'%')
Dzięki temu pracownik księgowości może w szybki sposób dotrze√ do dokumentów z obszaru osoby której nazwisko wpisze w parametrze (przy uruchamianiu filtra).
Natomiast w jaki sposób zmienić składnię, by filtr powyższy pokazywał wszystkie dokumenty z obszaru pracownika ale takie, których drugi atrybut (także w nagłówku dokumentu) jest pusty.
Maciek L.
Re: Filtr w Rejestrze VAT
Ogólnie rzecz biorąc skrypt:
Może działać Ci błędnie ponieważ może złożyć się dla różnych obiektów ten sam numer id, dlatego należy również rozgraniczać po typie obiektu.
Również sugeruję nie przeszukiwać wszystkich atrybutów tylko te konkretne które nas interesują.
Wyciągnij sobie z tabeli id klasy atrybutu:
I spróbuj wykorzystać kod:
Przy czym musisz sobie podstawić sobie id klas atrybutów: "(id klasy atrybutu)"
Dla "A1.Atr_AtkId = (id klasy atrybutu)" id klasy w której znajdują się nazwiska
Dla "A2.Atr_AtkId = (id klasy atrybutu)" id klasy która wartość atrybutu powinna być pusta.
Mam nadzieję że w miarę zrozumiale to rozpisałem.
Kod: Zaznacz cały
TrN_GidNumer in (SELECT Atr_ObiNumer FROM cdn.atrybuty WHERE Atr_Wartosc LIKE '%'+??NAZWISKO+'%')
Również sugeruję nie przeszukiwać wszystkich atrybutów tylko te konkretne które nas interesują.
Wyciągnij sobie z tabeli id klasy atrybutu:
Kod: Zaznacz cały
SELECT AtK_ID FROM CDN.AtrybutyKlasy WHERE AtK_Nazwa = 'Wprowadź nazwę atrybutu z XLa'
Kod: Zaznacz cały
@PAR ?@S20|NAZWISKO|&NAZWISKO:REG=A @? PAR@
TrN_GidNumer in (
SELECT
TrN_GIDNumer
FROM CDN.TraNag
INNER JOIN CDN.Atrybuty A1 ON TrN_GIDNumer = A1.Atr_ObiNumer AND TrN_GIDTyp = A1.Atr_ObiTyp AND A1.Atr_AtkId = (id klasy atrybutu)
INNER JOIN CDN.Atrybuty A2 ON TrN_GIDNumer = A2.Atr_ObiNumer AND TrN_GIDTyp = A2.Atr_ObiTyp AND A2.Atr_AtkId = (id klasy atrybutu)
WHERE A1.Atr_Wartosc LIKE '%'+??NAZWISKO+'%' AND A2.Atr_Wartosc = ''
)
Dla "A1.Atr_AtkId = (id klasy atrybutu)" id klasy w której znajdują się nazwiska
Dla "A2.Atr_AtkId = (id klasy atrybutu)" id klasy która wartość atrybutu powinna być pusta.
Mam nadzieję że w miarę zrozumiale to rozpisałem.
Pozdrawiam,
Kamil
Kamil
-
- Posty: 50
- Rejestracja: 15 paź 2019, 13:07
- Rola: Administrator CDN XL
- Wersja: 2019
- Kontakt:
Re: Filtr w Rejestrze VAT
Kamil - świetnie to napisałeś. Jasne jak słońce i już odpaliłem. Jedynie jeszcze jeden element układanki mi nie gra.
Na końcu składni filtra widnieje u Ciebie
AND A2.Atr_Wartosc = ''
Między apostrofami jest pusto, wynikało by z tego, że ten drugi warunek ma zwrócić wszystko to co nie ma żadnej wartości w drugim atrybucie.
Więc po zastosowaniu jest tak, że filtruje i pokazuje dokumenty, które w wartości drugiego atrybutu już "coś zawierają" np. DO WYJAŚNIENIA, gdyż jest to pole @s255. Być może spacja między DO oraz WYJAŚNIENIA ma tu jakiś wpływ.
Na końcu składni filtra widnieje u Ciebie
AND A2.Atr_Wartosc = ''
Między apostrofami jest pusto, wynikało by z tego, że ten drugi warunek ma zwrócić wszystko to co nie ma żadnej wartości w drugim atrybucie.
Więc po zastosowaniu jest tak, że filtruje i pokazuje dokumenty, które w wartości drugiego atrybutu już "coś zawierają" np. DO WYJAŚNIENIA, gdyż jest to pole @s255. Być może spacja między DO oraz WYJAŚNIENIA ma tu jakiś wpływ.
Maciek L.
Re: Filtr w Rejestrze VAT
id klasy atrybutu jest dobrze przypisane? Być może odwołujesz się do innego atrybutu? Sprawdź czy dobrze wprowadziłeś id klasy atrybutu dla:
spacja nie ma żadnego wypływu ponieważ warunek "A2.Atr_Wartosc = ''" ma sprawdzić czy wartość w atrybucie jest pusta tak jak to napisałeś we wstępnym założeniu.A2.Atr_AtkId = (id klasy atrybutu)
Pozdrawiam,
Kamil
Kamil
-
- Posty: 50
- Rejestracja: 15 paź 2019, 13:07
- Rola: Administrator CDN XL
- Wersja: 2019
- Kontakt:
Re: Filtr w Rejestrze VAT
Kamil! Bardzo dziękuję raz jeszcze. Z tabeli klasy atrybutów prawidłowo podałem numery Atr_AtkId i nadal nie zadziałało ( ). Wywaliłem ten atrybut i dodałem kolejny i poszło. Cały czas pracuję w środowisku testowym więc zanim uruchomię tą funkcjonalność zostaje mi jeszcze konstrukcja dwóch kolumn na tabeli VAT, które zwracały by wartości tych wyżej wymienianych atrybutów.
Wcześniej w wątku (4 posty wyżej opisałem ich składnię) - jedna z wcześniejszych kolumn dodanych przeze mnie ręcznie prawidłowo funkcjonuje do dziś. Dwie nowe kolumny oparte o wyżej wymienione dwa atrybuty nie działają.
Wcześniej w wątku (4 posty wyżej opisałem ich składnię) - jedna z wcześniejszych kolumn dodanych przeze mnie ręcznie prawidłowo funkcjonuje do dziś. Dwie nowe kolumny oparte o wyżej wymienione dwa atrybuty nie działają.
Maciek L.