select_one_from_file a select_multiple_from_file fungují jako select_one a select_multiple, ale místo definování voleb v listu choices jsou volby načítány z externího CSV nebo XML souboru připojeného k formuláři. To je užitečné, když je váš seznam voleb velmi dlouhý, často se mění nebo potřebuje být aktualizován bez přestavění celého formuláře.

Základní specifikace XLSForm

typenamelabel
select_one_from_file health_facilities.csvfacilityVyberte zdravotnické zařízení
select_multiple_from_file crops.csvcropsKteré plodiny domácnost pěstuje?

Název souboru za názvem typu musí odpovídat názvu souboru, který připojíte při nahrávání formuláře.

Formát CSV souboru

Váš CSV soubor musí mít alespoň dva sloupce: name (uložená hodnota) a label (zobrazený text). Můžete přidat libovolný počet dalších sloupců pro filtrování.

health_facilities.csv:

  name,label,district,type
HF001,Nairobi Central Clinic,Nairobi,clinic
HF002,Westlands Health Centre,Nairobi,health_centre
HF003,Kisumu District Hospital,Kisumu,hospital
  

Filtrování voleb

Použijte sloupec choice_filter pro zobrazení pouze voleb odpovídajících aktuálnímu kontextu. Odkazujte sloupce CSV jejich názvem přímo (bez ${}):

typenamelabelchoice_filter
select_one districts.csvdistrictVyberte okres
select_one_from_file health_facilities.csvfacilityVyberte zařízenídistrict = ${district}

V tomto příkladu se zobrazují pouze zařízení ve vybraném okrese. district v choice_filter odkazuje na sloupec district v CSV souboru; ${district} odkazuje na pole formuláře pojmenované district.

Použití

Otázky select-from-file se běžně používají pro:

  1. Dlouhé seznamy voleb — zdravotnická zařízení, školy, vesnice, seznamy druhů (stovky nebo tisíce položek)
  2. Často aktualizované seznamy — když se hlavní seznam mění mezi cykly průzkumu, aktualizujte pouze CSV bez přestavění formuláře
  3. Sdílená referenční data — jeden CSV soubor používaný napříč více formuláři
  4. Filtrované kaskádové výběry — načtěte všechny regiony/okresy/vesnice do jednoho souboru, pak filtrujte podle výběru nadřazeného

Připojení souboru

Při nahrávání formuláře do rtSurvey připojte CSV soubor jako mediální přílohu. Název souboru v definici formuláře musí přesně odpovídat názvu souboru přílohy.

Použití choice-label() s from-file

Pro zobrazení popisku vybrané volby v poznámce nebo výpočtovém poli:

typenamelabelcalculation
select_one_from_file health_facilities.csvfacilityVyberte zařízení
calculatefacility_labelchoice-label(${facility}, ${facility})
notesummaryVybrané zařízení: ${facility_label}

Osvědčené postupy

  1. Udržujte CSV soubory pod 5 000 řádky pro dobrý výkon na mobilních zařízeních.
  2. Vždy zahrňte sloupce name a label — další sloupce jsou volitelné.
  3. Pro kaskádové výběry použijte jeden CSV s nadřazeným sloupcem a filtrujte pomocí choice_filter.
  4. Verzujte názvy CSV souborů (např. facilities_v3.csv) při provádění zásadních změn struktury sloupce.
  5. Pečlivě testujte výrazy filtrování — překlep v choice_filter bude tiše zobrazovat žádné volby.

Omezení

  • Velmi velké CSV soubory (10 000+ řádků) mohou zpomalit načítání formuláře, zejména na zařízeních nižší třídy.
  • CSV soubory musí být nahrány spolu s formulářem — nemohou být načteny z URL za běhu (pro dynamická vyhledávání použijte search() nebo pulldata()).
  • select_multiple_from_file je méně běžně podporováno napříč klienty — před použitím ověřte kompatibilitu.
select_one_from_fileVzhled search()
Zdroj volebPřipojený CSV/XML souborDatabázový dotaz na straně serveru
Funguje offlineAno (soubor je přibalen)Vyžaduje připojení
Počet volebOmezen pamětí zařízeníNeomezený (stránkovaný)
Data v reálném časeNeAno

Pro velké, často se měnící nebo serverové datové sady viz Dynamické vyhledávání.

Byla tato stránka užitečná?