Dodawanie niestandardowego filtra do listy

Dodawanie filtra

W celu dodania niestandardowego filtra do listy towarów lub kontrahentów należy przygotować odpowiedni plik xml i umieścić go na serwerze synchronizacji.

Wskazówka
Definicje filtrów znajdują się domyślnie w katalogu: C:\Program Files (x86)\Comarch Mobile\Serwer synchronizacji\CustomFilters.

 

Usuwanie filtra

Aby usunąć dodany filtr należy zmienić jego ID na ujemne, następnie zmienić datę modyfikacji (np. poprzez ponowne zapisanie pliku z filtrem) i wykonać synchronizację.

Nazwa usuwanej definicji filtra

 

Elementy składowe filtra

Każda definicja filtra składa się z klauzuli wstępnej języka xml: <?xml version=”1.0″ encoding=”UTF-8″?>, po której w sekcji customFilter z parametrem objectType o odpowiedniej wartości: contractorsList (filtr pojawi się na liście kontrahentów) lub itemsList (filtr pojawi się na liście towarów) następują wymienione poniżej sekcje:

  • joinClause (np. JOIN Visits ON Contractors.Id = Visits.ContractorId)
  • whereClause (np. Visits.PlannedStartDate &lt; @@CUSTOM_FILTER_VALUE@@)
  • groupByClause (np. Visits.ContractorId)
  • havingClause
  • inputType (możliwe wartości: text, date)

Sekcje te (oprócz inputType) są częścią zapytania wykonywanego przez aplikację mobilną w celu wyświetlenia elementów listy towarów bądź listy kontrahentów (np. SELECT * FROM Contractors [joinClause] [whereClause] [groupByClause] [havingClause]).

Wartość parametru inputType podawana przez użytkownika aplikacji po wyborze filtra pobierana jest do zapytania SQL za pomocą parametru @@CUSTOM_FILTER_VALUE@@.

Uwaga
Podczas synchronizacji definicji filtrów na urządzenie brana jest pod uwagę data modyfikacji pliku. W celu wymuszenia synchronizacji filtra należy wykonać dowolną modyfikację i zapisać ponownie plik z definicją.

 

Przykład

Poniższa definicja filtra pozwala na wyświetlanie na liście kontrahentów tylko tych, na których zostały wystawione dokumenty z datą realizacji późniejszą niż wskazana w parametrze filtra.

<?xml version="1.0" encoding="UTF-8"?>

<customFilter objectType="contractorsList">
<joinClause>LEFT JOIN Documents ON Contractors.Id = Documents.MainContractorId</joinClause>
<whereClause>Documents.ExecutionDate &gt; '@@CUSTOM_FILTER_VALUE@@'</whereClause>
<inputType>date</inputType>
</customFilter>    

Tak zdefiniowany filtr zapisany w katalogu CustomFilters pod nazwą 2#Data realizacji po.xml, po synchronizacji w aplikacji mobilnej prezentuje się w następujący sposób:

Widok utworzonego filtra w aplikacji

Czy ten artykuł był pomocny?