Повторения — мощная функция 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

  1. Используйте понятные имена и метки для повторений.
  2. Рассмотрите использование динамического количества повторений для снижения ошибок ввода.
  3. Тщательно тестируйте форму, особенно при использовании сложных вложенных повторений.
  4. Используйте сводную функцию для навигации по длинным спискам повторений.
  5. Будьте осторожны с большим числом повторений — это может влиять на производительность формы.

Обработка нулевых повторений

Для представления нулевых повторений в rtSurvey:

  1. Обучите интервьюеров удалять первое повторение, если оно не нужно.
  2. Используйте динамическое количество повторений, когда точное число известно.
  3. Используйте relevant для условного отображения повторений.

Соображения по экспорту данных

При экспорте данных из rtSurvey данные повторений обычно «распрямляются». Каждый экземпляр повторения становится отдельной строкой в экспортированных данных, при этом данные родительской формы повторяются для каждого экземпляра.

Соображения для мобильного приложения

  • Повторения в мобильном приложении rtSurvey поддерживают офлайн-сбор данных.
  • Большое количество повторений может влиять на производительность приложения на устройствах низкого класса.
Была ли эта страница полезной?