DEFINIOWANIE WZORCA SQL ZA POMOCĄ GENERATORA TABEL W MODULE ANALIZY SYSTEMU KS-AOW

Podobne dokumenty
SQL (ang. Structured Query Language)

LABORATORIUM 8,9: BAZA DANYCH MS-ACCESS

UONET+ - moduł Sekretariat. Jak wykorzystać wydruki list w formacie XLS do analizy danych uczniów?

Budowa aplikacji ASP.NET współpracującej z bazą dany do obsługi przesyłania wiadomości

Jak wyskoczy okienko z listą miejsc to proszę odznaczyć pierwszą pozycję i poszukać swoją aptekę, zaznaczyć ją i OK.

KS-APTEKA Windows. KAMSOFT S.A. Katowice 2013 KS-AOW. (Wielomagazynowość) Instrukcja WIELOMAGAZYNOWOŚĆ Dokument: Wydanie: 1 Waga: 90

Język SQL Złączenia. Laboratorium. Akademia Morska w Gdyni

INSTRUKCJA UŻYTKOWNIKA Środki Pomocnicze ISO 9001:2008 Dokument: Wydanie: 1 Waga: 90 ŚRODKI POMOCNICZE

irap Raporty on-line

DOKUMENTACJA ZMIAN W KS-ASW INFORMACJA O AKTUALIZACJI SYSTEMU ISO 9001/2008 Dokument: Raport Numer: 33/2015 Wydanie: Waga: 90

Usługa Leki on-line instrukcja obsługi rezerwacji leków w systemie KS-Apteka

INSTRUKCJA Pakiet zmian w systemie KS-AOW - lipiec 2015 r. ISO 9001:2008 Dokument: Wydanie: 1 Waga: 90

Podstawy technologii WWW

System imed24 Instrukcja Moduł Analizy i raporty

Rejestracja faktury VAT. Instrukcja stanowiskowa

Wykład 5. SQL praca z tabelami 2

irap Raporty on-line

UONET+ - moduł Sekretariat

INSTRUKCJA Pakiet zmian w systemie KS-AOW - lipiec 2015 r. ISO 9001:2008 Dokument: Wydanie: 1 Waga: 90. Rys.

Instrukcja użytkownika

Prezentacja systemu do obsługi klienta (platforma B2B) Adres sklepu:

Sprawdzenie czy połączenie przebiegło poprawnie if (mysqli_connect_errno()) { echo Błąd; Połączenie z bazą danych nie powiodło się.

Jednolity Plik Kontrolny dla ewidencji zakupu i sprzedaży VAT wg wersji 17 deklaracji VAT-7

Instrukcja użytkownika

Rozmiar pola (długość danych)

Moduł rozliczeń w WinSkład (od wersji 18.40)

Spis treści. 1 Kraj/region i język Ustawienia regionalne Liczby Waluta Czas i data Inne...

Wprowadzania liczb. Aby uniknąć wprowadzania ułamka jako daty, należy poprzedzać ułamki cyfrą 0 (zero); np.: wpisać 0 1/2

INFORMACJA UŻYTKOWNIKA DM Plaza 2014

Ćwiczenie zapytań języka bazy danych PostgreSQL

Symfonia Produkcja. Kreator raportów. Wersja 2013

Wykład III. dr Artur Bartoszewski Wydział Nauczycielski, Kierunek Pedagogika Wprowadzenie do baz danych

Opis nowych funkcji w programie Symfonia Handel w wersji 2010

Karty pracy. Ustawienia. W tym rozdziale została opisana konfiguracja modułu CRM Karty pracy oraz widoki i funkcje w nim dostępne.

Nowe funkcje w programie SYMFONIA Handel Premium w wersji 2009

Część 3 - Konfiguracja

1. Przypisy, indeks i spisy.

Instytut Mechaniki i Inżynierii Obliczeniowej Wydział Mechaniczny Technologiczny Politechnika Śląska

MECHANIZM WYMIANY DANYCH ORAZ ROZLICZEŃ APTEKA NFZ

Przenoszenie, kopiowanie formuł

CitiDirect BE Portal Eksport

1. Przekopiuj na dysk F bazę M5BIB.mdb z dysku wskazanego przez prowadzącego 2. Otwórz bazę (F:\M5BIB.mdb)

Moduł rozliczeń w WinUcz (od wersji 18.40)

Autor: Joanna Karwowska

QUERY język zapytań do tworzenia raportów w AS/400

KS-AOW. Obsługa komunikacji Zintegrowanego Systemu Monitorowania Obrotu Produktami Leczniczymi w systemie aptecznym KS-AOW. I.

INFORMACJA UŻYTKOWNIKA DM Plaza 2014

Ref. 7 - Język SQL - polecenia DDL i DML

Wystawianie dokumentów Ewa - Fakturowanie i magazyn

Instrukcja logowania i realizacji podstawowych transakcji w systemie bankowości internetowej dla klientów biznesowych BusinessPro.

Kadry Optivum, Płace Optivum

Nowa płatność Dodaj nową płatność. Wybierz: Płatności > Transakcje > Nowa płatność

Instrukcja użytkownika Porównywarki cen Liquid

Dokumentacja Użytkownika Systemu

Skanowanie OCR w aplikacji Kancelaria Komornika. Instrukcja dla użytkownika

INSIGNUM Sprzedaż Detaliczna

MODUŁ NAUCZYCIEL - INSTRUKCJA OBSŁUGI

Kwerenda. parametryczna, z polem wyliczeniowym, krzyżowa

Programowanie w SQL procedury i funkcje. UWAGA: Proszę nie zapominać o prefiksowaniu nazw obiektów ciągiem [OLIMP\{nr indeksu}] Funkcje użytkownika

Nowe funkcje w programie SYMFONIA Handel Premium w wersji 2009.c

Wyciągi. Lista operacji na wyciągu w postaci PDF

Instrukcja rejestracji świadczeniodawcy

Projekt Hurtownia, realizacja rejestracji dostaw produktów

Finanse VULCAN. Jak wprowadzić fakturę sprzedaży?

Zestawienia osobowe - kreator

WinUcz procedura uprzedniego wywozu

Rejestracja wydania Karty DiLO w Programach zdrowotnych

Nowe funkcje w programie Symfonia Mała Księgowość

ApwPlan Harmonogram zadań

DOKUMENTACJA ZMIAN W KS-ASW INFORMACJA O AKTUALIZACJI SYSTEMU ISO 9001/2008 Dokument: Raport Numer: 15/2016 Wydanie: Waga: 90

opisuje nazwy kolumn, wyrażenia arytmetyczne, funkcje nazwy tabel lub widoków warunek (wybieranie wierszy)

SŁOWNIK STRUKTURY PRZEDSIĘBIORSTWA

UONET+ moduł Dziennik

Konsolidacja FP- Depozyty

Funkcjonalność AOW w zakresie mechanizmu wymiany danych oraz rozliczeń Apteka NFZ w roku 2012

III. Dane podstawowe definiowanie organizacji

SUBIEKT GT IMPORT XLS Dokumenty

Zawartość. Wstęp. Moduł Rozbiórki. Wstęp Instalacja Konfiguracja Uruchomienie i praca z raportem... 6

Opis usługi płatności masowych aktualnie zaimplementowanej u Zamawiającego

CREATE USER

PODRĘCZNIK UŻYTKOWNIKA PEŁNA KSIĘGOWOŚĆ. Płatności

WSCAD. Wykład 5 Szafy sterownicze

Rejestracja wydania Karty DiLO w SZP

Rejestracja nowego kontrahenta. Instrukcja stanowiskowa

Pobieranie puli numerów recept z Portalu Świadczeniodawcy

Nowy sposób rozliczania VAT w transakcjach z AstraZeneca UK

Symfonia Faktura. Zakładanie nowej firmy. Wersja 2013

CMS - INFORMACJE. *** Mirosław Kuduk E mail: tel. kom DODATKOWE FUNKCJE - PANEL ADMINISTRATORA

Systemy GIS Tworzenie zapytań w bazach danych

PWI Instrukcja użytkownika

Baza danych. Program: Access 2007

ZMIANY ZWIĄZANE Z LIKWIDACJĄ KODU BLOZ12 ORAZ WDROŻENIEM NOWEGO FORMATU OSOZ-EDI OBOWIĄZUJĄCEGO OD 12 GRUDNIA 2012

Usługa Moje faktury w ING BankOnLine

Dokumentacja API BizIn

Rejestracja nowego kontrahenta. Instrukcja stanowiskowa

Bazy danych SQL Server 2005

Zaznaczanie komórek. Zaznaczenie pojedynczej komórki polega na kliknięciu na niej LPM

Instrukcja użytkownika Systemu Elektronicznej Faktury

Backoffice instrukcja użytkowania. Metryka dokumentu Wersja Data Zmiany Wersja inicjalna dokumentu

Transkrypt:

DEFINIOWANIE WZORCA ZA POMOCĄ GENERATORA TABEL W MODULE ANALIZY SYSTEMU Dokument ten opisuje możliwości tworzenia własnych raportów w oparciu o składnię języka, przy założeniu znajomości podstaw tego języka. Aby utworzyć nowy raport należy z modułu APW24-Analizy wybrać funkcję Generator tabel, a następnie wybrać kategorię z wyświetlonej listy i wywołać funkcję [F2] Dodaj Zapytanie (rys. 1). Rys.1. Okno generatora tabel z listą raportów uporządkowanych w kategorie. W zależności jaką kategorię wybrano w momencie wywołania funkcji taki pojawi się przykład wzorca w oknie definicji zapytania. Przykładowo jeśli wybrana kategoria to Towary wówczas treść wzorca będzie zawierać zapytanie odwołujące się do tabel TOWR i LEKI (zawierających dane o aptecznych kartach towarowych) i wyświetlające domyślnie wszystkie dostępne kolumny. Po ustaleniu nazwy wzorca oraz kategorii można przystąpić do definiowania samego raportu (rys.2). Raport może się składać z jednego polecenia SELECT, które można poprzedzić definicją wyglądu raportu umieszczoną w komentarzu tzn. pomiędzy a. Polecenie SELECT może być dowolnie rozbudowane i zawierać podzapytania i wszystkie funkcje składni dostępne dla danego rodzaju bazy danych (Oracle, Firebird). Raport nie może składać się z poleceń modyfikujących dane na bazie (np. INSERT, UPDATE, DELETE). Definicję wyglądu raportu można przygotować za pomocą funkcji [F4] Ustawienia lub bezpośrednio wpisując odpowiednie polecenia w komentarzu. Możliwe jest także za pomocą skrótu CTRL+F4 wklejenie przykładowej definicji raportu w sytuacji, gdy istnieje tylko SELECT. Wywołując funkcję [F4] Ustawienia program wczytuje definicję z komentarza, natomiast po zmianach odpowiednio modyfikuje komentarz. PRZYKŁAD 1: TYTUL=[Tytuł raportu.] select * from TOWR Strona 1 z 10

Rys.2. Okno definicji wzorca z wywołanym oknem ustawień wyglądu tabelki. W komentarzu przed poleceniem SELECT możliwe jest użycie następujących poleceń definiujących wygląd raportu: TYTUL=[TRESC] STOPKA=[TRESC] Polecenie Opis Przykłady SZEROKOSC=[c1,c2,c3 ] Umieszcza tekst TRESC nad tabelką raportu. W treści można umieszczać pseudo instrukcje opisane w osobnej tabelce. Umieszcza tekst TRESC pod tabelką raportu. W treści można umieszczać pseudo instrukcje opisane w osobnej tabelce. Określa szerokość dla kolejnych kolumn c1, c2, c3 itd. Jedna z wartości może być poprzedzona znakiem minus, co oznacza kolumnę ze zmienną szerokością (automatyczne dopasowanie do okna). TYTUL=[Tytuł raportu.] TYTUL=[Raport z dnia {CZAS} wygenerowany przez {PRACOWNIK}] TYTUL=[Sprzedaż towarów z grupy asortymentowej {WYBIDGRPN} w okresie od {DATAOD} do {DATADO}] STOPKA=[Stopka raportu.] STOPKA=[Raport z dnia {CZAS} wygenerowany na komputerze {KOMPUTER} ze stanowiska nr {STANOWISKO}] SZEROKOSC=[12,11,8,42,14] SZEROKOSC=[8,-42,20] TYTUL_KOLUMNY_X=[NAZWA] Umieszcza tytuł NAZWA dla kolumny o numerze X TYTUL_KOLUMNY_1=[Data sprzedaży] TYTUL_KOLUMNY_2=[Ilość] FORMAT_KOLUMNY_X=[NAZWA] Określa format danych dla kolumny X. Dostępne symbole formatu dla liczb: 0 jeśli w tym miejscu występuje cyfra to jest przepisywana jeśli nie to jest umieszczane 0. # jeśli w tym miejscu występuje cyfra to jest przepisywana jeśli nie to nie jest nic umieszczane.. separator zmiennoprzecinkowy, separator tysięcy FORMAT_KOLUMNY_1=[0.00000] FORMAT_KOLUMNY_2=[#.00] FORMAT_KOLUMNY_3=[0.00 zł] FORMAT_KOLUMNY_4=[0.##] FORMAT_KOLUMNY_5=[,0.#####] FORMAT_KOLUMNY_6=[0.0] Dostępne symbole formatu dla daty: Strona 2 z 10

KOLUMNA_LP=[X] ROZDZIAL_WIERSZY=[X] WYSOKOSC_NAGLOWKA=[X] WYROWNANIE_NAGLOWKA=[X] WYROWNANIE_TABELKI=[X] RAMKA=[X] WIZYTOWKA=[X] SUMA=[c1;c2;c3...] d dzień w formacie jedno lub dwucyfrowym dd dzień w formacie dwucyfrowym ddd dzień tygodnia w formacie dwuliterowym (Pn, Wt, itd.) dddd dzień tygodnia słownie M miesiąc w formacie jedno lub dwucyfrowym MM miesiąc w formacie dwucyfrowym MMM miesiąc w formacie trzyliterowym (sty, lut, itd.) MMMM miesiąc słownie yy rok w formacie dwucyfrowym yyyy rok w formacie czterocyfrowym Dostępne symbole formatu dla godziny: h godzina w formacie 12-godzinnym jedno lub dwucyfrowym. hh godzina w formacie 12-godzinnym dwucyfrowym. H godzina w formacie 24-godzinnym jedno lub dwucyfrowym. HH godzina w formacie 24-godzinnym dwucyfrowym. m minuty w formacie jedno lub dwucyfrowym. mm minuty w formacie dwucyfrowym. s sekundy w formacie jedno lub dwucyfrowym. ss sekundy w formacie jedno lub dwucyfrowym. Określa czy wyświetlać dodatkową kolumnę z liczbą porządkową. Znaczenie X: 1 TAK 0 NIE Określa czy umieszczać na wydruku linie rozdzielające wiersze. Znaczenie X: 1 TAK 0 NIE Wysokość nagłówka dla kolumn, gdzie X określa ilość zajmowanych linii. Wyrównanie nazw dla kolumn, gdzie X przyjmuje: 0 wyrównanie do lewej 1 wycentrowanie 2 wyrównanie do prawej Wyrównanie tabelki raportu, gdzie X przyjmuje: 0 wyrównanie do lewej 1 wycentrowanie 2 wyrównanie do prawej Rodzaj ramki dla tabeli raportu, gdzie X przyjmuje: 0 ramka podwójna 1 ramka pojedyncza 2 ramka ogólna Określa czy umieszczać na wydruku wizytówkę apteki. Znaczenie X: 1 TAK 0 NIE Określa kolumny których wartości na końcu tabelki mają być podsumowane. Zamiast nazwy kolumny można podać jej alias. FORMAT_KOLUMNY_7=[yy.mm.dd] FORMAT_KOLUMNY_8=[dd-mm-yy] FORMAT_KOLUMNY_9=[yyyy.MM.d] FORMAT_KOLUMNY_10=[d MMM] FORMAT_KOLUMNY_11=[hh:mm:ss] FORMAT_KOLUMNY_12=[hh:mm] FORMAT_KOLUMNY_13=[h:m] KOLUMNA_LP=[1] KOLUMNA_LP=[0] ROZDZIAL_WIERSZY=[1] WYSOKOSC_NAGLOWKA=[2] WYROWNANIE_NAGLOWKA=[0] WYROWNANIE_TABELKI=[1] RAMKA=[2] WIZYTOWKA=[0] SUMA=[ILAKT;ILOSP;WRTBR;WRTNT] W treści umieszczanej nad lub pod tabelką (polecenie TYTUL lub STOPKA) można stosować pseudo instrukcje w miejsce których zostanie wstawiona właściwa dla instrukcji treść. Odpowiednią pseudo instrukcję można wprowadzić z poziomu okna ustawień ( [F4] Ustawienia ) za pomocą przycisku [F5] Wstaw parametr lub w bezpośredniej edycji definicji za pomocą skrótu CTRL+F5. W treści pseudo instrukcje umieszcza się w nawiasach klamrowych. Strona 3 z 10

Poniższa tabela zawiera opis dostępnych pseudo instrukcji: INSTRUKCJA OPIS (co zostanie wyświetlone) PRZYKŁADY ADRES Informacja o adresie apteki TYTUL=[Treść {ADRES} treść] KODPCZ Informacja o kodzie pocztowym apteki STOPKA=[Treść {KODPCZ} treść] CZAS Informacja o lokalnej dacie i godzinie systemowej TYTUL=[Treść {CZAS} treść] DATA Informacja o lokalnej dacie systemowej STOPKA=[Treść {DATA} treść] GODZINA Informacja o lokalnej godzinie systemowej TYTUL=[Treść {GODZINA} treść] KOMPUTER Informacja o lokalnej nazwie komputera STOPKA=[Treść {KOMPUTER} treść] MIASTO Informacja o mieście apteki TYTUL=[Treść {MIASTO} treść] APTEKA Informacja o nazwie apteki TYTUL=[Treść {APTEKA} treść] BANK1 Informacja o nazwie banku 1 TYTUL=[Treść {BANK1} treść] BANK2 Informacja o nazwie banku 2 TYTUL=[Treść {BANK2} treść] FAX Informacja o numerze fax apteki TYTUL=[Treść {FAX} treść] KONTO1 Informacja o numerze konta bankowego 1 TYTUL=[Treść {KONTO1} treść] KONTO2 Informacja o numerze konta bankowego 2 TYTUL=[Treść {KONTO2} treść] TELEFON Informacja o numerze telefonu apteki TYTUL=[Treść {TELEFON} treść] JEDNOSTKA Informacja o obecnej jednostce organizacyjnej TYTUL=[Treść {JEDNOSTKA} treść] WERSJABAZY Informacja o obecnej wersji struktury bazy danych TYTUL=[Treść {WERSJABAZY} treść] PRACOWNIK Informacja o obecnie zalogowanym pracowniku TYTUL=[Treść {PRACOWNIK} treść] MAGAZYN Informacja o obecnym magazynie aptecznym TYTUL=[Treść {MAGAZYN} treść] STANOWISKO Informacja o obecnym numerze stanowiska TYTUL=[Treść {STANOWISKO} treść] REGON Informacja o regonie apteki TYTUL=[Treść {REGON} treść] ULICA Informacja o ulicy apteki TYTUL=[Treść {ULICA} treść] WLASCICIEL1 Informacja o właścicielu 1 TYTUL=[Treść {WLASCICIEL1} treść] WLASCICIEL2 Informacja o właścicielu 2 TYTUL=[Treść {WLASCICIEL2} treść] WLASCICIEL3 Informacja o właścicielu 3 TYTUL=[Treść {WLASCICIEL3} treść] CENA1 TYTUL=[Treść {CENA1} treść] o cenę CENAB TYTUL=[Treść {CENAB} treść] o cenę brutto CENAMAX TYTUL=[Treść {CENAMAX} treść] o cenę maksymalną CENAMIN TYTUL=[Treść {CENAMIN} treść] o cenę minimalną CENAN TYTUL=[Treść {CENAN} treść] o cenę netto DATA1 TYTUL=[Treść {DATA1} treść] o datę DATA2 TYTUL=[Treść {DATA2} treść] o datę DATAR TYTUL=[Treść {DATAR} treść] o datę (rok.miesiąc.dzień) DATAD TYTUL=[Treść {DATAD} treść] o datę (dzień.miesiąc.rok) DATADO TYTUL=[Treść {DATADO} treść] o datę końcową DATAOD TYTUL=[Treść {DATAOD} treść] o datę początkową DATSP TYTUL=[Treść {DATSP} treść] o datę sprzedaży DATAP TYTUL=[Treść {DATAP} treść] o datę przyjęcia dokumentu DATAW TYTUL=[Treść {DATAW} treść] o datę wystawienia dokumentu DATZK TYTUL=[Treść {DATZK} treść] o datę zakupu FRNAZWA TYTUL=[Treść {FRNAZWA} treść] o fragment nazwy IDENT1 TYTUL=[Treść {IDENT1} treść] o identyfikator IDMAGZ TYTUL=[Treść {IDMAGZ} treść] o identyfikator magazynu IDENTOS TYTUL=[Treść {IDENTOS} treść] o identyfikator osoby ILOSC1 TYTUL=[Treść {ILOSC1} treść] o ilość ILOSC2 o ilość TYTUL=[Treść {ILOSC2} treść] Strona 4 z 10

ILAKT ILOSCDNI ILOSCMAX ILOSCMIN ILZKL ILZKP IMIE KOD KWOTA1 KWOTA2 LICZBA1 LICZBA2 LICZPKT LIMITCN LIMITIL NAZWA1 NAZWA2 NDOST NLEK NMAG NMIEN NTOWR NODB NZWSK MIASTO NUMER NRSTN NRTOW NRKLN NRREC PESEL RABAT RODZJ STVAT SYMBOL o ilość aktualną lekospisową o ilość dni o ilość maksymalną o ilość minimalną o ilość zakupioną lekospisową o ilość zakupioną pierwotną o imię o kod o kwotę o kwotę o liczbę o liczbę o liczbę punktów o limit cenowy o limit ilościowy o nazwę o nazwę o nazwę dostawcy o nazwę leku o nazwę magazynu o nazwę międzynarodową o nazwę towaru o nazwę odbiorcy o nazwisko o miasto o numer o numer stanowiska o numer towaru o numer klienta o numer recepty o PESEL o rabat o rodzaj (numerycznie) o stawkę VAT o symbol TYTUL=[Treść {ILAKT} treść] TYTUL=[Treść {ILOSCDNI} treść] TYTUL=[Treść {ILOSCMAX} treść] TYTUL=[Treść {ILOSCMIN} treść] TYTUL=[Treść {ILZKL} treść] TYTUL=[Treść {ILZKP} treść] TYTUL=[Treść {IMIE} treść] TYTUL=[Treść {KOD} treść] TYTUL=[Treść {KWOTA1} treść] TYTUL=[Treść {KWOTA2} treść] TYTUL=[Treść {LICZBA1} treść] TYTUL=[Treść {LICZBA2} treść] TYTUL=[Treść {LICZPKT} treść] TYTUL=[Treść {LIMITCN} treść] TYTUL=[Treść {LIMITIL} treść] TYTUL=[Treść {NAZWA1} treść] TYTUL=[Treść {NAZWA2} treść] TYTUL=[Treść {NDOST} treść] TYTUL=[Treść {NLEK} treść] TYTUL=[Treść {NMAG} treść] TYTUL=[Treść {NMIEN} treść] TYTUL=[Treść {NTOWR} treść] TYTUL=[Treść {NODB} treść] TYTUL=[Treść {NZWSK} treść] TYTUL=[Treść {MIASTO} treść] TYTUL=[Treść {NUMER} treść] TYTUL=[Treść {NRSTN} treść] TYTUL=[Treść {NRTOW} treść] TYTUL=[Treść {NRKLN} treść] TYTUL=[Treść {NRREC} treść] TYTUL=[Treść {PESEL} treść] TYTUL=[Treść {RABAT} treść] TYTUL=[Treść {RODZJ} treść] TYTUL=[Treść {STVAT} treść] TYTUL=[Treść {SYMBOL} treść] Strona 5 z 10

SYMZR TYTUL=[Treść {SYMZR} treść] o symbol dokumentu SERIA TYTUL=[Treść {SERIA} treść] o serię NRTYP TYTUL=[Treść {NRTYP} treść] o typ (numerycznie) UPUST TYTUL=[Treść {UPUST} treść] o upust WART1 TYTUL=[Treść {WART1} treść] o wartość WRTBR TYTUL=[Treść {WRTBR} treść] o wartość brutto WRTMAX TYTUL=[Treść {WRTMAX} treść] o wartość maksymalną WRTMIN TYTUL=[Treść {WRTMIN} treść] o wartość minimalną WARTMNZ TYTUL=[Treść {WARTMNZ} treść] o wartość mnożnika WRTNT TYTUL=[Treść {WRTNT} treść] o wartość netto WRWSK TYTUL=[Treść {WRWSK} treść] o wartość wskaźnika ZNACZNIK TYTUL=[Treść {ZNACZNIK} treść] o znacznik WYBIDDOST Pobrana informacja od użytkownika z wyboru dostawcy TYTUL=[Treść {WYBIDDOST} treść] WYBIDFIRM Pobrana informacja od użytkownika z wyboru firmy TYTUL=[Treść {WYBIDFIRM} treść] WYBIDGRPN Pobrana informacja od użytkownika z wyboru grupy TYTUL=[Treść {WYBIDGRPN} treść] asortymentowej WYBIDGRRB Pobrana informacja od użytkownika z wyboru grupy rabatowej TYTUL=[Treść {WYBIDGRRB} treść] WYBIDHURT Pobrana informacja od użytkownika z wyboru hurtowni TYTUL=[Treść {WYBIDHURT} treść] WYBIDPORA Pobrana informacja od użytkownika z wyboru jednostki TYTUL=[Treść {WYBIDPORA} treść] WYBKLDOST Pobrana informacja od użytkownika z wyboru klasy dostawców TYTUL=[Treść {WYBKLDOST} treść] WYBKLFIRM Pobrana informacja od użytkownika z wyboru klasy firm TYTUL=[Treść {WYBKLFIRM} treść] WYBKLPORA Pobrana informacja od użytkownika z wyboru klasy jednostek TYTUL=[Treść {WYBKLPORA} treść] WYBKLLEKA Pobrana informacja od użytkownika z wyboru klasy lekarzy TYTUL=[Treść {WYBKLLEKA} treść] WYBKLPACA Pobrana informacja od użytkownika z wyboru klasy TYTUL=[Treść {WYBKLPACA} treść] pacjentów/odbiorców WYBKLTOWR Pobrana informacja od użytkownika z wyboru klasy towarów TYTUL=[Treść {WYBKLTOWR} treść] WYBIDLEKA Pobrana informacja od użytkownika z wyboru lekarza TYTUL=[Treść {WYBIDLEKA} treść] WYBIDMAGZ Pobrana informacja od użytkownika z wyboru magazynu TYTUL=[Treść {WYBIDMAGZ} treść] WYBIDMSKL Pobrana informacja od użytkownika z wyboru miejsca TYTUL=[Treść {WYBIDMSKL} treść] składowania WYBIDKACH Pobrana informacja od użytkownika z wyboru oddziału NFZ TYTUL=[Treść {WYBIDKACH} treść] WYBIDPACA Pobrana informacja od użytkownika z wyboru pacjenta/odbiorcy TYTUL=[Treść {WYBIDPACA} treść] WYBBLOZ12 Pobrana informacja od użytkownika z wyboru pozycji z BLOZ (12) TYTUL=[Treść {WYBBLOZ12} treść] WYBBLOZ07 Pobrana informacja od użytkownika z wyboru pozycji z BLOZ (7) TYTUL=[Treść {WYBBLOZ07} treść] WYBIDPERS Pobrana informacja od użytkownika z wyboru pracownika TYTUL=[Treść {WYBIDPERS} treść] WYBIDPRFM Pobrana informacja od użytkownika z wyboru profilu TYTUL=[Treść {WYBIDPRFM} treść] farmaceutycznego WYBIDRFND Pobrana informacja od użytkownika z wyboru refundatora TYTUL=[Treść {WYBIDRFND} treść] WYBIDSKPC Pobrana informacja od użytkownika z wyboru skradzionej TYTUL=[Treść {WYBIDSKPC} treść] pieczątki WYBIDSPLE Pobrana informacja od użytkownika z wyboru specjalności TYTUL=[Treść {WYBIDSPLE} treść] lekarskiej WYBIDSWDC Pobrana informacja od użytkownika z wyboru świadczeniodawcy TYTUL=[Treść {WYBIDSWDC} treść] WYBIDTOWR Pobrana informacja od użytkownika z wyboru towaru (zwracany TYTUL=[Treść {WYBIDTOWR} treść] identyf.) WYBNRTOWR Pobrana informacja od użytkownika z wyboru towaru (zwracany TYTUL=[Treść {WYBNRTOWR} treść] nr towaru) WYBIDWLTY Pobrana informacja od użytkownika z wyboru waluty TYTUL=[Treść {WYBIDWLTY} treść] WYBTOWROD Pobrana informacja od użytkownika z wyboru zakresu nazw TYTUL=[Treść {WYBTOWROD} treść] towar początkowy (zwracana nazwa towaru) WYBTOWRDO Pobrana informacja od użytkownika z wyboru zakresu nazw TYTUL=[Treść {WYBTOWRDO} treść] towar końcowy (zwracana nazwa towaru) WYBIDCDOST Pobrana informacja od użytkownika z wyboru z centralnej bazy TYTUL=[Treść {WYBIDCDOST} treść] dostawców WYBIDCPACA Pobrana informacja od użytkownika z wyboru z centralnej bazy TYTUL=[Treść {WYBIDCPACA} treść] pacjentów WYBIDCTOWR Pobrana informacja od użytkownika z wyboru z centralnej bazy towarów TYTUL=[Treść {WYBIDCTOWR} treść] Strona 6 z 10

Wszystkie powyższe pseudo instrukcje oprócz tych które nie wymagają pobierania informacji od użytkownika (np. informacja o aktualnie zalogowanym użytkowniku, o adresie apteki, o numerze konta bankowego) mogą być stosowane jako parametr w zapytaniu SELECT. Umieszczenie takiej nazwy poprzedzonej dwukropkiem spowoduje w momencie wywołania raportu odpowiednią reakcję. Przykładowo umieszczenie parametru WYBKLTOWR spowoduje, że w momencie wywołania raportu wyświetlona zostanie lista dostępnych klas towarowych a do zapytania SELECT zwrócony zostanie identyfikator wybranej przez użytkownika klasy towarowej. Podobnie jeśli zastosujemy parametry DATAOD i DATADO wówczas wyświetlany będzie komunikat z prośbą o podanie daty początkowej i końcowej. To jaki komunikat ma być użytkownikowi wyświetlony i jaki rodzaj danych pobierany (data, ciąg znaków, liczba) określane jest na podstawie nazwy parametru (nazwa jako pseudo instrukcja). Wszystkie pseudo instrukcje zaczynające się od WYB zastosowane jako parametr w zapytaniu SELECT powodują wyświetlenie odpowiedniego okna wyboru i zwracają odpowiedni dla danej pseudo instrukcji identyfikator. Dzięki temu można poprosić użytkownika o wskazanie np. klasy towarów i ograniczyć raport w zapytaniu SELECT do towarów z wybranej przez użytkownika klasy. Pełną listę parametrów, które mogą zostać zastosowane w zapytaniu SELECT wyświetla funkcja [F5] Wstaw parametr. Funkcja ta po wybraniu pozycji z listy parametrów zwraca odpowiednią pseudo instrukcję i umieszcza w miejscu kursora. Jest kilka pseudo instrukcji, które można stosować tylko w zapytaniu SELECT (nie można się do nich odwołać w treści tytułu lub stopki). Zwracają one informacje do polecenia SELECT, które określa sam program bez pytania użytkownika podczas wywołania raportu. Mogą być także pomocne w układaniu planu dla zapytania SELECT (aby móc rozszerzyć warunek np. o pole IDFIRM). Instrukcje stosowane tylko w zapytaniu SELECT przedstawia poniższa tabelka: Instrukcja Opis Przykłady AKTIDFIRM Informacja wewnętrzna o ID apteki select * from firm where id=:aktidfirm DOMIDRFND Informacja wewnętrzna o ID domyślnego refundatora select * from rfnd where id=:domidrfnd AKTIDMAGZ Informacja wewnętrzna o ID obecnego magazynu select * from kzak where id_magc=:aktidmagz AKTIDSTAN Informacja wewnętrzna o ID obecnego stanowiska select * from stan where id=:aktidstan AKTIDPERS Informacja wewnętrzna o ID obecnie zalogowanego select * from sprz where id_ksj=:aktidpers użytkownika AKTIDPORA Informacja wewnętrzna o ID obecnej jednostki organizacyjnej select * from kzak where idpora=:aktidpora Poniżej przykłady wzorców z wykorzystaniem pseudo instrukcji (pogrubione). PRZYKŁAD 2: TYTUL=[Towary należące do klasy "{WYBKLTOWR}"] SZEROKOSC=[8,42] TYTUL_KOLUMNY_1=[Numer towaru] TYTUL_KOLUMNY_2=[Nazwa towaru] select t.nrtow, t.nazwa from towr t where t.id>0 and t.idklas=:wybkltowr and t.wskus=0 order by t.nazwu PRZYKŁAD 3: TYTUL=[ Towary z nazwą międzynarodową zawierającą ciąg "{FRNAZWA}" ] STOPKA=[Raport wykonano dnia {CZAS}] SZEROKOSC=[8,42,42] TYTUL_KOLUMNY_1=[Numer towaru] TYTUL_KOLUMNY_2=[Nazwa towaru] TYTUL_KOLUMNY_3=[Nazwa międzynarodowa] select t.nrtow, t.nazwa, l.nzwmi from towr t, leki l where t.id<>0 and t.wskus=0 and l.idtowr=t.id and UPPER(l.nzwmi) like '%' UPPER(:FRNAZWA) '%' order by t.nazwu Strona 7 z 10

PRZYKŁAD 4 (FIREBIRD): TYTUL=[ Towary według czasu wyprzedaży dostaw. Zakres uwzględnionych danych: od towaru "{WYBTOWROD}" do towaru "{WYBTOWRDO}" Dostawy z okresu od {DATAOD} do {DATADO} ] SZEROKOSC=[10,6,42,11,12,8,11,11,10] TYTUL_KOLUMNY_1=[Wyprzedane (w dniach)] FORMAT_KOLUMNY_1=[0] TYTUL_KOLUMNY_2=[Numer towaru] FORMAT_KOLUMNY_2=[0] TYTUL_KOLUMNY_3=[Nazwa towaru] FORMAT_KOLUMNY_3=[0] TYTUL_KOLUMNY_4=[Data zakupu] FORMAT_KOLUMNY_4=[yy.mm.dd] TYTUL_KOLUMNY_5=[Ilość zakupiona] FORMAT_KOLUMNY_5=[0.00000] TYTUL_KOLUMNY_6=[Cena zak. br.] FORMAT_KOLUMNY_6=[0.00] TYTUL_KOLUMNY_7=[(A) Dzień wyprzedaży] FORMAT_KOLUMNY_7=[yy.mm.dd] TYTUL_KOLUMNY_8=[(B) Data ważności] FORMAT_KOLUMNY_8=[yy.mm.dd] TYTUL_KOLUMNY_9=[(B-A) w dniach] FORMAT_KOLUMNY_9=[0] KOLUMNA_LP=[0] ROZDZIAL_WIERSZY=[0] WYSOKOSC_NAGLOWKA=[2] WYROWNANIE_NAGLOWKA=[1] WYROWNANIE_TABELKI=[1] RAMKA=[1] WIZYTOWKA=[1] select (select first 1 s.datsp from sprz s where s.id<>0 and s.idkzak=k.id and s.idfirm=t.idfirm and s.bufor=0 and s.wskus=0 PLAN (S INDEX (SPRZ_IDKZAK)) order by s.datsp desc ) - k.datzk + 1 as OKRES_WYPRZEDAZY_W_DNIACH, t.nrtow, t.nazwa, k.datzk, k.ilzkl, k.czlbr, (select first 1 s.datsp from sprz s where s.id<>0 and s.idkzak=k.id and s.idfirm=t.idfirm and s.bufor=0 and s.wskus=0 PLAN (S INDEX (SPRZ_IDKZAK)) order by s.datsp desc ) as DZIEN_WYPRZEDAZY, k.datwz as DATA_WAZNOSCI, k.datwz - (select first 1 s.datsp from sprz s where s.id<>0 and s.idkzak=k.id and s.idfirm=t.idfirm and s.bufor=0 and s.wskus=0 PLAN (S INDEX (SPRZ_IDKZAK)) order by s.datsp desc ) as DNI_DO_KONCA_WAZNOSCI from towr t, kzak k where k.id<>0 and t.id=k.idtowr and t.idfirm=k.idfirm and k.empty=1 and k.wskus=0 and k.bufor=0 and k.datzk between :DATAOD and :DATADO and t.nazwa between :WYBTOWROD and :WYBTOWRDO PLAN JOIN (K NATURAL, T INDEX (TOWR_ID)) order by (select first 1 s.datsp from sprz s where s.id<>0 and s.idkzak=k.id and s.idfirm=t.idfirm and s.bufor=0 and s.wskus=0 PLAN (S INDEX (SPRZ_IDKZAK)) order by s.datsp desc ) - k.datzk desc Strona 8 z 10

Istnieją pola w bazie danych których zawartość może być zakodowana lub niejasna dla użytkownika. Aby umożliwić przedstawienie wartości tych pól w raporcie w sposób zrozumiały dla użytkownika możliwe jest załączenie dla danego wzorca funkcji, które odpowiednio przekodują wartości takiej kolumny. Listę funkcji z których może korzystać dany wzorzec w momencie wywołania raportu można określić wywołując [F6] Funkcje wzorca. Przykładowo jeśli dany wzorzec przedstawia godzinę w formie zakodowanej po załączeniu w tym oknie opcji Zamieniaj pola z zaszyfrowaną godziną na godzinę w formacie GG:MM kolumna z godziną w raporcie zostanie rozkodowana. Podobnie aby przykładowo zamienić pole ze wskaźnikiem usunięcia (WSKUS) z wartości 0 i 1 na treść Istniejące / Usunięte wystarczy załączyć dla danego wzorca funkcję przekodowującą tą kolumnę. Wskazówki przy tworzeniu zapytania SELECT WSKAZÓWKA Z danych wybieranych z danej tabeli zawsze pomijamy rekord zerowy. Wybierając dane z kilku tabel które mają pole IDFIRM w warunku powiązanie między nimi wykonuje się po polu ID tabeli oraz po polu IDFIRM (klucz główny). Jeśli interesują nas tylko dane istniejące i nie znajdujące się w buforze i tabela ma kolumny WSKUS i BUFOR trzeba uwzględnić to w warunku. Aby przyspieszyć zapytanie można umieszczać polecenie PLAN. Należy jednak pamiętać że wówczas raport taki będzie działał tylko na wybranym typie bazy danych (Oracle, Firebird). W niektórych przypadkach aby wykorzystać odpowiedni indeks można posłużyć się dodatkowo warunkiem po polu IDFIRM z pseudo instrukcją AKTIDFIRM w celu przekazania tej wartości przez program. Listę dostępnych kolumn dla tabeli można wyświetlić przez wpisanie pełnego polecenia SELECT a następnie cofnięcie się kursorem do pozycji za słowem SELECT i wybranie kombinacji CTRL+Spacja. Program bada tabele z których korzysta dany SELECT i wyświetla dostępne w tym miejscu kolumny. Warunkiem jest włączone wyświetlanie podpowiedzi ( [F11] Wyświetlaj podpowiedź ). Wśród podpowiedzi znajduje się także lista dostępnych funkcji specyficznych dla danego typu bazy danych. PRZYKŁADY select * from towr where ID<>0 select * from towr t, leki l where t.id<>0 and t.id=l.idtowr and t.idfirm=l.idfirm select * from kzak where id<>0 and wskus=0 and bufor=0 select t.nazwa, (select max(datzk) from kzak k where k.id<>0 and k.idtowr=t.id and k.idfirm=t.idfirm and k.wskus=0 and k.bufor=0 PLAN (K INDEX (KZAK_IDTOWR)) ) as OST_DATA_ZAKUPU from towr t where t.id>0 and t.wskus=0 and t.idfirm=:aktidfirm PLAN (T INDEX (TOWR_ID)) Strona 9 z 10

PODZAPYTANIE Funkcja podzapytania umożliwia zdefiniowanie raportu generowanego dla wybranej pozycji z innego raportu, tzn. można zdefiniować wzorzec (podzapytanie ), który dołącza się do już zdefiniowanego wzorca i odwołać się do danych pobranych ze wzorca nadrzędnego. Rys. 3. Wybór funkcji Podzapytanie. Przykładowo dla wzorca prezentującego listę towarów można utworzyć podzapytanie, które zostanie wywołane po wybraniu danej pozycji ([Ent] Wybierz ), prezentujące np. sprzedaż wybranego towaru: DEFINICJA ZAPYTANIA : TYTUL=[Przykładowy raport nadrzędny] SZEROKOSC=[-1,8,40] select id, nrtow, nazwa from TOWR where id > 0 and wskus=0 order by nazwu DEFINICJA PODZAPYTANIA : TYTUL=[Sprzedaż dotycząca towaru {PZP_NAZWA} ] select datsp, ilosp, zplcl from SPRZ where idtowr =:PZP_ID and wskus=0 and bufor=0 Wartość -1 w szerokości kolumny pozwala na jej ukrycie w trakcie wyświetlania raportu. Strona 10 z 10