Instrukcja administratora > Parametryzacja systemu > Moduł raportów SQL

Drukuj

Moduł raportów SQL

Program zawiera wewnętrzny moduł raportów SQL, umożliwiający wygenerowanie dowolnego zestawienia na podstawie zapytań SQL. Jeśli do specyficznych wymagań użytkownika nie da się wykorzystać żadnego z opisanych wcześniej rodzajów zestawień (patrz Instrukcja użytkownika - Zestawienia i dokumenty) to wtedy należy skorzystać z możliwości, jakie oferuje ten moduł. Wcześniej jednak trzeba zapoznać się z podstawami języka SQL oraz wewnętrzną strukturą danych programu.

Zdefiniowane własne zestawienia SQL możemy wywołać z menu głównego Raporty - Zestawienia SQL lub uwidocznić w b10_start Oknie startowym programu.

Dostęp do definiowania reportów SQL umożliwia pozycja menu głównego Definicje - Zestawienia SQL. Nowe zestawienie wprowadzamy przyciskiem b10_ins. Po zatwierdzeniu zmian w definicji możliwe jest szybkie wygenerowanie zestawienia, w celu sprawdzenia poprawności składni zapytania. Umożliwia to przycisk b10_zest Wykonaj zapytanie SQL.

Przykładowe zestawienia można pobrać z internetu - służy do tego przycisk b10_param Pobierz zestawienie z serwisu HTTP - patrz Pobieranie raportów SQL. W przypadku problemów z automatycznym pobieraniem parametrów należy zwrócić uwagę ustawienia środowiska programu (menu Ustawienia - Środowisko, zakładka Internet, parametry HTTP) oraz zapór internetowych (firewall).

WIZARD

181403

Przy tworzeniu nowego zestawienia możemy posiłkować się przykładowym zestawieniem pobranym z internetu, albo praktycznym wizardem, w którym wykorzystujemy:

Tabele aplikacji - wszystkie tabele dostępne w programie

Tabele zestawienia - wybrane tabele do zestawienia

Pola zestawienia zestawienia - wybrane pola do zestawienia

Połączenia - połączenia wybranych tabel

Uporządkowanie - wybrane pola segregujące pozycje w zestawienie

Grupowanie - wybrane pola grupujące pozycje w zestawieniu

Na podstawie skonstruowanego wizardu wygeneruje się wstępna definicja zestawienia. Późniejsze modyfikacje w wizardzie mogą zostać ujęte w definicji, ale wtedy utracone będą własne modyfikacje definicji. Dlatego przed szczegółową obróbką definicji zestawienia należy w miarę możliwości uwzględnić jak najwięcej elementów przy konstruowaniu wizardu.

DEFINICJA

181401

Przy definiowaniu zapytania SQL należy kierować się następującymi wskazówkami:

1. Polecenie powinno zawierać słowo kluczowe select i nie może zawierać słów insert, update, delete - tylko w takim przypadku zestawienie będzie dostępne w menu Raporty - Zestawienia SQL.

W szczególnych przypadkach istnieje możliwość wykorzystania zapytania do modyfikacji bazy. Polecenia zawierające słowa insert, update, delete można wykonać bezpośrednio po zdefiniowaniu - służy do tego przycisk b10_exec Wykonaj polecenie SQL. Przy wykonywaniu tego typu poleceń należy być bardzo ostrożnym - dobrze jest wcześniej zarchiwizować dane.

2. W zapytaniu można używać kontrolek {X/nazwa&nbspkontrolki}, gdzie X to typ kontrolki:

S - pole znakowe (string),

D - data (date),

I - numer (integer),

N - liczba (number, float),

L - pole logiczne.

Kontrolki to jakby zmienne parametry zestawienia wprowadzane przed jego sporządzeniem. O zawartość kontrolek program zapyta przed wykonaniem zestawienia, posługując się ich nazwą. Zawartość kontrolek typu S i D zostanie w treści zapytania automatycznie ograniczona znakami ''.

Kontrolki użyte w zapytaniu można dodatkowo wstawić do tytułu zestawienia. W ten sposób kryteria zestawienia mogą zostać uwidocznione na wydruku.

181402

3. Kontrolki typu combo i checkcombo

Combo {R(Poz1=W1,Poz2=W2,...,PozN=WN)/nazwa&nbspkontrolki} - pole wyboru (z rozwijalną listą), gdzie PozN oznacza nazwę na liście, a WN zwracaną przez kontrolkę nazwę, np. {R(kobieta=1,mężczyzna=2)/Płeć}

Combo {F(TABELA,Pole)/nazwa&nbspkontrolki} - pole wyboru, którego wartościami na rozwijalnej liście będą wszystkie wartości pola Pole z tabeli TABELA, np. w tabeli KARTA ZASIŁKOWA pole R_NIEOB ma wartości 'niepłatne z tyt.nienabycia prawa do zas.', 'niepłatne inne', 'chorobowe', 'chorobowe szpitalne', itd.

Combo {T(TABELA,Pole1,Pole2)/nazwa&nbspkontrolki} - pole wyboru, na którego liście pokażą się wartości z Pole1 z wszystkich rekordów tabeli TABELA, a kontrolka zwróci wartość z pola Pole2

CheckCombo {W(TABELA,Pole1,Pole2)/} - pole wyboru z możliwością zaznaczenia kilku opcji, na którego liście pokażą się wartości z Pole1 z wszystkich rekordów tabeli TABELA, a funkcja zwróci wszystkie zaznaczone wartości z pola Pole2 rozdzielone znakiem przecinka. W kontrolce wszystkie zaznaczone działy, będą kolejno oznaczone gwiazdką (*), a niezaznaczone myślnikiem (-).

 

Nazwy tabel i ich pól są dostępne w załączniku Lista modułów danych i tabel. Nazwa tabeli jest nazwą tabeli w aplikacji, a nie tabeli w bazie (np. UŻYTKOWNICY, a nie USERS).

4. Użycie szczególnych kontrolek C(DZIAŁY) (lub C(REJESTRY)) umożliwia przed wykonaniem zestawienia wybór zakresu działów (lub rejestrów) z odpowiedniej biblioteki. Kontrolki te zwrócą wartość X_J wybranej pozycji, która odpowiada kolejności danej pozycji.

Wszystkie dostępne kontrolki znajdują się pod prawym klawiszem myszy.

5. Tabele z innej bazy niż baza zawierająca dane wybranej firmy należy poprzedzić nazwą bazy (np. lista pól systemowych znajduje się w bazie zawierającej dane ogólne programu: R2P_platnik_bin.dbo.Polasys).

6. Można wykorzystać specjalne zmienne, które zostaną zamienione na: <USERIDE> - identyfikator aktualnego użytkownika, <USERNAME> - nazwa aktualnego użytkownika, <FIRMIDE> - numer aktualnie wybranej firmy, <PRACIDE> - identyfikator aktualnego pracownika, <ZATRIDE> - identyfikator aktualnego zatrudnienia, <BIN> - nazwa bazy danych ogólnych (np. <BIN>.Polasys), <DB> - nazwa bazy danych (np. <DB>_DANE_1.dbo.Pracownk).

7. W przypadku selekcji podświetlonych rekordów można wykorzystać zmienną specjalną <USERMASK>, przykładowo.:

select P.Nazwisko, P.Imie from PRACOWNK P where ({L/Tylko podświetlone}=0)or(P.X_P&<USERMASK><>0)

W pzypadku większej ilości użytkowników prawidłowy warunek na podświetlone rekordy powinien wyglądać następująco:

where ({L/Tylko podświetlone}=0)or(<BIN>.fn_Podsw(p.X_I,p.X_P,<USERIDE>,'PracownikT')=1) .

8. Znaczniki

<R>,</R> umożliwiają wyłączenie z kodu zestawienia sql fragmentów, które są odpowiedzialne za włączenie opcji Rozszerzona struktura działów, np. jeśli nie chcemy, aby podczas przygotowywania zestawienia były widoczne kontrolki oddziałów i zespołów, gdy powyższa opcja jest wyłączona, fragment kodu zestawienia odpowiedzialny za tą funkcję należy zawrzeć pomiędzy tymi znacznikami

<H>,</H> jak wyżej, tylko dotyczy opcji Włącz zapamiętywanie niektórych danych w historii.

9. W bazie danych ogólnych (BIN) znajduje się tabela KODY (<BIN>.KODY), zawieracjąca opis możliwych wartości, przyjmowanych przez przez pola typu wyliczeniowego z poszczególnych tabel. Dzięki niej można uzyskać opisową zawartość tych pól, po właściwym złączeniu tej tabeli w zapytaniu (można również wykorzystać w tym celu funkcję fn_Kod).

10. W przypadku zaszyfrowanej bazy pola zaszyfrowane należy wpisywać w konwencji &ltnazwa_pola.ENCRYPTED>, uzupełnienie to można pominąć w sekcji SELECT, natomiast trzeba uzupełnić we wszystkich innych (WHERE, ORDER BY, itp.) , przykładowo zapytanie:

select P.Nazwisko, P.Imie from PRACOWNK P order by P.Nazwisko, P.Imie

po zaszyfrowaniu bazy należy zamienić na:

select P.Nazwisko, P.Imie from PRACOWNK P order by <P.Nazwisko.ENCRYPTED>, <P.Imie.ENCRYPTED>

11. Można wykorzystać znajdujące się w bazie funkcje (lub zbudować własne) - patrz Funkcje i procedury składowane.

UPRAWNIENIA I PARAMETRY

Grupa użytkowników - ponieważ raporty SQL mogą pobierać praktycznie wszystkie dane, dla każdego zestawienia możemy indywidualnie określić grupy użytkowników, które będą miały możliwość korzystania z tego zestawienia. Dzięki takiemu rozwiązaniu różne zestawienia SQL mogą być dostępne dla różnych użytkowników. W przypadku pozostawienia grupy użytkowników pustej, zestawienia będą dostępne z poziomu programu dla wszystkich użytkowników, a z poziomu modułu WWW nie będą dostępne ani dla pracowników (Użytkownicy WWW), ani dla innych użytkowników.

Udostępnij - zestawienie może być dostępne z poziomu:

oMenu Zestawienia - menu głównego Raporty - Zestawienia SQL

oOkno startowe - b10_start Okna startowego

oWszędzie - zarówno w raportach i w Oknie startowym, oczywiście pod warunkiem, że zalogowany użytkownik należy do grupy użytkowników, którym udostępniono zestawienie.

Makieta - można do zestawenia podpiąć własną makietę zdefiniowaną w menu Ustawienia - Makiety dokumentów, która będzie wykorzystywana podczas wydruku zestawienia. Aby można było wybrać makietę w zestawieniu, musi ona mieć zaznaczoną dostępność dla okna "Zestawienia SQL". Do definiowania makiety należy wykorzystać tagi od #SQL_01# do #SQL_99#, gdzie numer odpowiada kolejnemu numerowi pola zwracanego przez polecenie SELECT, a także znaki sterujące od #Kontrolka_SQL_0# do #Kontrolka_SQL_9#, które odpowiadają za wartości kontrolek użytych w zestawieniu.

Automatycznie dostosuj kolumny - przy włączonej opcji każdorazowo będzie określał widoczne kolumny i ich szerokość na zestawieniu, po wyłączeniu tej opcji pamiętane będą ustawienia kolumn zmodyfikowane przez użytkownika w oknie ze zrobionym zestawieniem

Ikona - w przypadku okna startowego możemy przypisać własną ikonę do obszaru zestawienia