Jak działa transakcja szukaj.aspx w systemie?
Transakcja szukaj.aspx
umożliwia zaawansowane przeszukiwanie i wyświetlanie list wyboru w systemie. Dzięki niej użytkownicy mogą uruchamiać dowolną transakcję skojarzoną z wybraną pozycją.
W ramach tej funkcji, transakcja szukaj.aspx
generuje listy na podstawie zdefiniowanych w słowniku sekcji ZESTAWIENIA, korzystając z kodu SEL, który określa dostępne transakcje. Definicje w słowniku określają, jakie zapytania mogą być realizowane za pomocą tej transakcji, umożliwiając precyzyjne i efektywne przeszukiwanie danych.
Zaawansowana metoda wyświetlania list wyboru i uruchamiania dowolnej transakcji skojarzonej w wybraną pozycją.
Przeszukiwanie list definiowanych
Transakcja szukaj.aspx pozwala na tworzenie listy do przeszukiwania na podstawie zdefiniowanej w słowniku sekcja ZESTAWIENIA kod SEL – listy transakcji szukaj.aspx
W słowniku definiujemy jakie listy na podstawie zapytań mogą być realizowane za pomocą transakcji szukaj.aspx
Przykład 1 – lista skorowidzy
Przykładowo mamy zdefiniowaną pozycję słownika, która pozwala na wyświetlenie listy zdefiniowanych kodów PRX aby zbudować menu do wyświetlenia słowników
Najważniejsze informacje to:
- KOD – unikalna identyfikator zapytania, który przekazywany jest jako parametr do transakcji np. szukaj.aspx?kod=SKO
- UWAGI / ZAPYTANIE SQL – wpisujemy poprawne SQL jakie ma zwrócić listę danych na podstawie których zostanie zbudowana lista MENU.
Przykład zapytania
SELECT SEKCJA, OPIS + ’ (’+PRX+’)’ as OPIS, BACKCOLOR, IKONA, '/role_adm/x_skorowidze.aspx?prx=’+prx as navigate FROM _PRX WHERE POZYCJA IN (’R’,’L’) AND AKTYWNE = 'True’ ORDER BY SEKCJA, KOLEJNOSC, OPIS
Wymagane kolumny poprawnego zapytania:
- OPIS – fraza wyświetlana w oknie obiektu, tworząca polecenie uruchomienia docelowej transakcji, na jej podstawie działa wyszukiwanie.
- NAVIGATE – wskazuje transakcje jaka ma zostać uruchomiona, gdy użytkownik kliknie w link – tekst OPIS.
- SEKCJA – pozwala grupować dane, wyświetlana w oknie obiektu. Kolumna jest opcjonalna, brak jej w zapytaniu powoduje brak wyświetlania informajci o grupie.
- BACKCOLOR – kolor tła obiektu, brak kolumny definiującej kolor tła powoduje że wszystkie obiekty będą tego samego domyślnego koloru.
- IKONA – plik graficzny w rozmiarze 32×32 wyświetlany wewnątrz obiektu, pozwala użytkownikowi kojarzyć nazwę z symbolem graficznym, kolumna opcjonalna, brak jej oznacza że zostanie wykorzystana domyślna ikona.
Uruchomienie
Uruchomienie transakcji z parametrem kod i podaniem unikalnego kodu ze słownika SEL spowodujemy wykonanie zapytania ze skorowidza i zbudowanie menu.
szukaj.aspx?kod=SKO
W efekcie otrzymamy listę
która możemy przeszukiwać metodą znaną z systemu Windows 8, przykładowo wpisujemy frazę KAR
wyświetli się lista ograniczona do pozycji zawierających w nazwie KAR
Przykład 2 – lista kontrahentów
Wprowadzając do słownika pozycję oznaczoną kodem np. KNKON kontrahenci i przypisaniu do niego zapytania:
SELECT skroco as OPIS, '/role_sys/x_tab.aspx?grupa=KNKON&refno=’+upper(nridodn) as navigate FROM knkon WHERE AKTYWNE = 'True’ ORDER BY skroco
otrzymamy listę kontrahentów.
Zwróć uwagę, że zapytanie zwraca tylko obowiązkowe kolumny, brak jest w zapytaniu oznaczenia sekcji, koloru tła oraz ikonki. Kliknięcie na wybranej pozycji skutkuje wywołaniem transakcji wyświetlającej szczegóły wskazanej kartoteki kontrahenta.
Przykład 3 – lista kontrahentów pogrupowana wg miejscowości
Wprowadzając zapytanie:
SELECT upper(miejscowosc) as sekcja, skroco as OPIS, '/role_sys/x_tab.aspx?grupa=KNKON&refno=’+upper(nridodn) as navigate FROM knkon WHERE len(miejscowosc) >0 and AKTYWNE = 'True’ ORDER BY miejscowosc, skroco
Otrzymamy listę kontrahentów z przypisaną nazwą miejscowości, pogrupowaną wg miejscowości (nazwa zamieniona na duże litery)
Przykład 4 – lista kontrahentów pogrupowana wg pierwszej litery nazwy
Wprowadzając zapytanie:
SELECT upper(substring(skroco,1,1)) as sekcja, skroco as OPIS, '/role_sys/x_tab.aspx?grupa=KNKON&refno=’+upper(nridodn) as navigate FROM knkon WHERE AKTYWNE = 'True’ ORDER BY skroco
Otrzymamy listę kontrahentów pogrupowaną wg pierwszej litery nazwy.
Przykład 5 – lista użytkowników do wyświetlenia rejestru dokumentów
Wprowadzając zapytanie:
SELECT username as OPIS, '/role_sys/x_grid.aspx?refno=CRM_WIZYTY&status=0&login=’+username as navigate FROM _users WHERE AKTYWNE = 'True’ ORDER BY username
otrzymamy listę aktywnych użytkowników programu, po wybraniu użytkownika program uruchomi transakcję wyświetlającą widok dokumentów odfiltrowany wg wybranego użytkownika.
Przykład 6 – lista dat z rejestru dokumentów
Jeżeli chcemy wyświetlić listę dat w jakich są zarejestrowane wizyty handlowców wprowadzamy zapytanie:
SELECT top(100) substring(upper(ddowod),1,10) as OPIS, '/role_sys/x_grid.aspx?refno=CRM_WIZYTY&ddowod=’+upper(ddowod) as navigate FROM dpcrm WHERE AKTYWNE = 'True’ group by ddowod ORDER BY ddowod desc
W efekcie dostaniemy listę ostatnich 100 dat powiązanych z dokumentami. Jeżeli danego dnia nie ma żadnej wizyty to taka data się na liście wyboru nie pojawi. Ograniczenie TOP(100) pozwala nam ograniczyć listę dat do ostatnich 100 w stosunku do daty bieżącej.
Chcąc na liście wyświetlić wizyty z dnia 23 dowolnego miesiąca wpisujemy 23 i lista zostanie ograniczona.
Po kliknięciu w datę wyświetlony zostanie rejestr (widok CRM_WIZYTY) odfiltrowany dla wybranej daty (DDOWOD).
Przykład 7 – lista kontrahentów wg dat wizyt
Jeżeli chcemy stworzyć bardziej skomplikowaną listę wizyt pogrupowaną wg dat, ale z rozbiciem na kontrahentów i poszczególne wizyty, a kliknięcie w wybraną pozycję menu ma wyświetlić podgląd dokumentu wizyty to wprowadzamy następujące zapytanie:
WITH TYM AS (SELECT TOP(100) substring(upper(ddowod),1,10) as sekcja, (SELECT TOP(1) SKROCO FROM KNKON WHERE NRIDODN = dpcrm.NRIDODN) as OPIS, '/role_sys/x_tab.aspx?GRUPA=WIZ&refno=’+upper(refno) as navigate FROM dpcrm WHERE AKTYWNE = 'True’ ORDER BY DDOWOD DESC ) SELECT * FROM TYM ORDER BY SEKCJA DESC, OPIS
Zapytanie składa się z dwóch części:
- Pierwsza zwraca ostatnie 100 rekordów z bazytabeli dpcrm WITH TYM AS (SELECT TOP(100) substring(upper(ddowod),1,10) as sekcja, (SELECT TOP(1) SKROCO FROM KNKON WHERE NRIDODN = dpcrm.NRIDODN) as OPIS, '/role_sys/x_tab.aspx?GRUPA=WIZ&refno=’+upper(refno) as navigate FROM dpcrm WHERE AKTYWNE = 'True’ ORDER BY DDOWOD DESC )
- Druga otrzymane wyniki sortuje wg dat i nazw kontrahentów SELECT * FROM TYM ORDER BY SEKCJA DESC, OPIS
W efekcie otrzymujemy listę