Print

SetReferenceFilter

Zastosowanie

Funkcja SetReferenceFilter() pozwala ograniczyć (przefiltrować) listę wyświetlanych elementów w polach typu odnośnik (do procesu) lub odnośnik do zewnętrznego źródła danych (funkcjonalność dostępna od wydania 240331).

Składnia

SetReferenceFilter(referenceFieldTitle, filteredFieldName, filteringValue [, filteringFieldName, filteringValue ...])
SetReferenceFilter(config, fieldName, fieldValue, [fieldName, fieldValue ...]);

Argumenty

  • referenceFieldTitle – (String) nazwa pola na formularzu będącego przedmiotem filtrowania. Pole musi być typu odnośnik do procesu lub odnośnik do zewnętrznego źródła danych.
  • filteredFieldName – (String) nazwa pola na formularzu w procesie lub kolumny w zewnętrznym źródle danych, po którym będzie wykonywane filtrowanie;
  • filteringValue – wartość użyta do filtrowania;
  • config – (Object) zmienna typu obiektowego zawierająca dwa atrybuty:
    • config.fieldTitle – (String) nazwa pola na formularzu będącego przedmiotem filtrowania. Pole musi być typu odnośnik do procesu lub odnośnik do zewnętrznego źródła danych;
    • config.setDefault – (Boolean) [opcjonalny] jeśli ustawiono wartość true, to gdy po zastosowaniu filtra na polu w wyniku będzie jedna sprawa lub jeden rekord ze źródła zewnętrznego, to wartość tej jednej sprawy lub tego jednego rekordu zostanie przypisana do pola. Domyślna wartość: true.

Zwracana wartość

Ta funkcja zwraca wartość logiczną. Funkcja zwraca wartość true, jeśli dowolna sprawa lub rekord w źródle danych pozostaną 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 (config.setDefault=true). 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. Użytkownik będzie też musiał wskazać wartość w sytuacji, gdy po zastosowaniu filtra znajdzie się tylko jeden element i wartość atrybutu config.setDefault równa się false.

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)

Przykład 5 (dostępne od wersji 240630)

W tym przypadku pole „Customer” zostanie przefiltrowane po parametrze „City” dla wartości wskazanych w polu „CurrentCity”. Jeśli zostanie zwrócony tylko jeden rekord (jeden klient we wskazanym mieście), to jego wartość NIE zostanie przypisana automatycznie do pola. Użytkownik będzie musiał tą wartość wskazać ręcznie.

config.fieldTitle="Customer";
config.setDefault=false;
SetReferenceFilter(config, "City", [CurrentCity]);

 

Czy artykuł był pomocny?
0 na 5 gwiazdek
5 Stars 0%
4 Stars 0%
3 Stars 0%
2 Stars 0%
1 Stars 0%
5
How can we improve this article?
How Can We Improve This Article?