Podręcznik użytkownika > Raporty > Definiowanie i import raportów
Raporty w systemie eDokumenty możemy tworzyć korzystając z graficznego formularza lub poprzez import definicji z pliku .report.
Dodawanie nowego raportu w module Raporty rozpoczynamy po kliknięciu ikony Nowy w Pasku narzędzi. Wypełniamy pola Tytuł oraz wybieramy wartość z listy Grupa. Opcjonalnie uzupełniamy pozostałe pola i klikamy Zapisz.
Uwaga
Zaznaczenie checkboxa systemowy sprawi, że raport nie będzie będzie widoczny w module Raporty. Dostęp do raportów systemowych ma miejsce z poziomu Rejestrów, jeśli konfiuguracja systemu eDokumenty zakłada obecność tego modułu.
Po zapisaniu podstawowych informacji, formularz raportu zostaje poszerzony o kolejne zakładki, z których najważniejszą jest Definicja. W polu Kwerenda w tej karcie wpisujemy kwerendę SQL definiującą raport, np. SELECT * FROM events, po czym klikamy Zapisz.
Uwaga
Zapytanie musi zwracać przynajmniej 1 rekord. Użyteczne konstrukcje i funkcje językowe SQL oraz przykładowe zapytania do bazy eDokumenty można znaleźć tutaj.
W kwerendach możemy stosować parametry:
Parametr | Opis |
{DATE_FROM} (string) | np. adddat::date >= '{DATE_FROM}' |
{DATE_TO} (string) | np. adddat:: <= '{DATE_TO}' |
{USR_ID} (string) | przecinkami rozdzielona lista użytkowników, do których ma dostęp zalogowany użytkownik |
{LOGGED_USR_ID} (int) | id zalogowanego pracownika |
{ENT_ID} (int) | id jednostki, na której jest wykonywany raport |
{SYMBOL} (string) | symbol kontrahenta z systemu zewnętrznego |
{EXTEID:OPTIMA}(int) | symbol kontrahenta z systemu Optima |
{ACORID} (int) | id jednostki rozliczeniowej |
{TOVCID} (int) | id rodzaju kosztów |
{CONTID} (int) | id kontrahenta (przy raportach wykonywanych w kartoteki) |
{CONTIDS} (int[]) | id kontrahentów zaznaczonych na liście w module Klienci |
{DOC_ID} (int) | id dokumentu (przy raportach wykonywanych z kartoteki) |
{DOC_IDS} (int[]) | id dokumentów zaznaczonych na liście (równoważny zapis: {DOCIDS} |
{PRC_ID} (int) | id sprawy (przy raportach wykonywanych w kartoteki) |
{PRC_IDS} (int[]) | id spraw zaznaczonych na liście (równoważny zapis: {PRCIDS} |
{EVNTID} (int) | id zdarzenia (przy raportach wykonywanych w kartoteki) |
{EVNTIDS} (int[]) | id zdarzeń zaznaczonych na liście |
{CAMPID} (int) | id kampanii |
{DEVCID} (int) | id urządzenia (przy raportach wykonywanych w kartoteki) |
{DEVCIDS} (int[]) | id urządzeń zaznaczonych na liście |
{DEPOID} (int) | id produktu |
{DEPOIDS} (int[]) | id produktów zaznaczonych z listy produktów |
{FILTER_STRING} (string) | wartość zwrócona przez filtr |
{ORUNID} | lista stanowisk, do których ma prawo zalogowany użytkownik (lista orunid) |
Będą one mapowane na liście Dostępne parametry dostępnym po kliknięciu przycisku Pokaż paramety.
Cała definicja raportu jest dodatkowo przepuszczana przez silnik parsujący (np. w workflow). Daje to dodatkowe możliwości (np. dynamiczne parametry w raportach wykonywanych na zewnętrznych źródłach danych). Przykładowe zapytanie z raportu dla dokumentu:
SELECT * FROM mssql_external_documents WHERE symbol = '{SQL::SELECT ex_sym FROM documents WHERE doc_id = {DOC_ID}}'
Pod polem Kwerenda znajdują się dodatkowe opcje.
W zakładce Kolumny wybieramy, jakie kolumny mają być wyświetlane. Zaznaczone na liście elementy przenosimy między oknami Dostępne a Aktywne na raporcie używając strzałek pomiędzy nimi.
Funkcje formatujące dane
Aby móc sformatować drukowane dane np. jako odnośnik do formularza ale nie mechanizm otwierający formularz poprzez dwuklik tylko po kliknięciu odnośnika w kolumnie należy użyć funkcji formatującej:
Funkcja | Jak działa | Przykład danych |
Formatuj datę | Przyjmuje kolumnę z datą np. TIMESTAMP a w wyniku zwraca datę w formacie YYYY-MM-DD | 2015-01-01 10:00 => 2015-01-01 |
Formatuj czas | Przyjmuje wartość typu INTEGER np 61 a w wyniku zwraca czas w formie słownej czyli 1m 1s | 61 => 1m 1s |
Formatuj kwotę | Przyjmuje wartość typu NUMERIC np 12.89 a w wyniku zwraca 12.89 zł. Funkcja szuka w kolumnach kolumny nazwanej cursmb i na jej podstawie drukuje nazwę (symbol) waluty | 12.89 => 12.89 zł |
Formatuj link do kontaktu | Przyjmuje wartość pola symbol z kartoteki klienta następnie wyszukuje w tabeli contacts klienta o tym symbolu i drukuje odnośnik do kartoteki | TTT78 => html jako odnośnik do kartoteki |
Formatuj link do ... | Przyjmuje wartość w postaci ciągu np CONTACT|1|Firma a w wyniku zwraca odnośnik do kartoteki klienta o identyfikatorze 1 i jako opis odnośnika stosuje frazę Firma | CONTACT|1|Firma => html jako odnośnik do kartoteki klienta |
Utworzoną w zewnętrznym narzędziu definicję raportu SQL w postaci pliku .report możemy zaczytać do modułu, gdzie może być ona modyfikowana (przykładowy plik można znaleźć w załączniku). Aby tego dokonać, klikamy ikonę Import raportu w Pasku narzędzi. Następnie klikamy przycisk w oknie Import raportu i wybieramy plik z dysku. Po prawidłowym wczytaniu definicji raportu, jego nazwa wyświetli się w polu Definicja raportu. Klikamy przycisk Importuj.
Kreator importu definicji raportu
Po zaczytaniu definicji zostaje otwarte okno edycji raportu, a raport jest widoczny na liście.