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.
Kolumna, po której lista jest sortowana zostaje oznaczona symbolem :
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”.
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”
Efekt grupowania w postaci listy zawężonej wg wartości występujących w kolumnie wybranej do grupowania
Kolumna grupowania, może zostać wyodrębniona w nagłówku listy.
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.
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.
Można również stosować filtry tekstowe pozwalające filtrować np. po wybranych fragmentach wartości lub z użyciem prostych warunków.
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 daje możliwość utworzenia filtra dla całego okna ze wskazanie warunków filtrowana dla poszczególnych kolumn.
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.
Tworzymy atrybut dla BST, jest na nagłówku dokumentu BST, klasa ma ID 179.
Dodajemy kolumnę.
Po dodaniu takiego wpisu na zestawie kolumn do wyboru będą dostępne nowe kolumny.
Tutaj przykład z aliasem, aby kolumna miała konkretną nazwę:
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:
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