Повторяющиеся вопросы
Повторения — мощная функция rtSurvey, позволяющая собирать один и тот же набор информации несколько раз в рамках одного опроса. Это особенно полезно для опросов домохозяйств, где может потребоваться собрать данные о нескольких членах домохозяйства.
Базовая структура повторения
Для создания повторения в rtSurvey используйте конструкцию begin repeat и end repeat:
| type | name | label |
|--------------|--------------|----------------------|
| begin repeat | child_repeat | |
| text | name | Имя ребёнка |
| decimal | birthweight | Вес при рождении |
| select_one male_female | sex | Пол ребёнка |
| end repeat | | |
В этом примере пользователь может собирать информацию о нескольких детях, добавляя новые повторения в форму.
Метки повторений
Хотя столбец label необязателен для begin repeat, добавление метки улучшает навигацию:
| type | name | label |
|--------------|--------------|----------------------|
| begin repeat | child_repeat | Информация о ребёнке |
| text | name | Имя ребёнка |
| decimal | birthweight | Вес при рождении |
| select_one male_female | sex | Пол ребёнка |
| end repeat | | |
rtSurvey будет отображать «Информация о ребёнке» как заголовок каждого экземпляра повторения.
Фиксированное количество повторений
Для указания фиксированного числа повторений используйте столбец repeat_count:
| type | name | label | repeat_count |
|--------------|--------------|----------------------|--------------|
| begin repeat | child_repeat | Информация о ребёнке | 3 |
| text | name | Имя ребёнка | |
| decimal | birthweight | Вес при рождении | |
| end repeat | | | |
Это создаст ровно 3 повторения для ребёнка.
Динамическое количество повторений
rtSurvey поддерживает динамическое количество повторений на основе предыдущих ответов:
| type | name | label | repeat_count |
|----------|----------------|--------------------------------|--------------------|
| integer | num_hh_members | Количество членов домохозяйства? | |
| begin repeat | hh_member | Член домохозяйства | ${num_hh_members} |
| text | name | Имя | |
| integer | age | Возраст | |
| end repeat | | | |
Условные повторения
Вы можете использовать столбец relevant для условного отображения повторений:
| type | name | label | relevant |
|-------------------|-------------|---------------------------|---------------------|
| select_one yes_no | has_child | Живут ли здесь дети?| |
| begin repeat | child_repeat| Информация о ребёнке | ${has_child} = 'yes'|
| text | name | Имя ребёнка | |
| decimal | birthweight | Вес при рождении | |
| end repeat | | | |
Функции rtSurvey
Резюме повторения
rtSurvey предоставляет сводный вид повторений. Для настройки сводки используйте группу внутри повторения:
| type | name | label |
|--------------|--------------|------------------------------------------|
| begin repeat | person_repeat| |
| begin group | person | ${first_name} ${last_name} - ${age} |
| text | first_name | Имя |
| text | last_name | Фамилия |
| integer | age | Возраст |
| end group | | |
| end repeat | | |
Варианты внешнего вида повторений
rtSurvey предлагает дополнительные варианты внешнего вида для повторений:
appearance: field-list— Отображает все вопросы повторения на одном экранеappearance: table-list— Представляет повторения в табличном формате
| type | name | label | appearance |
|--------------|--------------|-------------------|-------------|
| begin repeat | child_repeat | Информация о ребёнке | table-list |
| text | name | Имя | |
| integer | age | Возраст | |
| end repeat | | | |
Вложенные повторения
rtSurvey поддерживает вложенные повторения для сложных структур данных:
| type | name | label |
|--------------|----------------|----------------------|
| begin repeat | household | Домохозяйство |
| text | hh_name | Название домохозяйства |
| begin repeat | hh_member | Член домохозяйства |
| text | member_name | Имя члена |
| integer | member_age | Возраст члена |
| end repeat | | |
| end repeat | | |
Лучшие практики использования повторений в rtSurvey
- Используйте понятные имена и метки для повторений.
- Рассмотрите использование динамического количества повторений для снижения ошибок ввода.
- Тщательно тестируйте форму, особенно при использовании сложных вложенных повторений.
- Используйте сводную функцию для навигации по длинным спискам повторений.
- Будьте осторожны с большим числом повторений — это может влиять на производительность формы.
Обработка нулевых повторений
Для представления нулевых повторений в rtSurvey:
- Обучите интервьюеров удалять первое повторение, если оно не нужно.
- Используйте динамическое количество повторений, когда точное число известно.
- Используйте
relevantдля условного отображения повторений.
Соображения по экспорту данных
При экспорте данных из rtSurvey данные повторений обычно «распрямляются». Каждый экземпляр повторения становится отдельной строкой в экспортированных данных, при этом данные родительской формы повторяются для каждого экземпляра.
Соображения для мобильного приложения
- Повторения в мобильном приложении rtSurvey поддерживают офлайн-сбор данных.
- Большое количество повторений может влиять на производительность приложения на устройствах низкого класса.