www.tres.pl - Baza wiedzy Trawers ERP - Spis treści
Query. Zapytania wg warunków 1. Opis ogólny 2. Wywołanie zapytania Query 3. Funkcje, klawisze, relacje 3.1 Funkcje sterujące 3.2 Klawisze (przyciski) Wybór z tabeli Redagowanie (korekta) 3.3 Operatory relacji 4. Przykłady Query 5. Tabela warunków Query 6. Alerty. Warunki Query 7. Query w zestawieniach tabelarycznych 8. Uwagi i zastrzeżenia 9. Tematy powiązane 1. Opis ogólny Query Query, dosłownie: zapytanie, pojęcie stosowane w informatyce dla określenia metody wyszukiwania informacji w bazach danych. Metoda polega na wskazaniu warunków wyszukiwania (wybierania), np. wyszukanie faktur sprzedaży o wartości netto powyżej 10 tys zł wystawionych od początku roku do dzisiaj. Jako wynik zapytania otrzymuje się tę część zapisów znajdujących się w bazie danych, które spełniają podany warunek. Dlatego mówi się o filtrowaniu danych a warunki wyszukiwania (wybierania) nazywa się filtrami (filtrowanie danych). (en: Data filtering, de: Filterung der Daten) Warunki zapytań Query można zapamiętywać i wielokrotnie z nich korzystać. Query zawęża widok na zgromadzone dane Query pozwala zawężać (filtrować) przeglądane i drukowane dane (rekordy), tak aby użytkownik widział tylko te dane, które go interesują. Np. może oglądać karty tylko tych klientów, którzy zakupili towary o wartości powyżej 10 tys. lub otrzymać zestawienie klientów, do których nie wysłano e-maili marketingowych w ostatnich 6 miesiącach. Query filtruje dane jednego zbioru (tabeli) Każdy warunek query powiązany jest z konkretnym, jednym zbiorem danych, np. z kartoteką odbiorców, dostawców, zbiorem faktur lub rejestrów kasowych. Podczas definiowania warunku, program udostępnia nazwy techniczne i nazwy opisowe kolumn (pól) w zbiorach (tabelach). Program korzysta ze słownika danych. Baza danych. Słownik Query można używać wielokrotnie Warunki query można zapamiętać [F3] i używać powtórnie w miarę potrzeby [F2]. Można zbudować dowolną liczbę warunków query. Query liczy rekordy (zapisy) W Query można obliczyć liczbę rekordów spełniających warunek. o--------------------------------------------------------------[X]o | | | Rekordy wg warunku: Wyświetl / Oblicz / Zrezygnuj (W/O/Z) W | | ---o---- --o--- | o----------------------- | ------ | --------------------------o | | v | [W] Wyświetla rekordy | spełniające warunek | | v [O] Oblicza liczbę rekordów Podaje np. Znaleziono: 20 Przeszukano: 89 671 Przykład -------- Ustalanie liczby indeksów KIM, które mają kategorię ABC = [A] Funkcja: MG > Kartoteki > Przeglądanie wg Query [MG_KKI50] Warunek: [Kategoria ABC] jest = 'A' [W] Wyświetl Można oznaczać [*] rekordy spełniające warunek W zbiorach (tabelach), na które nałożone są warunki, można oznaczać [*] (en: Tagging) indywidualnie i globalnie poszczególne rekordy (karty). Na tak oznaczonych rekordach, można następnie wykonywać operacje seryjne, np. wysyłać e-maile do oznaczonych odbiorców, wysyłać oznaczone karty KIM do plików CSV, itp. Oznaczanie rekordów [*] Można korygować rekordy spełniające warunek W zbiorach (tabelach), na które nałożone są warunki, można wpisywać nowe lub korygować dotychczasowe dane. Zapisy będą w rekordach spełniających warunki. Np. wpisywanie kodów GTU do wskazanych kart KIM. MG > Pomocnicze > Kod GTU do KIM wg Query [MG_PGTU0]. Podobne zadanie, ale w bardziej ogólnej formule, wykonuje funkcja: PM > Globalne zmiany w zbiorach [PM_PGZ40]. Globalne zmiany pól w bazie danych Liczba wystąpień wartości pól Podobne obliczenia można wykonać w funkcji: PM > Statystyki > Liczba wystąpień wartości pól [PM_ZST40] Zestawienie pokazuje liczbę wystąpień wartości pól, tu: Kategoria ABC System: MG Zbiór: 229 Indeksy KIM MG Pole: ABC Kategoria ABC ------------------------------------- ABC Liczba kart KIM ----------------- --------------- B Kategoria B 9278 88.4 % D Poza kategorią 1029 9.8 % A Kategoria A 165 1.6 % C Kategoria C 26 0.2 % ------------------------------------- Razem: 10498 100.0 % ------------------------------------- Statystyki zbiorów danych 2. Wywołanie zapytania Query Okno budowania warunków (zapytanie) pokazuje się po wybraniu [B] z menu: -------------------- [W] Wszystkie [B] Wybrane wg Query -------------------- [W] Wszystkie zapisy ---------------- Uwzględnione będą wszystkie zapisy (wiersze) znajdujące się w tabeli bazy danych. [B] Wybrane zapisy - zapytanie Query by Example ------------------------------------------- Można utworzyć zapytanie, którego wynikiem jest lista wierszy spełniających warunki zapytania. Warunki zapytania odnoszą się do pól (kolumn) aktywnej tabeli (zbioru) danych. Zapytanie może składać się z wielu warunków. Zapytanie można zapamiętać do późniejszego użycia. 3. Funkcje, klawisze, relacje 3.1 Funkcje sterujące * Porównaj z wartością ---------------------- Program porównuje dane pole z konkretną wartością, np. USLUGA, 40, 20xx.09.29 * Porównaj z zawartością pola ----------------------------- Program porównuje wartości znajdujące się w dwóch polach * Łącznik [i] oraz [lub] ------------------------ Łączy dwa warunki A [i] B - oba warunki A i B muszą być spełnione jednocześnie A [lub] B - wystarczy, że spełniony będzie jeden z warunków, ale mogą być spełnione oba warunki * Grupy (nawiasy grupujące) --------------------------- Wskazują kolejność wykonywania warunków. Query może zawierać do 10 warunków. Gdy występują łączniki [i] oraz [lub] to należy użyć nawiasów do wskazania kolejności sprawdzania warunków. Łącznik [i] ma wyższy priorytet niż [lub]. Dlatego wyrażenia, które są połączone [lub] powinny być zgrupowane. Poniżej są przykłady, które ilustrują wpływ łączników [i], [lub] i grupowania (nawiasów) na wynik Query. 3.2 Klawisze (przyciski) Wybieranie z tabeli zapamiętanych warunków Query o-- Zapytania -------------------------------------------------------o | - --- Nazwa -------------- Kartoteka (zbiór) ------ - Od dnia- Op | | * Rodzaj = 03 Indeksy KIM 20xx.01.19 SP | | Opakowania Indeksy KIM 20xx.01.10 AA | | Produkt Indeksy KIM 20xx.01.10 AA | o--------------------------------------------------------------------o | F3-szukaj, F6-zablokuj/odblokuj, F9-usuń, F10-pokaż, Enter-wybór | o----------- ----o--------------- -----------------------------------o ^ | | v | F6-zablokuj/odblokuj | [*] zablokowane F6-zablokuj: blokuje zapytanie przed zmianą przez innego operatora Zapewnia prywatność zapytania Bezpieczeństwo. Mechanizmy Operator, właściciel zapytania, może zablokować je przed zmianą przez innego operatora. Właścicielem zapytania jest ten operator, który je utworzył lub ostatnio poprawiał. Kiedy warto zablokować zapytanie przed zmianą ? Zapytania mogą być używane przez programy pracujące automatycznie. Spełniają kluczową rolę w filtrowaniu danych. Blokowanie zabezpiecza przed zmianą warunków przez innych użytkowników, nieświadomych znaczenia zapytań. Automatyzacje w Trawers ERP Redagowanie linii warunku Query o-- Warunek ---------------------------------------------------------o | [Nazwa indeksu] zawiera tekst 'USLUGA' | | | o--------------------------------------------------------------------o |F2-wybierz, F3-zapisz, F7-popraw, F8-dopisz, F9-usuń, P-przenieś | o--------------------------------------------------------------------o F2 Wybiera warunek F3 Zapisuje warunek F7 Rozpoczyna poprawianie podświetlonej linii F8 Dopisuje nową linię F9 Usuwa podświetloną linię ^F10 [P] Przemieszcza linię w inne, wskazane miejsce 3.3 Operatory relacji W poszczególnych liniach Query definiuje się warunki, które muszą być spełnione, aby rekord został wybrany ze zbioru danych, np. pole 'Nazwa indeksu' powinno zawierać tekst: 'usługa'. Wyrażenie określające warunek, to wyrażenie porównujące zawartość pola w zbiorze z konkretną wartością lub zawartość pola z zawartością innego pola w zbiorze. Metodę porównania określa operator relacji (en: Relational operator). Operator relacji Ogólnie: operator relacji, to jest konstrukcja w języku programowania, która bada relację (związek) między dwoma argumentami. W odpowiedzi wskazuje czy jest związek czy nie ma związku. Tu: Czy w polu 'Nazwa indeksu' jest tekst 'usługa'. Operatory relacji: Pola liczbowe, znakowe, daty Operatory relacji zależą od typu pól: liczbowe (numeryczne), znakowe, pola daty. Pola liczbowe (numeryczne), znakowe (tekstowe) i daty ----------------------------------------------------- jest = (równy) (en: Equals) nie jest = (równy) (en: Does Not Equal) jest > (większy) (en: Is Greater Than) jest >= (większy lub równy) (en: Is Greater Than or Equal To) jest < (mniejszy) (en: Is Less Than) jest <= (mniejszy lub równy) (en: Is Less Than or Equal To) jest z zakresu (od... do...) nie jest z zakresu (od... do...) Pola znakowe (tekstowe) ----------------------- zawiera tekst (...) (en: Contains nie zawiera tekstu (...) (en: Does Not contain jest zawarty w tekscie (...) nie jest zawarty w tekscie (...) jest wypełniony (en: In Not Empty) nie jest wypełniony (en: Is Empty) rozpoczyna się (...) (en: Starts With) nie rozpoczyna się (...) zawiera tekst (od pozycji) wyrażenie regularne (regex) (en: Regex) Ciągi znaków, które pozwalają na wyszukiwanie w tekstach wystąpień wzorca, np. a.a --> adaptacja wymiana zapasami t{2} --> motto Scott Wyrażenia regularne Pola daty --------- jest = (dacie aktualnej) nie jest = (od daty aktualnej) jest > (od daty aktualnej) jest >= (od daty aktualnej) jest < (od daty aktualnej) jest <= (od daty aktualnej) jest wypełniona nie jest wypełniona jest z wczoraj jest jutro jest z tego tygodnia jest z zeszłego tygodnia jest z kolejnego tygodnia jest z tego miesiąca jest z zeszłego miesiąca jest z kolejnego miesiąca jest z tego roku jest sprzed (...) dni jest z ostatnich (...) dni nastąpi w ciągu (...) dni (od daty aktualnej) jest (...) dni od daty aktual jest ponad (...) dni od daty (od daty aktualnej) 4. Przykłady Query Wyświetlenie odbiorców, którzy mają w nazwie: S.A. NA > Odbiorcy > Query Przeglądanie i oznaczanie [NA_OSZ30] F8-dopisz: [Grupa]: pole bez nawiasów [Nazwy pól na00od%f]: Nazwa kontrahenta [Relacja]: 'zawiera tekst (...)' [Porównaj z wartością]: [Wartość]: 'S.A.' [Grupa]: pole bez nawiasu F3-zapisz --- Warunek ---------------------------- [Nazwa kontrahenta] zawiera tekst 'S.A.' ---------------------------------------- Rezultat: --------- Wyświetlają się wszyscy kontrahenci, którzy mają w nazwie: S.A. Wielkość liter nie ma znaczenia. Wyświetlenie odbiorców, którzy mają w nazwie 'S.A.' lub 'Sp. z o.o.' NA > Odbiorcy > Query Przeglądanie i oznaczanie [NA_OSZ30] F8-dopisz: [Grupa]: pole bez nawiasów [Nazwy pól na00od%f]: 'Nazwa kontrahenta' [Relacja]: 'zawiera tekst (...)' [Porównaj z wartością]: [Wartość]: 'S.A.' [Grupa]: pole bez nawiasu F8-dopisz: [Łącznik]: 'lub' [Grupa]: pole bez nawiasów [Nazwy pól na00od%f]: 'Nazwa kontrahenta' [Relacja]: 'zawiera tekst (...)' [Porównaj z wartością]: [Wartość]: 'SP. Z O.O.' [Grupa]: pole bez nawiasu F3-zapisz --- Warunek -------------------------------------- [Nazwa kontrahenta] zawiera tekst 'S.A.' lub [Nazwa kontrahenta] zawiera tekst 'SP. Z O.O.' -------------------------------------------------- Rezultat: --------- Wyświetlają się kontrahenci, którzy mają w nazwie: S.A. lub Sp. z o.o. Wielkość liter nie ma znaczenia. Wyświetlenie odbiorców, których saldo należności jest większe od zera NA > Odbiorcy > Query Przeglądanie i oznaczanie [NA_OSZ30] F8-dopisz: [Grupa]: pole bez nawiasów [Nazwy pól na00od%f]: 'Saldo kontrahenta w PLN' [Relacja]: 'jest > (większy)' [Porównaj z wartością]: [Wartość]: 0.00 [Grupa]: pole bez nawiasu F3-zapisz --- Warunek -------------------------- [Saldo kontrahenta w PLN] jest > 0.00 -------------------------------------- Rezultat: --------- Wyświetlają się wszyscy odbiorcy, których saldo jest większe niż: 0.00 Wyświetlenie odbiorców, którzy są na etapie [40] Prezentacja oferty NA > Odbiorcy > Query Przeglądanie i oznaczanie [NA_OSZ30] F8-dopisz: [Grupa]: pole bez nawiasów [Nazwy pól na00od%f]: 'Kontrakt - etap w cyklu sprzed' [Relacja]: 'jest = (równy)' [Porównaj z wartością]: [Wartość]: '40' [Grupa]: pole bez nawiasu F3-zapisz --- Warunek -------------------------------- [Kontrakt - etap w cyklu sprzed] jest = '40' -------------------------------------------- Rezultat: --------- Wyświetlają się kontrahenci na etapie [40]. Grupowanie warunków (nawiasy) Query może zawierać do 10 warunków. Jeżeli występują łączniki [i] oraz [lub] to należy użyć nawiasów Grupy do wskazania kolejności sprawdzania warunków. Łącznik [i] ma wyższy priorytet niż [lub]. Dlatego wyrażenia, które są połączone [lub] powinny być zgrupowane. Poniższe przykłady ilustrują wpływ łączników i grupowania na wynik Query. MG > Kartoteki > Przeglądanie wg Query [MG_KKI50] Niech: [A] oznacza warunek: [Indeks] zawiera 'USLUGA' [B] oznacza warunek: [Wyróżnik] = '10' [C] oznacza warunek: [Odmiana] = '20' Można utworzyć następujące Query: 1) A i B lub C : [Indeks] zawiera 'USLUGA' i [Wyróżnik] = '10' lub [Odmiana] = '20' 2) (A i B) lub C : ([Indeks] zawiera 'USLUGA' i [Wyróżnik] = '10') lub [Odmiana] = '20' 3) A i (B lub C) : [Indeks] zawiera 'USLUGA' i ([Wyróżnik] = '10' lub [Odmiana] = '20') 4) A lub (B i C) : [Indeks] zawiera 'USLUGA' lub ([Wyróżnik] = '10' i [Odmiana] = '20') 5) A lub B lub C : [Indeks] zawiera 'USLUGA' lub [Wyróżnik] = '10' lub [Odmiana] = '20' 6) A i B i C : [Indeks] zawiera 'USLUGA' i [Wyróżnik] = '10' i [Odmiana] = '20' Niech kartoteka KIM zawiera indeksy: [Indeks] [Wyróżnik] [Odmiana] [Ujęte w Query Nr] TOWAR-001 55 33 TOWAR-002 55 20 1 2 5 TOWAR-001 10 33 5 TOWAR-003 10 20 1 2 4 5 A-USLUGA-4 55 33 4 5 A-USLUGA-3 55 20 1 2 3 4 5 USLUGA-02 10 33 1 2 3 4 5 USLUGA-01 10 20 1 2 3 4 5 6 Kolumna [Ujęte w Query Nr] pokazuje, które indeksy zostaną ujęte w powyższych Query. 5. Tabela warunków Query Zapytania wg warunków zapisane są w jednej tabeli (zbiorze). Zapisy mają identyfikatory: system, np. MG, kartoteka, np. kartoteka KIM. W konkretnym kontekście pracy, program wyświetla zapytania należące do tego kontekstu. Np. wyszukiwanie kart KIM wg warunku, podczas tworzenia zestawień o stanie zapasów magazynowych. Przeglądanie tabeli Zawartość całej tabeli zapytań Query można przeglądać: AD > Trawers > Tabele. Wzorce, Query, Załączniki.. [AD_TAT20] ------------------------------------------------------------------- System Operator Kartoteka Nazwa zapytania Query -- -- ----------------------- ---------------------------- NA BR 199 Kartoteka odbiorców Etap 40.60 prezent,analizy RK AN 114 Kontakty bieżące Kontakty operatora AN NA IK 199 Kartoteka odbiorców Partner PT autoryzowany RK RK 114 Kontakty bieżące Ost. kontakt < 20xx.01.01 * PL JD 156 Kartoteka kadrowa Stanowisko: Handlowcy o --------------- --------o---------- ----------------------------- | | ^ Warunek powiązany | ze zbiorem, np. | Kartoteka odbiorców o Warunek może zmienić tylko ten operator, który go utworzył Admin też może zmienić 6. Alerty. Warunki Query Alert Alert (ogólnie), to jest sygnał o wystąpieniu monitorowanego zjawiska. Alert w programie Trawers ERP, to jest mechanizm reagowania na wystąpienie określonych zdarzeń lub spełnienie ustalonych warunków. Warunki Query W tabeli alertów [327 Alerty Definicje] ustala się warunki, które uaktywniają wysłanie raportu do podanych adresatów. Warunki w tabeli alertów buduje się wg mechanizmu Query. Patrz szczegóły: Alerty i raportowanie. Opis 7. Query w zestawieniach tabelarycznych W zestawieniach tabelarycznych dane zgromadzone w kartotekach i zbiorach transakcyjnych (dokumentach) można przeglądać w formie matrycy, z główką i boczkiem i danymi na ich przecięciu. Przezentowane dane można zawężać (filtrować) przy użyciu warunków Query. Zastosowane warunki można zapamętywać i powtórnie używać. Patrz szczegóły: Tabelaryczne. Opis ogólny 8. Uwagi i zastrzeżenia * Query pozwala zawężać (filtrować) przeglądane dane, tak aby użytkownik widział tylko te dane, które go interesują * Metoda wyszukiwania wg Query jest przydatna gdy warunek (filtr) nakłada się na kartotekę zbudowaną z jednolitych rekordów, np. odbiorcy, dostawcy, indeksy KIM. Filtr, np. [nazwa zawiera znaki XYZ] * W przypadku zbiorów (tabel) o złożonej strukturze, np. kartoteka rozrachunków proste filtry nie wystarczą. Trzeba znać strukturę zbioru i odpowiednio budować filtry złożone. Szukanie w bazie danych Baza danych. Słownik Np. aby z kartoteki należności wybrać rachunki przewidziane do zapłaty na rachunek bankowy [1] trzeba zbudować filtr: [Nr rach bank (NA:nasz ZO:obcy)] jest = '1' lub [Do rozlicz System] nie jest = 'NA' Gdyż rachunki: Do rozliczenia mogą powstać także w systemie KB (nadpłata) nr rach = [ ] a nie powinny być pominięte w obliczeniach należności. W takich sytuacjach można stosować generatory raportów, np. RaportyXML RaportyXML Generator w PM 9. Tematy powiązane Raporty i analizy RaportyXML Generator w PM Szukanie w bazie danych Zestawienia tabelaryczne Baza danych. Słownik Oznaczanie rekordów [*] Wyrażenia regularne Warunki (filtry) operatorów F12 Menu wewnętrzne Bezpieczeństwo. Mechanizmy Słowa kluczowe #Raporty-Query #Raporty-Tabelarycznie #Raporty-FormatyDanych #Raporty-XML
www.tres.pl - Baza wiedzy Trawers ERP - Spis treści