Newsletter
Drzewo filtrów IT

Drzewo filtrów

Widząc pozytywne zaskoczenie pomieszane z żalem niewiedzy w oczach osoby, która przez kilka minut wykładała mi potrzebę, która pojawiła się w trakcie jednego z wdrożeń Verto, po tym, jak mogłem jej przekazać radosną nowinę „przecież to już jest”, postanowiłem wspomnieć na blogu o mechanizmie, o którym mowa, mianowicie o widoku „Drzewo filtrów”.

Zagadnienie filtrowania danych według różnych kryteriów jest w codziennej pracy z systemem funkcjonalnością podstawową i bardzo istotną. System, w fazie wdrożenia powinien dostarczać funkcji pozwalających zdefiniować i dostosować kryteria filtrowania do konkretnych potrzeb użytkowników obsługujących system. Główny widok platformy NEXT, widok tabelaryczny wyposażony jest w potężne narzędzie realizujące te wymagania mianowicie w mechanizm filtrów definiowanych. Mechanizm ten pozwala na definiowanie różnego rodzajów nazwanych filtrów, z dowolnie skomplikowanymi warunkami, z możliwością zarządzania dostępnością, wymagalnością i innymi parametrami z określeniem ogólnych lub indywidualnych dla poszczególnych użytkowników parametrów zachowania każdego z filtrów. Dla przykładu w widoku kontrahentów można zdefiniować następujące filtry:

• „Posiadający uwagi” – filtr, który zawiera warunek na kolumnę
„Uwagi” = „Tak”

•  „Posiadający ostrzeżenia” – filtr, który zawiera warunek na kolumnę
„Ostrzeżenia” = „Tak””

•  „Z Poznania” - filtr, który zawiera warunek na kolumnę „Miejscowość” = „Poznań” z zaznaczeniem opcji „Nie uwzględniaj wielkości liter”

•  „Z miejscowości” - filtr, który zawiera warunek na kolumnę „Miejscowość” bez podania wartości, ale z zaznaczeniem opcji „Zapytaj” i „Nie uwzględniaj wielkości liter”

Każdy taki z filtrów można załączyć, wybierając go z menu filtrów definiowanych, lub za pomocą przypisanego do niego skrótu klawiszowego. Klasyczne pytanie, które można zadać to „a co w sytuacji, gdy to nie wystarcza?”. Gdy potrzebny jest mechanizm szybkiego załączania filtrów, a także szybkiego załączania ich grupowo wg pewnych schematów. Oczywiście można definiować kolejne filtry złożone np. „Posiadający uwagi z Poznania” itp., istnieją jednak dwa inne, prostsze rozwiązania: „Widok drzewa filtrów” i „Filtry niezależne”.

Dzisiaj skupię się na pierwszym z tych rozwiązań. Mechanizm filtrów definiowanych możemy rozszerzyć, dołączając do widoku tabelarycznego dodatkowy widok „Drzewo filtrów”. Widok ten dołączamy do naszej ramki opcji za pomocą wcześniej opisywanych mechanizmów InteliUI, łącząc go gniazdami z widokiem tabelarycznym, którego mechanizmy filtrowania ma rozbudować. Widok ten zaraz po dołączeniu jest pusty, a jego zawartość, którą musimy utworzyć to nic innego jak drzewo oddające hierarchiczny układ zdefiniowanych wcześniej filtrów. Do dyspozycji mamy trzy akcje:

„Dodaj”, „Dodaj podrzędny” i „Usuń”. Za pomocą tych akcji możemy zbudować dowolne kombinacje zdefiniowanych wcześniej filtrów, np.

Klikając na dowolną gałąź w widoku drzewa filtrów, w połączonym widoku tabelarycznym zakładane są wszystkie filtry z wybranej gałęzi drzewa, w powyższym przykładzie zostanie jednocześnie założony filtr „Z Zielonej Góry”, jak i „Posiadający ostrzeżenia”.

Podsumowując, widok ten pozwala na szybkie zdefiniowanie wygodnego mechanizmu załączania filtrów definiowanych z naciskiem na załączanie grupowe w określonych z góry kombinacjach.

Krzysztof Olszewski