Zmiany pomiędzy wersją 1 and wersją 2 dla UserGuide/AdvancedConfiguration/DefiningReports/ReportParams

Pokaż
Ignoruj:
Data i czas:
08/24/12 14:29:47 (12 years temu)
Autor:
TS (IP: 213.227.67.33)
Komentarz:

--

Legend:

Bez zmian
Dodane
Usunięte
Zmienione
  • UserGuide/AdvancedConfiguration/DefiningReports/ReportParams

    v1 v2  
    1 = [wiki:UserGuide Przewodnik użytkownika]/[wiki:UserGuide/AdvancedConfiguration/DefiningReports Tworzenie raportów] > AAA = 
     1= [wiki:UserGuide Przewodnik użytkownika]/[wiki:UserGuide/AdvancedConfiguration/DefiningReports Tworzenie raportów w SQL] > Filtry dla raportów = 
     2 
     3= [wiki:UserGuide Przewodnik użytkownika] > Filtry dla raportów = 
     4 
     5{{{ 
     6#!html 
     7<style> 
     8table.wiki { 
     9border: 1px solid #CCC; 
     10border-collapse: collapse; 
     11border-spacing: 0; 
     12} 
     13 
     14table.wiki td { 
     15border: 1px solid #CCC; 
     16padding: 10px; 
     17border-image: initial; 
     18} 
     19tr > td:first-child {  
     20font-weight:bold; 
     21} 
     22tr > tr:first-child {  
     23font-weight:bold; 
     24} 
     25tr:first-child { 
     26color:white; 
     27text-align:center; 
     28}  
     29tr:first-child td { 
     30background-color: #0BA1E0; 
     31color:white; 
     32font-weight:bold; 
     33} 
     34</style> 
     35}}} 
     36 
     37== Wstęp == 
     38 
     39Moduł raportów w systemie eDokumenty umożliwia filtrowanie danego raportu poprzez określenie parametrów na dwa sposoby: 
     40 - standardowe parametry 
     41 - utworzenie filtrów przez użytkownika 
     42 
     43== Standardowe parametry == 
     44 
     45Standardowe parametry to specjalne tokeny dzięki, którym możemy obsłużyć przekazywane dane z listy, kartoteki lub poprzez formularz parametrów do raportu. 
     46 
     47Należy zwrócić uwagę na miejsce z którego jest wywoływany raport gdyż ma to wpływ na definicję operatora SQL przed takim tokenem. 
     48Warunki stosowanie operatorów: 
     49|| Operator || Kiedy stosować || Przykład parametru || 
     50|| IN || dla listy gdyż możemy otrzymać kilka zaznaczonych elementów.[[BR]] Token zostanie zamieniony na identyfikatory z danej listy np.: 1,2,3,4 || '''Miejsce:''' Lista klientów [[BR]] '''Parametr:''' contid IN ({CONTID}) || 
     51|| znak = || dla kartoteki przekazywana jest tylko jedna wartość do parametru || '''Miejsce:''' Kartoteka klienta [[BR]] '''Parametr:''' contid = {CONTID} || 
     52 
     53W przypadku jeśli w definicji raportu użyjemy np.: {CONTID} a raport zostanie wywołany z modułu (przekazane zostaną zaznaczone elementy) wtedy token zostanie zamieniony na pierwszy z zaznaczonych elementów. 
     54 
     55W przypadku niewłaściwego podpięcia raportu lub niewłaściwego użycia operatora raport wygeneruje błąd. 
     56 
     57== Obsługiwane tokeny == 
     58 
     59Obecnie obsługiwane tokeny to: 
     60|| Nazwa || Opis || Wartość domyślna || Określanie na formularzu || 
     61|| {DATE_FROM} || Data od  || Początek bieżącego miesiąca || TAK || 
     62|| {DATE_TO} || Data do  || Koniec bieżącego miesiąca || TAK || 
     63|| {USR_ID} || Pracownik || Pracownik z listy || TAK || 
     64|| {LOGGED_USR_ID} || Zalogowany pracownik || Id zalogowanego pracownika (users.usr_id)  || NIE || 
     65|| {ENT_ID} || Identyfikator podmiotu || Identyfikator podmiotu  || NIE || 
     66|| {FILTER_STRING} || Ciąg filtrujący  || 'TRUE' || TAK - definicja filtrów to określa || 
     67|| {ACORID} || Jednostka rozliczeniowa || 0 || TAK || 
     68|| {TOVCID} || Miejsce powstawania kosztów || 0 || TAK || 
     69|| {ADANID} || Dodatkowa analityka || 0 || TAK || 
     70|| {CONTID} || Klient || Pierwszy nie usunięty klient z listy (sortowany po contid) || TAK || 
     71|| {CONTIDS} || Klient || Pierwszy nie usunięty klient z listy (sortowany po contid) || TAK || 
     72|| {DOC_ID} || Dokument (z listy lub kartoteka) || 0 || NIE || 
     73|| {DOC_IDS} || Dokument (z listy lub kartoteka) || 0 || NIE || 
     74|| {DOCIDS} || Dokument (z listy lub kartoteka)  || 0 || NIE || 
     75|| {PRC_ID} || Sprawa || 0 || TAK || 
     76|| {PRC_IDS} || Sprawa || 0 || TAK || 
     77|| {PRCIDS} || Sprawa || 0 || TAK || 
     78|| {EVNTID} || Zdarzenie (z listy lub kartoteka) || 0 || NIE || 
     79|| {EVNTIDS} || Zdarzenie (z listy lub kartoteka) || 0 || NIE || 
     80|| {CAMPID} || Kampania (z listy lub kartoteka) || 0 || TAK || 
     81|| {CAMPIDS} || Kampania (z listy lub kartoteka) || 0 || TAK || 
     82|| {DEVCID} || Urządzenie (z listy lub kartoteka) || 0 || TAK || 
     83|| {DEVCIDS} || Urządzenie (z listy lub kartoteka) || 0 || TAK || 
     84|| {DEPOID} || Produkt (z listy lub kartoteka) || 0 || TAK || 
     85|| {DEPOIDS} || Produkt (z listy lub kartoteka) || 0 || TAK || 
     86|| {RES_ID} || Zasób (z listy lub kartoteka) || 0 || TAK || 
     87 
     88W momencie jeśli w danym raporcie zostanie użyty taki token to system wygeneruje odpowiednie pole na formularzu parametrów do raportu - jeśli jest obsługiwane. Poniższy zrzut ekranu przedstawia wszystkie tokeny możliwe do określania poprzez formularz. 
     89 
     90[[BR]][[Image(podstawowe_parametry.png)]][[BR]] (''Parametry'')[[BR]] 
     91 
     92== Definiowanie filtrów == 
     93 
     94Od wersji 4.0 system eDokumenty umożliwia definiowanie własnych parametrów do raportów określanych jako Filtry. 
     95 
     96Na wstępie należy wyszukać interesujący nas raport lub dodać nowy [wiki:UserGuide/AdvancedConfiguration/DefiningReports Tworzenie raportów w SQL]. 
     97 
     98Przykładowa definicja raportu (kod SQL): 
     99 
     100{{{ 
     101SELECT 
     102    contid, 
     103    name_1, 
     104    adddat, 
     105    macrtk, 
     106    is_del    
     107FROM 
     108    contacts    
     109WHERE 
     110    ent_id = {ENT_ID}        
     111    AND {FILTER_STRING} 
     112}}} 
     113 
     114== Ważne uwagi == 
     115 
     116Aby filtrowanie było możliwe wymagane jest dodanie specjalnego tokenu '''{FILTER_STRING}''', który w momencie akceptacji filtrów zostanie zamieniony na warunki SQL zgodne z definicją filtrów. Jeśli w definicji raportu zabraknie tego tokenu to pomimo definicji filtrów nie będą one dostępne na panelu parametrów. 
     117 
     118Istotną kwestią jest również miejsce w którym jest dodany token {FILTER_STRING} oraz operator jaki go poprzedza (AND/OR zalecany AND). 
     119Być może przykład będzie dość abstrakcyjny jednak proszę zwrócić uwagę na zapytanie zagnieżdżone: 
     120 
     121{{{ 
     122SELECT *  
     123FROM 
     124    (SELECT 
     125        contid, 
     126        name_1, 
     127        adddat, 
     128        macrtk, 
     129        is_del    
     130    FROM 
     131        contacts    
     132    WHERE 
     133        ent_id = {ENT_ID} LIMIT 100) AS foo       
     134    AND {FILTER_STRING} 
     135}}} 
     136Ważne jest aby przy takiej definicji raportu filtry wskazywały na kolumny umieszczone w głównym zapytaniu. 
     137 
     138== Definicja nowego filtra == 
     139 
     140Po otwarciu dialoga raportu powinna nam się pojawić dodatkowa zakładka - "Filtry". 
     141 
     142[[BR]][[Image(panel_filtry.png)]][[BR]] (''Panel "Filtry"'')[[BR]] 
     143 
     144Przyciski na widocznym zrzucie umożliwiają standardowe zarządzanie filtrami: 
     145|| Nazwa przycisku || Opis || 
     146|| Nowy || definicja nowego filtra/grupy || 
     147|| Edycja || edycja istniejącego filtra/grupy możliwa również poprzez dwukrotne kliknięcie elementu drzewka || 
     148|| Usuń || sunięcie filtra lub grupy (usuwane są też wszystkie podrzędne) || 
     149|| Odśwież listę || odświeża listę filtrów || 
     150 
     151Klikając przycisk "Nowy" otrzymujemy formularz dzięki, której możemy zdefiniować nowy filtr lub grupę (zależne od wyboru pola Rodzaj - poniższy zrzut ekranu). 
     152 
     153[[BR]][[Image(filtr_raportu.png)]][[BR]] (''Definicja filtra'')[[BR]] 
     154 
     155Opis pól: 
     156|| Nazwa pola || Opis || 
     157|| Nazwa || nazwa filtra lub grupy filtrów w zależności co zostanie wybrane w polu rodzaj || 
     158|| Opis || dodatkowa informacja wyświetlania po najechaniu na nazwę filtra w panelu filtrów raportu (dostępny na wygenerowanym raporcie) || 
     159|| Nadrzędny || w przypadku jeśli dany filtr lub grupa ma należeć do grupy należy wybrać z dostępnej listy || 
     160|| Rodzaj || '''Grupa''' - grupuje kilka filtrów lub innych grup[[BR]] '''Filtr''' - konkretny filtr - filtry mogą być definiowane bez elementu nadrzędnego lub mogą należeć do grupy. Filtr nie może należeć do innego filtra || 
     161|| Typ opcji || rodzaj wygenerowanego pola na panelu filtrów w wygenerowanym raporcie. Szczegóły poniżej || 
     162|| Filtr || wyrażenie filtrujące. W zależności od typ opcji może wymagać podanie tokenu {value} - szczegóły poniżej || 
     163|| Wartości dla listy || tylko dla typu:  Lista jednokrotnego wyboru, Lista wielokrotnego wyboru, Pola radiowe - kwerenda SQL, gdzie pierwsza wartość to klucz, który '''musi być typu INTEGER''' natomiast druga to opis wartości. Można stosować następujące tokeny: [[BR]] {LOGGED_USER} - identyfikator zalogowanego pracownika (users.usr_id) [[BR]] {LOGGED_ORUNID} - identyfikator jednostki zalogowanego pracownika (organization_units.orunid) [[BR]] {ENT_ID} - identyfikator podmiotu (podmioty.id_pod) [[BR]] {CURRENT_DATE} - bieżąca data w formacie YYYY-MM-DD [[BR]] {CURRENT_TIME} - bieżący czas w formacie HH:MM  || 
     164 
     165== Typ opcji == 
     166Poniżej znajduje się aktualna lista typów opcji oraz przykład definicji: 
     167 
     168|| Typ opcji || Opis || Przykład filtru || Wymaga tokenu {value} || 
     169|| Wartość BOOLEAN || Zastosowanie dla kolumn typu boolean gdzie wartość to TRUE lub FALSE || is_del IS {value} || Tak || 
     170|| Wartość TEXT || Dowolne pole tekstowe do którego chcemy zastosować wyszukiwanie || name_1 ~* E'{value}' || Tak || 
     171|| Pole zaznaczane || Jedna opcja zaznaczenia filtruje tylko wtedy gdy jest zaznaczony. Jeśli podamy w filtrze token {value} zostanie zamieniony na TRUE || is_del IS TRUE to samo da nam is_del IS {value} ale is_del IS FALSE nie jest tym samym co is_del IS {value} - {value} jest zawsze zamieniane na TRUE || Nie ale może być patrz przykład || 
     172|| Lista jednokrotnego wyboru || Pole typu Select gdzie można wybrać tylko jedną wartość. Wymagane jest zadeklarowanie SQL dla listy opcji || adduid = {value} || Tak || 
     173|| Lista wielokrotnego wyboru || Lista z opcjami do wyboru || adduid || Nie tylko należy zadeklarować kolumnę której filtr dotyczy || 
     174|| Pola radiowe || Lista z opcjami do wyboru || adduid || Nie tylko należy zadeklarować kolumnę której filtr dotyczy || 
     175|| Pole daty z godziną || Wizualizacja tego filtru posiada dodatkowe pole do określania godziny jeśli jest wymagana taka do dokładność || adddat >= '{value}' lub można adddat >= '2012-01-01 12:00' || Raczej tak niepodanie tokenu {value} jest niecelowe || 
     176|| Pole daty bez godziny || Brak pola godzina || adddat >= '{value}' lub można adddat >= '2012-01-01' || Raczej tak niepodanie tokenu {value} jest niecelowe || 
     177|| Wybór miesiąca oraz roku || Umożliwia wybranie roku oraz miesiąca. Zwracana wartość to rok plus miesiąc oraz 1 dzień czyli np. 2012-02-01. Umożliwia to budowanie zakresów miesięcy jeśli zdefiniujemy drugi filtr tego typu w grupie || adddat >= '{value}' || Tak || 
     178|| Kontakt z książki adresowej || Zwraca identyfikator (contacts.contid) klienta || contid = {value} || Tak || 
     179|| Lista spraw || Zwraca identyfikator sprawy (processes.prc_id) || prc_id = {value} || Tak || 
     180|| Osoba kontaktowa|| Zwraca identyfikator osoby kontaktowej (contact_persons.copeid) || copeid = {value} || Tak || 
     181|| Urządzenie || Zwraca identyfikator urządzenia (devices.devcid) || devcid = {value} || Tak || 
     182|| Projekt || Zwraca identyfikator projektu (projects.projid) || projid = {value} || Tak || 
     183|| Lista pracowników || Zwraca identyfikator wybranych pracowników (users.usr_id). '''WAŻNE - wymagane jest aby był operator IN w wyrażeniu filtrującym gdyż wartości są zwracane w postaci 1,2,3,4''' || adduid IN ({value}) || Tak || 
     184 
     185 
     186W moim przypadku chcę filtrować listę klientów według parametru opiekun dlatego: 
     187 - Typ opcji : Lista pracowników 
     188 - Filtr: macrtk IN ({value}) - pole macrtk przechowuje id opiekuna (users.usr_id) 
     189 
     190Po zapisaniu filtr jest dostępny z poziomu listy filtrów danego raportu: 
     191 
     192[[BR]][[Image(nowy_filtr_na_liscie.png)]][[BR]] (''Nowy filtr na liście filtrów w raporcie'')[[BR]] 
     193 
     194Oraz dodatkowo po wygenerowaniu raportu klikając przycisk Określ parametry otrzymujemy formularz jak na zrzucie poniżej: 
     195 
     196[[BR]][[Image(filtr_na_raporcie.png)]][[BR]] (''Filtr na wygenerowanym raporcie'')[[BR]] 
     197 
     198Po zatwierdzeniu (przycisk Zapisz na formularzu Określ parametru raportu) raport zostanie ponownie wygenerowany uwzględniając nasz wybór.