XL150 – Obsługa list Devexpress

Obsługa list typu DevExpress

W systemie ERP XL dla wybranych list, docelowo wszystkich, została wprowadzona obsługa w standardzie Devexpress. Technologia Devexpress to elastyczny sposób obsługi okien systemu zwłaszcza w kontekście organizacji i zarzadzania listami. W systemie ERP XL usprawnienia zostały wprowadzone w zakresie sortowania, grupowania oraz filtrowania na listach.

Sortowanie

Sortowanie obejmuje praktycznie każdą kolumnę listy w technologi Devexpress.

Obecnie jest to tylko kilka list w systemie, m.in. bilans stanu towarów, FSE- zakładka Intrastat/koszty dodatkowe, kontrola jakości w produkcji.

Opcja sortowania

Kolumna, po której lista jest sortowana zostaje oznaczona symbolem :

Oznaczenie po jakiej kolumnie jest sortowanie

W celu powrotu do pierwotnego sposobu prezentacji listy, należy ustawić kursor myszy na nagłówku kolumny, prawym klawiszem wyświetlić menu podręczne i wybrać „usuń sortownie po tej kolumnie”.

Usuwanie sortowania

Grupowanie

Grupowanie na liście może być określone wg dowolnej kolumny. Na wybranej kolumnie można uruchomić prawy klawisz myszy i z menu podręcznego wybrać „grupuj według tej kolumny”

Grupowanie po kolumnie

Efekt grupowania w postaci listy zawężonej wg wartości występujących w kolumnie wybranej do grupowania

Wyodrębnienie pola grupowania

Kolumna grupowania, może zostać wyodrębniona w nagłówku listy.

Wyodrębnienie pola grupowania ciąg dalszy

Filtrowanie

Filtrowanie szybkie

Filtrowanie szybkie odbywa się po nagłówkach kolumn, każda kolumna w nagłówku zawiera symbol oznaczający możliwość stosowania filtra po zawartościach danej kolumny. Symbol wyświetlony zostaje po naprowadzeniu kursora myszki.

Filtrowanie, ikona filtrowania

Lewy klawisz myszy na symbolu ‘lejka’ wyświetli okienko z wartościami występującymi w danej kolumnie, po zaznaczeniu odpowiednich pozycji , lista zostanie odfiltrowana i zawężona do wartości wskazanych.

Filtrowanie

Można również stosować filtry tekstowe pozwalające filtrować np. po wybranych fragmentach wartości lub z użyciem prostych warunków.

Filtrowanie ciąg dalszy

Kreator filtra

Listy można filtrować w dowolnym układzie i wg dowolnego pola . Służy do tego Kreator filtra. Pozycja w menu podręcznym.

Kreator filtra

Kreator filtra daje możliwość utworzenia filtra dla całego okna ze wskazanie warunków filtrowana dla poszczególnych kolumn.

Kreator filtra ciąg dalszy

Definiowanie dodatkowych kolumn

Z uwagi na konstrukcję zapytania dla list Devexpress konieczna jest zmiana podejścia do definiowania dodatkowych kolumn. Dla takich list definicja nie będzie już zwykłym select’em, ale JOIN’em dołączanym do bazowego zapytania.

Ponieważ wszystkie kolumny z bazowych tabel są dostępne w zapytaniu więc dla nich w ogóle nie trzeba pisać zapytań, są dostępne wprost z listy.

Dla bardziej złożonych przypadków trzeba będzie wypełnić JOIN’a np:

CDN.Atrybuty ON Atr_ObiNumer = A.BsN_ID AND Atr_ObiTyp = 14448 AND Atr_ObiLp = 0 AND Atr_AtkID = 1

W ten sposób będą dostępne wszystkie kolumny z tabeli cdn.Atrybuty do wybrania na liście. Gdy chcemy ograniczyć kolumny lub wywołać funkcję tabelaryczną wtedy zapytanie będzie takie :

(SELECT Atr_Wartosc,Atr_ObiNumer,Atr_ObiTyp,Atr_ObiLp,Atr_AtkID FROM CDN.Atrybuty) ATR ON ATR.Atr_ObiNumer = A.BsN_ID AND ATR.Atr_ObiTyp = 14448 AND ATR.Atr_ObiLp = 0 AND ATR.Atr_AtkID = 1

Tabele zapytania głównego listy mają prefiks “A”.

Konsekwencją takiej konstrukcji jest brak możliwości walidacji zapytania na oknie definicji – dlatego walidacja nie jest dostępna.

Przyklad

Tworzymy atrybut dla BST, jest na nagłówku dokumentu BST, klasa ma ID 179.

Dodajemy kolumnę.

Dodanie połączenia do tabeli

Po dodaniu takiego wpisu na zestawie kolumn do wyboru będą dostępne nowe kolumny.

Spis dodanych kolumn

Tutaj przykład z aliasem, aby kolumna miała konkretną nazwę:

Alias dla dodatkowych kolumn
Alias dla dodatkowych kolumn – efekt końcowy

Definiowanie dodatkowych kolumn – wyjątki

Nie zawsze połączenie dodatkowej kolumny będzie z wykorzystaniem prostego join do głównej tabeli z aliasem A wyświetlanych obiektów. W przypadku list stronicowanych wyświetlane wyniki są prezentowane za pomocą VIEW, który ma zdefiniowane własne nazwy kolumn i to do nich należy wykonywać połączenie.

Przykładowo, lista Serwisowane urządzenia (moduł Serwis > Urządzenia) tworzy taki tymczasowy widok:

Widok stworzony dla DevExpress

Zapytanie do dodatkowej kolumny może mieć wtedy postać: cdn.SrwUrzadzenia on SrU_id = Id

Jeszcze inne przypadki mogą wymagać analizy przez np. SQL Server Profiler. Moduł Serwis > Urządzenia > Karta urządzenia > Historia > Czynności ZSR

Samo łączenie odbywa się z aliasem, ale należy przeanalizować całe zapytanie znalezione w Profilerze i dostosować dodawaną kolumnę do globalnego zapytania. Poniżej konieczność zastosowania aliasu dla kolumny ze względu na duplikację w całościowym zapytaniu SrU_Id.

(select SrU_Opis as Opis, SrU_Id as Sru from CDN.SrwUrzadzenia X where X.SrU_Id = SrU_Id) XY on XY.Sru = A.SrU_Id

Zapytanie z SQL Server Profiler i miejsce dodania dodatkowego łączenia w globalnym zapytaniu

Czy ten artykuł był pomocny?