On this page
code
Opakování otázek
Opakování jsou výkonnou funkcí v rtSurvey, která vám umožňuje shromažďovat stejnou sadu informací vícekrát v rámci jednoho průzkumu. To je zvláště užitečné pro scénáře jako průzkumy domácností, kde může být nutné shromáždit data o více členech domácnosti.
Základní struktura opakování
Pro vytvoření opakování v rtSurvey použijte konstrukt begin repeat a end repeat:
| type | name | label |
|--------------|--------------|----------------------|
| begin repeat | child_repeat | Dítě |
| text | child_name | Jméno dítěte |
| integer | child_age | Věk dítěte |
| end repeat | | |
Nastavení počtu opakování
Ve výchozím nastavení enumerátor rozhoduje, kolikrát opakovat. Počet opakování lze pevně nastavit pomocí repeat_count:
| type | name | label | repeat_count |
|--------------|----------|-------------------|-----------------|
| integer | num_kids | Počet dětí? | |
| begin repeat | children | Dítě | ${num_kids} |
| text | child_name| Jméno dítěte | |
| end repeat | | | |
Označení opakování
Použijte jr:count nebo přidejte pole index() pro označení každého opakování:
| type | name | label |
|--------------|------------|----------------|
| begin repeat | members | Člen |
| note | member_num | Člen č. ${index()} |
| text | member_name| Jméno |
| end repeat | | |
Shrnování dat opakování
Použijte agregační funkce pro shrnutí dat z opakování mimo skupinu opakování:
| type | name | label | calculation |
|--------------|--------------|----------------|--------------------------|
| begin repeat | loans | Půjčka | |
| decimal | loan_amount | Výše půjčky | |
| end repeat | | | |
| calculate | total_loans | | sum(${loan_amount}) |
| note | summary | Celkem půjček: ${total_loans} | |
Osvědčené postupy
- Vždy používejte
repeat_count, pokud je počet opakování předem znám. - Skupiny opakování udržujte zaměřené — opakování s více než 20 otázkami na instanci je obtížné navigovat.
- Jasně pojmenujte skupiny opakování (např.
household_members, nerepeat1). - Testujte s maximálním očekávaným počtem instancí pro ověření výkonu.
- Použijte vzhled
field-listna skupinu opakování pro zobrazení všech polí na jedné obrazovce na instanci (mobilní).
Omezení
indexed-repeat()vyžaduje platný index (1 až počet instancí) — indexy mimo rozsah vrátí prázdnou hodnotu.- Vnořená opakování nad 2 úrovně se nedoporučují a mohou způsobit problémy se zobrazením na některých klientech.
- Agregační funkce (
sum,countatd.) pracují na celé skupině opakování — nelze agregovat podmnožinu instancí bez variant*-if.
Byla tato stránka užitečná?