Zaawansowana konfiguracja filtrów
Funkcjonalność filtrów użytkownika umożliwia tworzenie dodatkowych zaawansowanych filtrów. Okno Filtry użytkownika pozwala na budowanie filtrów na bazie predefiniowanych pól, jak również za pomocą wyrażenia SQL.
Okno Filtry użytkownika można otworzyć wybierając menu Konfiguracja → Narzędzia → Filtry bądź za pomocą przycisku [Otwórz] oznaczonego ikoną w sekcji filtra na danej liście.
Okno Filtry użytkownika składa się z drzewa obiektów, dla których można zdefiniować filtry. Użytkownik ma możliwość podglądu filtrów zdefiniowanych dla danego obszaru poprzez wybranie przycisku [>] obok nazwy danego obiektu. Po prawej stronie okna znajduje się formularz definicji danego filtra. Zakładka Konstruktor pozwala na budowanie nowego filtra, natomiast zakładka Grupy operatorów pozwala na zarządzanie jego dostępnością dla wybranych operatorów.
Wstążka okna Filtry użytkownika, oprócz standardowych przycisków zapisu zmian i zamknięcia okna, zawiera przyciski dodawania i usuwania filtra z listy (drzewa obszarów systemowych).
Filtr podpięty do danego obiektu w systemie można również kopiować. W tym celu należy wybrać z drzewa filtrów pozycję, a następnie wybrać przycisk [Kopiuj]. Kolejną czynnością jest wskazanie innego obiektu na drzewie i wybór przycisku [Wklej]. Należy pamiętać, że podczas kopiowania filtra wartości pól, po których możliwe jest filtrowanie, mogą się różnić, dlatego użytkownik powinien je zweryfikować, bądź też ustalić na nowo i zapisać zmiany.
Przyciski [Cofnij]/[Ponów] pozwalają użytkownikowi na wycofanie lub przywrócenie ostatnio dokonanej zmiany w konstruktorze filtrów, natomiast przycisk [Wyczyść] umożliwia wycofanie wszystkich wprowadzonych zmian i rozpoczęcie budowania filtra od nowa. Opcje te dostępne są również w obszarze Edycja na zakładce Konstruktor ([<-] / [->] / [<>]).
Definiowanie nowego filtra
Żeby zdefiniować nowy filtr w oknie Filtry użytkownika, należy wybrać listę lub obiekt, do której/którego ma zostać przypisany nowy filtr, a następnie wybrać przycisk [Dodaj] znajdujący się na wstążce lub nad listą obiektów.
Na nagłówku formularza definicji danego filtra należy podać nazwę filtra oraz opcjonalnie wprowadzić dodatkowy opis.
Sekcja Zapamiętane wyrażenia pozwala na tymczasowe przechowywanie wyrażeń zbudowanych wcześniej w obrębie jednego filtra. W tym celu, należy przeciągnąć dane wyrażenie klikając jedno z miejsc zaznaczonych na poniższym zrzucie ekranu, a następnie umieścić je w sekcji Zapamiętane wyrażenia.
Zapamiętane wyrażenie może być wykorzystane do automatycznego uzupełnienia filtra definiowanego w odniesieniu do tego samego miejsca w systemie. Jest również możliwość wykorzystania zapamiętanego wyrażenie w ramach filtra dla innego miejsca, należy jednak pamiętać, że pole z nazwą kolumny pozostanie puste, jeśli dane miejsce nie umożliwia podania nazwy kolumny określonej w zapamiętanym wyrażeniu.
W celu wykorzystania zapamiętanego wyrażenia, należy przeciągnąć je do sekcji Filtr.
Sekcja Parametry umożliwia zdefiniowanie dodatkowych parametrów wykorzystywanych przez filtr, wraz z ich domyślnymi wartościami. Szczegółowy opis działania parametrów został opisany w rozdziale Budowanie nowego filtra z wykorzystaniem parametrów.
Użytkownik ma możliwość budowania filtra w następujący sposób:
- Poprzez wybór predefiniowanych pól
- Poprzez wybór wyrażenia SQL i wpisania warunków końcowych
- Metodą łączenia wyżej wymienionych typów
Budowanie nowego filtra z predefiniowanych pól
Aby utworzyć filtr z predefiniowanych pól, należy przenieść przycisk [Wartość pola] z sekcji Warunki do sekcji Filtr. Pole to może zostać dodane również poprzez menu kontekstowe, uruchamiane prawym przyciskiem myszy, za pomocą opcji [Wstaw warunek dla wartości pola].
Kroki budowy filtra z wykorzystaniem przycisku [Wartość pola]:
- Po przeniesieniu przycisku [Wartość pola] system pozwala na wybór jednej z dostępnych w bazie danych kolumn wybranej listy obiektów, według której filtr będzie funkcjonował.
- Kolejnym polem do wyboru jest operator logiczny, który pozwala na określenie, w jaki sposób wartość wybranej kolumny ma być porównywana z wartością podaną przez operatora.
- Ostatnim polem jest pole wprowadzania określonej wartości, która będzie porównywana z wartościami wybranej kolumny, bądź też podanie parametru, który będzie mógł być zmieniany każdorazowo przy uruchamianiu filtra.
Filtr z wybraną kolumną, operatorem oraz wpisaną wartością może zostać zapisany i użyty na wybranej liście obiektów.
Budowanie nowego filtra z wyrażeniem SQL
Aby utworzyć filtr z wyrażeniem SQL, należy przenieść przycisk [Wyrażenie SQL] z sekcji Warunki do sekcji Filtr.
Pole SQL bazuje na następującym zapytaniu:
SELECT [kolumny] FROM [tabela] WHERE [zdefiniowany filtr]
W związku z tym, standardowo w polu SQL należy zdefiniować jedynie część zapytania wpisywaną po słowie WHERE, ponieważ pierwsza część odnosi się do tabeli wyświetlającej listę, dla której filtr jest budowany (nie należy pisać słów kluczowych SELECT i WHERE).
Użytkownik tworzy filtr mający za zadanie wyświetlić wszystkie faktury sprzedaży, które zostały wygenerowane z dokumentu zamówienia sprzedaży (ZS). W tym celu, w polu Zapytanie SQL wprowadza następujące zapytanie zdefiniowane dla listy faktur sprzedaży: {NumberString} IN Istnieje jednak również możliwość użycia w zapytaniu danych z innej tabeli – w takim przypadku, należy odwołać się do nazw dotyczących tejże tabeli, na przykład: EXISTS (SELECT * FROM Dictionaries.Parameters WHERE InternalName = 'DefaultLanguage’ AND Value = '1′)
(SELECT FS.NumberString FROM Sales.Headers FS
INNER JOIN Sales.DocumentHeaderRelations HR ON FS.ID = HR.ChildHeaderID
INNER JOIN Sales.Headers ZS ON ZS.ID = HR.ParentHeaderID
INNER JOIN DT.DocumentTypes DT ON DT.ID = ZS.DocumentTypesID AND DT.NamespaceEntry = 'Comarch.B2.Sales.Documents.SalesOrderManager’)
Pole SQL może również zostać dodane poprzez menu kontekstowe, uruchamiane prawym przyciskiem myszy, za pomocą opcji [Wstaw wyrażenie SQL].
Budowanie nowego filtra przy użyciu warunkowego łączenia wyrażeń
Konstruktor filtra umożliwia łączenie warunków filtrowania za pomocą operatorów logicznych: LUB, ORAZ, NIE, znajdujących się w sekcji Wyrażenia.
Wyrażenie połączone operatorem LUB wyświetla wszystkie obiekty, które spełniają pierwszy lub drugi warunek wprowadzony w tym wyrażeniu. Dany obiekt zostanie wyświetlony po spełnieniu chociaż jednego warunku.
Wyrażenie połączone operatorem ORAZ wyświetla wszystkie obiekty, które spełniają pierwszy oraz drugi warunek wprowadzony w tym wyrażeniu. Dany obiekt nie będzie wyświetlony jeśli chociaż jeden warunek nie zostanie spełniony.
Wyrażenie objęte operatorem NIE wyświetla wszystkie obiekty, które nie spełniają warunku zawartego w wyrażeniu.
System pozwala na dowolne łączenie operatorów logicznych i ich zagnieżdżanie. Można to zrobić poprzez dodanie w pierwszej kolejności najbardziej zewnętrznych operatorów i umieszczenie między nimi operatorów wewnętrznych lub poprzez zagnieżdżenie gotowych wyrażeń w operatorze przy użyciu menu kontekstowego.
Użytkownik potrzebuje filtra, który wyszuka na liście faktur sprzedaży dokumenty utworzone 14 lub 15 stycznia 2018 roku dla kontrahenta Studio K. W celu dodania takiego filtra, użytkownik wykonuje następujące czynności: Po wykonaniu tych czynności użytkownik przypina filtr do wybranych grup operatorów na zakładce Grupy operatorów, nadaje filtrowi nazwę i zapisuje gotowy filtr.
Budowanie nowego filtra z wykorzystaniem parametrów
W dolnej części okna konstruktora filtrów dostępne jest pole definiowania parametrów. W celu dodania nowego parametru, należy posłużyć się przyciskiem [Dodaj] znajdującym się w grupie przycisków Parametry. Po dodaniu nowego parametru istnieje możliwość wprowadzenia jego nazwy, typu oraz wartości domyślnej, która zostanie wykorzystana w przypadku braku wprowadzenia wartości przez operatora.
Po zdefiniowaniu parametru można go wykorzystać poprzez wybór opcji [Wstaw parametr], dostępnej w menu kontekstowym po wybraniu prawego przycisku myszy na polu zapytania SQL lub predefiniowanym polu. W polu zapytania SQL można również wykorzystać wyrażenie {param: nazwa_parametru}.
Po zapisaniu filtra istnieje możliwość zmiany wartości parametru. Po zaznaczeniu filtra na liście obiektów, dla których został utworzony, po prawej stronie pojawi się przycisk (ikona) [P].
Wybranie przycisku [P] spowoduje otworzenie okna pozwalającego na określenie wartości parametrów, które będą wykorzystywane podczas kolejnego filtrowania.
Schowek
Konstruktor filtrów zawiera schowek, który służy do tymczasowego przechowywania zdefiniowanych wyrażeń SQL lub predefiniowanych pól. Po zdefiniowaniu wyrażenia SQL lub predefiniowanego pola można je przenieść do obszaru Zapamiętane wyrażenia (schowek), przeciągając wyrażenie lewym przyciskiem myszy. Jeśli użytkownik chce ponownie wykorzystać wyrażenie przechowywane w schowku, przenosi je w analogiczny sposób ze schowka na pole definiowania filtra.
Dołączanie grupy operatorów
Filtr będzie dostępny do wyboru pod listą obiektów jeśli zalogowany użytkownik należy do grupy operatorów, która została dołączona do filtra na zakładce Grupy operatorów.
W celu dołączenia grupy operatorów do filtra, należy przejść na zakładkę Grupy operatorów, wybrać przycisk [Dodaj], wskazać grupę operatorów z listy dostępnych i nacisnąć przycisk [Wybierz].
Dodatkowo użytkownik ma możliwość zadecydować czy dla grupy operatorów dany filtr ma być:
- Obowiązkowy – zaznaczenie parametru spowoduje, że dla użytkownika należącego do tej grupy operatorów lista obiektów zostanie automatycznie przefiltrowana. Użytkownik może wybrać inny dostępny filtr w celu przefiltrowania listy – filtr obowiązkowy oraz ten wybrany przez użytkownika łączą się operacją AND („i”)
- Domyślny – zaznaczenie parametru spowoduje, że dla użytkownika należącego do tej grupy operatorów lista obiektów zostanie automatycznie przefiltrowana, a informacja o wybranym filtrze będzie widoczna dla operatora. Użytkownik może wybrać inny dostępny filtr w celu przefiltrowania listy. Tylko jeden filtr może być filtrem domyślnym dla danej grupy operatorów
Zakładka Filtry na formularzu grupy operatorów
Na formularzu grupy operatorów dostępna jest zakładka Filtry, na której znajdują się wszystkie filtry zdefiniowane dla danej grupy operatorów.
Oprócz możliwości edycji filtra z poziomu tej zakładki, istnieje dodatkowo możliwość wyboru przycisku [Lista], który bezpośrednio przenosi operatora do listy filtrów. Z tego poziomu istnieje możliwość zdefiniowania nowego filtra i dołączenia go do grupy operatorów.