logo-softwarestudio-2020-600

j_tree.aspx

Pewne informacje zapisywane w systemie mogą być z natury rzeczy gromadzone w układzie hierachicznym. Doskonałym narzędziem do prezentowania takich danych w programie jest transakcja wyświetlająca zależności za pomocą tzw. „drzewka”.

Uniwersalna transakcja j_tree.aspx zastąpiła poprzednią wersję x_tree.aspx, pozwala na wyświetlanie danych na zasadzie od ogółu do szczegółu. Dane są gromadzone wg tzw nazw folderów, jednak sam identyfikator folderu może ale nie musi oznaczać folderu w rozumieniu gromadzenia plików na dysku komputera.

„Drzewko” reprezentuje układ zależności dowolnych informacji i może stanowić doskonałe narzędzie nawigacyjne do uruchamiania innych transakcji, zastępując tradycyjne submenu, które budowane jest na zasadzie „płaskiej” zależności.

Ilość zagnieżdżeń w drzewku może być w zasadzie dowolna.

Konfiguracja

Transakcja j_tree.aspx ma za zadanie wyłącznie wyświetlać pozycję i nawigować do wskazanych transakcji. Konfiguracja i zarządzanie strukturą i pozycjami drzewka realizowana jest za pomocą dedykowanej transakcji j_tree_admin.aspx.

j_tree_admin

Po wybraniu dowolnej pozycji w drzewku wyświetlone w prawym oknie zostaną szczegóły danej pozycji.

j_tree_admin umowy

Możemy zmienić nazwę pozycji, zmienić jej położenie w strukturze drzewa (wskazując folder nadrzędny PARENT), podać link do pliku wyświetlanego jako ikona oraz wskazać transakcję jaka ma być uruchomiona, gdy użytkownik kliknie na pozycję z drzewka. Jeżeli pole transakcji jest puste to kliknięcie (wybranie) pozycji drzewka nie uruchamia żadnej transakcji.

 Dopisywanie nowych folderów

Budowa struktury drzewka polega na dodawaniu nowych „gałęzi” i folderów. W górnym pasku mamy do dyspozycji polecenia pozwalające na dopisywanie folderów głównego poziomu (root) lub podfolderów oraz usuwanie istniejących.

Skorowidze

Formularz zarządzania folderami – dopisywania i edycji korzysta ze słowników jako listy wyboru ikonek oraz transakcji.

Lista ikon

Dostępna lista ikon wynika z konfiguracji słownika z kodem DRZIK

lista ikon

Lista transakcji

Dostępna lista transakcji wynika z konfiguracji słownika z kodem DRZTR

lista transakcji

Uruchomienie

Transakcja wymaga przy uruchomieniu pliku j_tree.aspx i podania parametru kod. Parametr kod odwołuje się do pozycji skorowidza typ DRZ.

Parametry opcjonalne

expand

Parametr expand z wartością 1 spowoduje, że program automatycznie po załadowaniu transakcji rozwinie wszystkie elementy drzewka.

np. j_tree.aspx?kod=DOK_NAR&expand=1

j_tree expand

Skorowidz DRZ

Skorowidz zawiera zdefiniowane drzewka kody drzewek wraz z zapytaniem SQL jakie ma zwracać pozycje drzewa. Może to być dowolne zapytanie SQL spełniające pewne założenia co do zwracanych informacji. Standardowo zapytania są do tabeli KNFLD, która dedykowana jest do przechowywania danych hierachicznych folderów, ale można zaprojektować zapytanie do innej tabeli, pamiętając jednak, że moduł konfiguracji (projektowania) j_tree_admin.aspx działa tylko i wyłącznie z tabelą KNFLD.

Kolumna kod zawiera kod jaki należy przekazać uruchamiając transakcję j_tree.aspx

skorowidz DRZ

Zapytanie SQL

Zapytanie musi zwracać kolumny o określonej nazwie:

  • ID – identyfikator pozycji drzewka, wartość unikalna
  • FOLDER – wyświetlana jawnie nazwa pozycji drzewka
  • Zapytanie SQL ROOT od 2020-10-23 miejsce na podanie parametrów przekazywanych do _code_sql np. 03
  • Zapytanie SQL PARENT PARENTID – identyfikator pozycji nadrzędnej, jeżeli pozycja ma być na najwyższym poziomie (tzw. ROOT) to wartość zwraca musi być -1 od 2020-10-23 miejsce na podanie identyfikatora zapytania w tabeli _code_SQL, np. 729EA8E3-0587-43E7-B93A-7FB9DFFE836F.
  • VALUE – wartość przechowywana w danej pozycji drzewka i wykorzystywana  do uruchomienia transakcji po kliknięciu przez użytkownika. Wskazuje jaki plik ma być uruchomiony po wybraniu pozycji. Jeżeli VALUE jest puste to kliknięcie nie powoduje żadnej reakcji, zastosowanie dla gałęzi drzewa do rozwijania szczegółów, gdy samo rozwinięcie nie ma skutkować otwarciem transakcji.
  • ICON – wskazanie pliku jaki ma być wyświetlony w formie ikonki po lewej stronie tekstu, rozmiar pliku wyświetlanego to 16×16 pikseli.

Przykład zapytania

[NRIDFLD] as id, [FOLDER] as text, [PARENT] as parentid, (REPLACE(TRANSAKCJA,’@folder’, folder )) AS value, IKONA AS icon FROM [knfld] WHERE AKTYWNE=1 order by parent, folder

W powyższym przykładzie wartość VALUE jeżeli zawiera tekst @folder to zostanie podstawiona pod niego faktyczna opis wybranej pozycji drzewka. Przykładowo wybierzemy transakcje z następującym wpisem:

/role_sys/x_grid.aspx?refno=DMS_DPDOK&TYTUL=@FOLDER 

W takim wypadku wartość @FOLDER zostanie zastąpiona tekstem jaki przypisany jest do nazwy pozycji drzewka, faktycznie więc uruchomiona transakcja będzie mieć inną wersję. Jeżeli użytkownik kliknie na pozycję drzewka, która wyświetla tekst UMOWY ZAKOŃCZONE, to zostanie uruchomiona transakcja:

role_sys/x_grid.aspx?refno=DMS_DPDOK&TYTUL=UMOWY ZAKOŃCZONE

jeżeli klinie na pozycje PRODUKCJA, to uruchomi transakcje:

role_sys/x_grid.aspx?refno=DMS_DPDOK&TYTUL=PRODUKCJA

Przykład zapytania do innej tabeli

Transakcja może działać na podstawie dowolnego prawidłowego zapytania SQL np. odczyt struktury z tabeli KNKON

upper([NRIDODN]) as id, [SKROCO] as text, upper([NRIDPRZ]) as parentid, case when prx=’PRA’ THEN (’/role_sys/x_details.aspx?refno=DTS_KNKON&nridodn=’ + upper(NRIDODN)) ELSE ” END AS value, ” AS icon FROM knkon WHERE (ROLASYS = 'CRM’) and AKTYWNE=1 AND (PRX IN (’ODD’, 'DEP’, 'PRA’)) order by NRIDPRZ, SKROCO

W efekcie może się wyświetlić drzewo zależności.

Przykład zapytania z wyróżnieniem poziomów i dodaniem ikonek

Możemy modyfikując zapytanie spowodować wyświetlenie treści poszczególnych pozycji za pomocą czcionki pogrubionej lub z ikonką. Poniższe zapytanie spowoduje taki efekt wizualny

upper([NRIDODN]) as id, case when prx=’PRA’ THEN [skroco] else '<b>’ +[SKROCO] + '</b>’ end as text, upper([NRIDPRZ]) as parentid, case when prx=’PRA’ THEN (’/role_sys/x_details.aspx?refno=DTS_KNKON&nridodn=’ + upper(NRIDODN)) ELSE ” END AS value, case when prx=’PRA’ THEN '/images_v/16×16/businessman.png’ ELSE ” END AS icon FROM knkon WHERE (ROLASYS = 'CRM’) and AKTYWNE=1 AND (PRX IN (’ODD’, 'DEP’, 'PRA’)) order by NRIDPRZ, SKROCO

j_tree3

Pozycja dla których wartość w kolumnie PRX nie jest równa PRA (czyli pozostałe poziomy niż pracownicy) będą wyświetlane czcionką pogrubioną, natomiast pracownicy będą mieść wyświetlaną ikonkę w postaci pliku graficznego /images_v/16×16/businessman.png