Dodawanie niestandardowego filtra do listy

Dodawanie filtra

W celu dodania niestandardowego filtra do listy towarów, kontrahentów lub na liście czynności i zleceń serwisowych,  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), itemsList (filtr pojawi się na liście towarów), serviceOrdersDocumentsList(filtr pojawi się na liście zleceń serwisowych) lub serviceOrdersActionsList (filtr pojawi się na liście czynności)  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, boolean)

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?