Instrukcja administratora > Parametryzacja systemu > Moduł raportów SQL | | Drukuj |
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 Dostęp do definiowania reportów SQL umożliwia pozycja menu głównego Definicje - Zestawienia SQL. Nowe zestawienie wprowadzamy przyciskiem Przykładowe zestawienia można pobrać z internetu - służy do tego przycisk WIZARD ![]() 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 ![]() 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 2. W zapytaniu można używać kontrolek {X/nazwa kontrolki}, 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. ![]() 3. Kontrolki typu combo i checkcombo Combo {R(Poz1=W1,Poz2=W2,...,PozN=WN)/nazwa kontrolki} - 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 kontrolki} - 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 kontrolki} - 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 <nazwa_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 - 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 |