Ilość dokumentów

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

Moderator: mikey

Lukas
Posty: 124
Rejestracja: 28 wrz 2017, 14:57
Rola: Użytkownik CDN XL
Wersja: 2019

Ilość dokumentów

Post autor: Lukas »

Cześć!

Potrzebuję wygenerować raport, w którym mam dane o ilości dokumentów wystawionych przez konkretnego operatora danego dnia.

W BI niestety nie da się tego łatwo ułożyć, ponieważ nie ma możliwości ustawienia "daty aktualnej". Mamy sytuację taką, że dokumenty, które wystawiamy/wprowadzamy mają daty wystawienia wcześniejsza niż "dzisiaj". I tutaj jest problem, bo potrzebuję po aktualnej dacie. Macie może pomysł?

KrzysztofKK
Posty: 12
Rejestracja: 19 sie 2018, 23:04
Rola: Administrator CDN XL
Wersja: 2017

Re: Ilość dokumentów

Post autor: KrzysztofKK »

Witam Serdecznie poniżej kod który można zmodyfikować o dodanie opiekunów przypisanych dla kontrahentów - ja mam to zrobione pod "Rysuj Wykres". Jak będziesz miał jakieś pytania to śmiało - mogę odpowiedzieć ze spóźnionym zapłonem ale odpisze :D

Kod: Zaznacz cały

@PAR ?@D17|DataOd|Data od:REG={Today()} @? PAR@
@PAR ?@D17|DataDo|Data do:REG={Today()} @? PAR@
@PAR ?@N10.2|KwotaOd|Kwota od:0 @? PAR@
@PAR ?@N10.2|KwotaDo|Kwota do:0 @? PAR@

select 1 as 'ID', Knt_Akronim as 'Akronim', Knt_Nazwa1 as 'Nazwa kontrahenta', count(trn_gidnumer) as 'Ilość dokumentów' from cdn.TraNag, cdn.KntKarty
where
	--połączenie z kontrahentami 
	TrN_KntNumer=Knt_GIDNumer
	and
	--wz,wze,fs,fse,pa
	TrN_GIDTyp in (2001, 2005, 2033, 2037, 2034)
	and
	--nie spinaczowa: WZ i PZ bez spinacza,PA = 0
	TrN_SpiNumer between(case when TrN_GIDTyp in(2033,2037) then TrN_GIDNumer else 0 end) and (case when TrN_GIDTyp in(2033,2037) then TrN_GIDNumer else 9999999999 end)
	and
	--kwota netto na transakcji
	TrN_NettoR between ??KwotaOd and ??KwotaDo
	and
	--okres, którego ma dotyczyć:
	TrN_Data2 between ??DataOd and ??DataDo

	group by Knt_Akronim, Knt_Nazwa1
	order by Knt_Akronim, Knt_Nazwa1

Lukas
Posty: 124
Rejestracja: 28 wrz 2017, 14:57
Rola: Użytkownik CDN XL
Wersja: 2019

Re: Ilość dokumentów

Post autor: Lukas »

Cześć,

dzięki za zaangażowanie, ale nie o to chodzi :)

potrzebuję ogarnąć zestawienie z ilością dokumentów wystawionych przez danego operatora na konkretny dzień. Czyli

Jan Kowalski wprowadza FZ, wystawia FS, wystawia NM czyli jednego dnia wystawił 3 dokumenty.

blecku
Posty: 56
Rejestracja: 08 sie 2018, 10:29
Rola: Administrator CDN XL

Re: Ilość dokumentów

Post autor: blecku »

Zapytanie na twój raport jest banalnie proste i przy wykazaniu choć trochę inicjatywy napiszesz je sobie sam.

W zależności jakich dokumentów poszukujesz musisz dobrać sobie odpowiednie tabele z nagłówkami dokumentów. Np. taką tabelą jest TraNag.
Do tego pasowało by wiedzieć jaki to operator więc fajnie by było zrobić złączenie do kart operatorów podpowiem tabela OpeKarty.
Mała podpowiedź kolumna w tabeli TraNag odpowiadająca za operatora wystawiającego dokument to TrN_OpeNumerW.
Następnie pasowało by napisać warunek aby wybrało nam odpowiednie dokumenty, które zostały wystawione w danym dniu.
Z pomocą przyjdzie nam wspaniała funkcja "DATEDIFF" w której dowiemy się jaka jest różnica dni dnia dzisiejszego od bitwy pod C, podpowiem był to rok 1800, zimą 28 grudnia. A żeby dostać datę dzisiejszą możemy wykorzystać również funkcję "GETDATE".
Wynik funkcji "DATEDIFF" pasuje zestawić w tym przypadku w tabeli TraNag z kolumną TrN_Data2, która przechowuje właśnie różnicę dni bitwy pod C od dnia wystawienia dokumentu.
Dodatkowo możesz w warunku wybrać sobie konkretnego operatora wprowadzając odpowiedni identyfikator lub nazwę jak kto woli.
Na koniec przychodzi kolejna wspaniała funkcja zwracająca ilość zgrupowanych rekordów "COUNT".
No chyba że nie napiszemy warunku na poszczególnego operatora. To musimy stworzyć zgrupowanie rekordów po operatorze i wyświetlić informację, który to jest np. po kolumnie Ope_Ident.

Dodatkowo żeby np. wiedzieć jakie dokumenty nasz wspaniały operator dzisiaj najwięcej narobił możemy zrobić związanie do tabeli Obiekty gdzie po związaniu po typie dokumentu i wyświetleniu nazwy odpowiedniego typu i zgrupowaniu odpowiednich kolumn, wyjdzie wspaniały twór zwany raportem. :)

Mam nadzieję że wszystkie najważniejsze rzeczy opisałem. Powodzenia w tworzeniu własnego zapytania a nie szukania gotowców :)
Pozdrawiam,
Kamil

Lukas
Posty: 124
Rejestracja: 28 wrz 2017, 14:57
Rola: Użytkownik CDN XL
Wersja: 2019

Re: Ilość dokumentów

Post autor: Lukas »

Dzięki Kamil!

Natomiast w tych tabelach jest pewien problem, bo nie mamy daty, która pokazuje fizyczne wprowadzenie dokumentu do systemu. Tak jak na przykład w tabeli Dzienniki, gdzie jest timestamp wprowadzenia zapisu księgowego. Data wprowadzenia dokumentu =/= data fizycznego wprowadzenia dokumentu do systemu.

Może od nowszej wersji XLa, gdzie jest pełna Historia Zmian to będzie, póki co na wersji 2019.3.2 tego nie mamy ;-(

blecku
Posty: 56
Rejestracja: 08 sie 2018, 10:29
Rola: Administrator CDN XL

Re: Ilość dokumentów

Post autor: blecku »

No jak chce się aż taką straszną kontrolę wprowadzić no to przecież można stworzyć np. trigger na operację typu Insert i zapisywać logi gdzieś na boku we własnej tabeli.
Oczywiście jest to koszt później przy zapisie dokumentów. Ale zawsze jest coś kosztem czegoś.
No i oczywiście będzie problem z historycznymi wpisami.
Pozdrawiam,
Kamil

Swiety_M
Posty: 381
Rejestracja: 19 lip 2012, 13:05
Rola: Administrator CDN XL
Wersja: 8.0
Lokalizacja: Poznań, Września, Konin
Kontakt:

Re: Ilość dokumentów

Post autor: Swiety_M »

Hej,
spróbuj użyć pola Trn LastMod będziesz miał w int, zapis o dokładnym czasie.
Pozdr
Marek Michałowski
www.tecado.pl
ERP/WMS/SFA
POZNAŃ - WRZEŚNIA

ODPOWIEDZ