Ilość dokumentów
Moderator: mikey
Ilość dokumentów
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ł?
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ł?
-
- Posty: 12
- Rejestracja: 19 sie 2018, 23:04
- Rola: Administrator CDN XL
- Wersja: 2017
Re: Ilość dokumentów
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
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
Re: Ilość dokumentów
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.
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.
Re: Ilość dokumentów
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
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
Kamil
Re: Ilość dokumentów
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 ;-(
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 ;-(
Re: Ilość dokumentów
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.
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
Kamil
-
- 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
Hej,
spróbuj użyć pola Trn LastMod będziesz miał w int, zapis o dokładnym czasie.
Pozdr
spróbuj użyć pola Trn LastMod będziesz miał w int, zapis o dokładnym czasie.
Pozdr