Filtrowanie list na formularzu (pickerów) w zależności od wartości atrybutu

Facebooktwitterpinterestlinkedinmail
Dotyczy wersji 8.0.x autor: Marek Suchowiejko

 

Opis funkcjonalności:

W przypadku formularzy zawierających wiele pól wyboru, przydatną funkcjonalnością jest filtrowanie dostępnych w nich elementów. WEBCON BPS – Designer Studio umożliwia skonfigurowanie filtrowania elementów pól wyboru w zależności od wartości dowolnego atrybutu znajdującego się na formularzu.

 

Przykład realizowanej funkcjonalności:

Przykładem takiego filtrowania może być uzupełnianie danych pojazdu (przykładowo podczas rozliczania delegacji). Po wybraniu w polu : „Marka samochodu” konkretnej marki, w polu „Model” dostępne byłyby już tylko modele zawężone do  wskazanej marki.

Konfiguracja:

W pierwszej kolejności należy zadbać, aby pola wyboru występujące na formularzu miały prawidłowo określony zbiór możliwych wartości. Przykładowo, listy SharePoint „MarkaSamochodu” i „ModelSamochodu” mogą wyglądać jak niżej:

 

marka-samochodu

model-samochodu

Aby filtrowanie samochodów po ich marce było w ogóle możliwe, trzeba do listy „ModelSamochodu” dodać kolumnę wiążącą każdy z modeli z określoną marką. W tym celu należy utworzyć kolumnę typu Odnośnik, dzięki której możliwe będzie odnoszenie się do informacji znajdujących się już w witrynie (w szczególności do elementów innych list).

 

W konfiguracji kolumny typu Odnośnik konieczne jest wybranie nazwy Listy SharePoint, do której będziemy się odnosić, oraz kolumny, w której mają być wyszukiwane wartości. Dobrym rozwiązaniem jest oznaczenie tej kolumny jako obowiązkowej, dzięki czemu zabezpieczymy się przed sytuacją, w której nowo dodany model samochodu nie miałby przypisanej marki.

 lista-make

Po zatwierdzeniu wprowadzonych zmian, podczas dodawania nowych modeli do listy „ModelSmochodu” będziemy musieli określić również właściwą markę:

model-tytul

 

Kolejnym etapem konfiguracji jest utworzenie pól wyboru „Marka samochodu” i „Model”, z których wartość wybrana w pierwszym z nich będzie determinowała elementy dostępne w drugim. W tym celu, znajdując się w zakładce „Atrybuty”, należy wybrać przycisk: atrybut-nowy

Następnie należy nadać mu odpowiednią nazwę i jako typ ustawić „Pole wyboru”. Aby na formularzu możliwe było wyświetlanie pożądanych wartości, należy powiązać atrybuty z utworzonymi wcześniej listami SharePoint. W tym celu należy w zakładce „Źródła danych” utworzyć nowe źródła odwołujące się do odpowiednich list.

Po kliknięciu na przycisk: „Nowy” i wybraniu typu źródła  „Lista SharePoint” należy określić serwer, witrynę i nazwę listy, dla której tworzone jest źródło. W naszym scenariuszu są to listy „MarkaSamochodu” i „ModelSamochodu”

 listy-konfig

Po zapisaniu zmian, istniejące źródła danych można w konfiguracji atrybutu przypisywać do odpowiednich pól:

zrodlo-konfig

Kolejnym etapem konfiguracji zawężania list jest zdefiniowanie zapytania CAML, odpowiadającego za filtrowanie wyników. Należy je wprowadzić w oknie „Zapytanie SQL lub CAML” w sekcji „Źródło danych” w ogólnych ustawieniach atrybutu, który ma być filtrowany (w naszym przypadku jest to „Model samochodu”).

Składnia zapytania CAML filtrującego modele samochodów po ich marce została przedstawiona poniżej:

<Where>

<Eq>

<FieldRef Name=”Nazwa kolumny, po której chcemy filtrować” />

<Value Type=”Text”>Wartość, która ma być wyszukiwana</Value>

</Eq>

</Where>

Dla naszego scenariusza, poprawne zapytanie powinno wyglądać następująco:

caml

Przy użyciu edytora i drzewa atrybutów można w prosty sposób sparametryzować zapytanie tak, aby uwględniało dowolny z atrybutów istniejących na formularzu.

Bardzo ważne jest również zaznaczenie opcji „Generuje postback po zmianie wartości” w ustawieniach atrybutu nadrzędnego (w naszym przypadku jest to „Marka samochodu”). Dzięki temu po wybraniu konkretnej marki nastąpi przeładowanie formularza,  a w polu „Model” dostępne będą właściwe pozycje.

postback

 

Weryfikacja działania:

Poniżej przedstawione zostało działanie pola „Model” przed skonfigurowaniem filtrowania. Jak widać, mimo określenia marki, dostępne są w nim wszystkie modele z listy „ModelSamochodu”:

lista-weryfikacja

Dwa kolejne rysunki prezentują poprawne działanie filtrowania listy modeli samochodów po wybranej marce. W polu „Model” dostępne są tylko te modele, które na liście „ModelSamochodu” mają przypisaną markę, która została wybrana w polu „Marka Samochodu”:

dane-samochodu

 

Podsumowanie:

Stosowanie zapytań CAML do filtrowania elementów list SharePoint jest bardzo przydatne kiedy istnieje potrzeba uszczegółowienia pewnego atrybutu przy pomocy innego. Taka funkcjonalność nie tylko jest ułatwieniem dla użytkownika, ale jednocześnie gwarantuje wprowadzenie przez niego prawidłowej wartości.

Zapytania CAML umożliwiają definiowanie rozmaitych kryteriów filtrowania elementów list SharePoint, jak na przykład:

  • Filtrowanie elementów przy pomocy kilku warunków logicznych połączonych
    operatorami and lub or
  • Filtrowanie elementów utworzonych w określonym przedziale czasu
  • Filtrowanie elementów utworzonych(zmodyfikowanych) przez określoną osobę
  • Stosowanie różnych warunków logicznych, m.in. equal, greater than, lower than, is null, contains etc.
  • Sortowanie zwracanych wyników po wartościach kolumn list SharePoint

W zapytaniach CAML możliwe jest dynamiczne odwoływanie się do atrybutów wprowadzanych na formularzu, dzięki czemu może być on bardziej intuicyjny i przystępny dla użytkownika.

 

 

One thought to “Filtrowanie list na formularzu (pickerów) w zależności od wartości atrybutu”

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *