Kaskadowe i zewnętrzne wybory

Kaskadowe wybory są używane do ograniczania listy dostępnych odpowiedzi na podstawie odpowiedzi na poprzednie pytanie. Ich zawartość może być zapisana w samym formularzu XLSForm lub w pliku zewnętrznym.

Kaskadowe wybory

Kaskadowe wybory są używane do ograniczania listy dostępnych odpowiedzi na podstawie odpowiedzi na poprzednie pytanie. Dzięki nim ankiety są łatwiejsze w użyciu — listy możliwości wyboru są małe, ponieważ użytkownicy widzą tylko istotne opcje.

Dla każdej listy możliwości wyboru w hierarchii wykonaj następujące czynności:

  • Wprowadź wartości na liście możliwości wyboru na karcie choices (możliwości wyboru).
  • Dodaj jedną lub większą liczbę kolumn dla kryteriów kaskadowego wyboru (na przykład kraj, stan, miasto lub przedmieścia).
  • Wprowadź odpowiednią wartość dla każdej możliwości wyboru w dodatkowych kolumnach.

Nie zaleca się używać zduplikowanych nazw wyborów na liście wyboru. Więcej informacji zawiera sekcja Pytania z wieloma możliwościami odpowiedzi.

Po wypełnieniu list możliwości wyboru należy utworzyć kolumnę choice_filter (filtr możliwości wyboru) na karcie survey (ankieta). W tej kolumnie przechowywane jest wyrażenie ograniczające listy możliwości wyboru. Kolumna choice_filter może akceptować zawartość innego pola, na przykład state=${state_1}, jak również wyrażenie, na przykład selected(${states_visited},state_code).

Aby sprawdzić, jak zachowują się kaskadowe wybory w działaniu, zapoznaj się z przykładem Wybór filtrów i kaskadowe wybory w aplikacji Survey123 Connect.

Kaskadowych wyborów można teraz używać z pytaniami typu select_one, select_multiple i rank. Kaskadowe wybory nie są obsługiwane w przypadku pytań typu rank w aplikacji internetowej Survey123.

Wskazówka:

Przy przeglądaniu wyników ankiety z pytaniem, w którym użyto wyboru kaskadowego, wyświetlana jest tylko nazwa przesłanego elementu wyboru. Różni się to od zachowania pytań typu select_one (wybierz jedną) lub select_multiple (wybierz wiele) bez filtra wyboru, gdzie zamiast tego jest wyświetlana etykieta elementu wyboru.

Użyj funkcji jr:choice-name() w innym pytaniu, aby uzyskać i zapisać etykietę powiązaną z możliwością wyboru w pytaniu. Koncepcyjnie może to być reprezentowane przez wyrażenie jr:choice-name(string value, 'question name').

W wyrażeniu jr:choice-name(${city_choice}, '${city_choice}') pierwszy parametr reprezentuje wybraną wartość, a drugi jest nazwą pytania. Nazwa pytania musi być ujęta w cudzysłów.

W pytaniach select_multiple (wybierze wiele) należy użyć funkcji selected-at() do wyodrębniania etykiet dla poszczególnych odpowiedzi. Na przykład:

jr:choice-name(selected-at(${city_choice}, 1), '${city_choice}')

Funkcja jr:choice-name() może być używana w dowolnych pytaniach typu string (ciąg znakowy). W przypadku użycia ukrytego pytania należy też zdefiniować jego właściwości bind::esri:fieldType i bind::esri:fieldAlias.

Uwaga:

Począwszy od wersji 3.12 aplikacji Survey123, listami możliwości wyboru zarządza się za pomocą wewnętrznej bazy danych. Oznacza to, że nie można używać zarezerwowanych słów kluczowych SQLite w przypadku nazw kolumn w kaskadowych i zewnętrznych wyborach.

Wybory zewnętrzne

Lista możliwości wyboru powiązana z kaskadowymi wyborami może być bardzo duża, co może mieć wpływ na wydajność formularzy. W aplikacji Survey123 istnieje opcja umożliwiająca zapisanie tych list w pliku zewnętrznym i wczytywanie ich do ankiety na żądanie.

Aby zaimplementować tę opcję, w arkuszu kalkulacyjnym utwórz kartę ankiety o nazwie external_choices (zewnętrzne możliwości wyboru). Ta nowa karta musi zawierać te same nagłówki kolumn co karta choices (możliwości wyboru). Podczas publikowania ankiety wartości z karty external_choices (zewnętrzne możliwości wyboru) zostają zapisane w pliku o nazwie itemsets.csv w folderze multimediów projektu ankiety, a nie jako część elementu ankiety. Aby odnieść się do list możliwości wyboru na karcie external_choices (zewnętrzne możliwości wyboru), użyj wartości select_one_external jako prefiksu nazwy listy.

Wybory zewnętrzne różnią się od listy zewnętrznych możliwości wyboru, która nie wymaga arkusza external_choices (zewnętrzne możliwości wyboru).

Notatka:

Wybory zewnętrzne są możliwe tylko dla pytań typu select_one (wybierz jedną). Nie są obsługiwane w pytaniach typu select_multiple (wybierz wiele).

Zewnętrzne wybory zostały zaprojektowane w taki sposób, aby działały tylko z listami możliwości wyboru powiązanymi z kaskadowym wyborem. Tylko możliwości wyboru z zastosowanym filtrem możliwości wyboru są dodawane do pliku itemsets.csv.