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.