SetReferenceFilter
Zastosowanie
Funkcja pozwala ograniczyć listę wyświetlanych elementów w polu typu odnośnik.
Składnia
SetReferenceFilter("fieldTitle", "fieldName", "fieldValue", ["fieldName", "fieldValue"...])
Argumenty
- fieldTitle – (String) Nazwa pola na formularzu. Pole musi być typu odnośnik.
- fieldName – (String) nazwa pola na formularzu w procesie, do którego odnosi się pole
- fieldValue – wartość, którą porównujemy z wartością z pola fieldName
Zwracana wartość
Ta funkcja zwraca wartość logiczną. Ta funkcja zwraca wartość true, jeśli dowolny sprawa pozostanie po zastosowaniu filtru, w przeciwnym wypadku wartość false Jeżeli w zbiorze odfiltrowanych wartości pozostanie jeden element, to zostanie on użyty do wypełnienia wartości w polu. Jeżeli w zbiorze odfiltrowanych wartości znajdzie się więcej niż jeden element, to użytkownik będzie musiał wskazać, który element wybiera.
Przykłady
Przykład 1:
Zakładamy, że mamy proces Zamówienia oraz proces Faktury. Chcemy, aby użytkownik, będąc na formularzu faktury wskazał zamówienie, które dotyczy tej faktury. Może istnieć wiele otwartych zamówień do tego kontrahenta od którego otrzymaliśmy fakturę. Pole „Dotyczy zamówienia” jest polem typu odnośnik, umieszczonym na formularzy Faktury. Pole to wskazuje na proces „Zamówienia”, Pole „NIP Dostawcy” jest polem na formularzu Zamówienia. Pole „NIP Kontrahenta” jest polem na formularzu faktury. „caseStatusName” jest polem systemowym przechowującym nazwę aktualnego statusu (etapu) sprawy. Pole to odnosi się oczywiście do statusu Zamówienia. Tekst „Zaakceptowane” to nazwa etapu, wg którego chcemy przefiltrować wszystkie dostępne zamówienia.
SetReferenceFilter("Dotyczy zamówienia", "NIP Dostawcy", [NIP kontrahenta],"caseStatusName","Zaakceptowane");
Funkcja spowoduje wyszukanie w procesie „Zamówienia” takich spraw, dla których pole „NIP Dostawcy” będzie równy wartości, którą przechowuje pole [NIP Kontrahenta] (z faktury) , oraz które będą na etapie o nazwie „Zaakceptowane”
Przykład 2
Spowoduje to odfiltrowanie pozycji w polu Customer, pozostawiając tylko te, które:
- mają wartość w polu City równą bieżącej wartości z pola CurrentCity
- mają w polu „Type” wartość „Supplier”
SetReferenceFilter("Customer", "City", [CurrentCity], "Type", "Supplier");
Przykład 3
Ograniczanie wyników na podstawie pola typu Tak/Nie
- mają wartość w polu City równą bieżącej wartości z pola CurrentCity
- mają w polu „Has branches?” wartość ustawione Tak, która jest w bazie reprezentowana jako 1, więc pytamy podając wartość 1.
SetReferenceFilter("Customer", "City", [CurrentCity], "Has branches?", 1);
Przykład 4 (dostępne od wersji 2020.0002)
Spowoduje, że dostępne będą tylko sprawy dla których pole „Zaplanowany udział w szkoleniu BHP” jest puste (nie ma wartości ani true ani false)
SetReferenceFilter("Nowy uczestnik", "Zaplanowany udział w szkoleniu BHP", null)