Ця сторінка охоплює розширені шаблони роботи з групами повторів у rtSurvey. Для основ налаштування групи повторів дивіться Групування та повтори.


Динамічний лічильник повторів

За замовчуванням анкетер вирішує, скільки разів повторювати. Ви можете фіксувати кількість повторень за допомогою repeat_count:

typenamelabelrepeat_count
begin_repeathousehold_membersHousehold member${num_members}
textmember_nameMember name
integermember_ageAge
end_repeat

Індексований доступ: indexed-repeat()

Отримайте доступ до значення поля конкретного екземпляру повтору поза групою повтору за допомогою indexed-repeat(repeatedField, repeatGroup, index):

typenamelabelcalculation
calculatefirst_nameindexed-repeat(${member_name}, ${household_members}, 1)
calculatesecond_nameindexed-repeat(${member_name}, ${household_members}, 2)

Поточна позиція екземпляру: index()

Всередині групи повтору index() повертає позицію поточного екземпляру (починаючи з 1):

typenamelabel
begin_repeatplotsPlot
noteplot_labelPlot number ${index()}
textplot_idPlot ID
end_repeat

Підсумовування даних повтору

Використовуйте агрегатні функції повтору поза групою повтору:

ФункціяПрикладОпис
count(group)count(${household_members})Кількість екземплярів
sum(field)sum(${loan_amount})Сума числового поля
min(field)min(${member_age})Мінімальне значення
max(field)max(${member_age})Максимальне значення
join(sep, field)join(', ', ${member_name})Список, розділений комами
count-if(group, expr)count-if(${members}, ${member_age} < 18)Умовний підрахунок
sum-if(field, expr)sum-if(${loan_amount}, ${loan_amount} > 500)Умовна сума

Вкладені повтори

Група повтору може містити іншу групу повтору. Використовуйте це обережно:

typenamelabel
begin_repeathouseholdsHousehold
texthh_idHousehold ID
begin_repeathh_membersMember
textmember_nameMember name
end_repeat
end_repeat

Найкращі практики

  1. Завжди використовуйте repeat_count, якщо кількість повторень відома заздалегідь.
  2. Зберігайте групи повторів сфокусованими — повтор з 20+ питаннями важко навігувати.
  3. Чітко іменуйте групи повторів.
  4. Тестуйте з максимально очікуваною кількістю екземплярів.
  5. Використовуйте appearance field-list для груп повторів на мобільних пристроях.

Обмеження

  • indexed-repeat() потребує дійсного індексу.
  • Вкладені повтори більше 2 рівнів не рекомендуються.
  • Агрегатні функції працюють на всій групі повтору.
Чи була ця сторінка корисною?