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.
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ę.
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 < @@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@@.
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 > '@@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: