Группировка вопросов
Группы в XLSForm позволяют организовывать связанные вопросы вместе, улучшая структуру опроса и возможности анализа данных. rtSurvey полностью поддерживает группы XLSForm и расширяет их функциональность дополнительными возможностями.
Базовая структура группы
Чтобы создать группу вопросов, используйте синтаксис begin_group и end_group:
| type | name | label |
|--------------|------------|------------------------------------------|
| begin_group | respondent | Информация о респонденте |
| text | name | Введите имя респондента |
| text | position | Введите должность респондента |
| end_group | | |
Ключевые моменты:
- Строка
begin_groupтребуетnameиlabel. - Строке
end_groupне нужны имя или метка. - Вопросы между
begin_groupиend_groupявляются частью группы.
Внешний вид группы
rtSurvey поддерживает различные варианты внешнего вида для групп:
field-list: Отображает несколько вопросов на одном экране.
| type | name | label | appearance | |--------------|------------|-----------|------------| | begin_group | respondent | Респондент| field-list | | text | name | Имя | | | text | position | Должность | | | end_group | | | |grid: Создаёт компактный табличный макет для групп (специфично для rtSurvey).
| type | name | label | appearance | |--------------|------------|-----------|------------| | begin_group | household | Домохозяйство | grid | | text | member_name| Имя | | | integer | member_age | Возраст | | | end_group | | | |collapsible: Создаёт раскрывающиеся/сворачиваемые группы (специфично для rtSurvey).
| type | name | label | appearance | |--------------|------------|-----------|-------------| | begin_group | details | Детали | collapsible | | text | address | Адрес | | | text | phone | Телефон | | | end_group | | | |
Вложенные группы
Группы могут быть вложены в другие группы для более сложных структур:
| type | name | label |
|--------------|------------|------------------------------------------|
| begin_group | hospital | Информация о больнице |
| text | hosp_name | Как называется эта больница? |
| begin_group | medication | Наличие медикаментов |
| select_one y_n| hiv_meds | Есть ли в этой больнице препараты от ВИЧ? |
| end_group | | |
| end_group | | |
Примечание: Всегда завершайте последнюю начатую группу первой для правильного вложения.
Логика переходов для групп
Используйте столбец relevant для реализации логики переходов для целых групп:
| type | name | label | relevant |
|--------------|--------|----------------------------------------------|-----------------|
| integer | age | Сколько вам лет? | |
| begin_group | child | Ребёнок | ${age} <= 5 |
| integer | muac | Измерьте окружность плеча ребёнка | |
| select_one y_n| mrdt | Положительный ли быстрый тест у ребёнка?| |
| end_group | | | |
В этом примере группа child будет отображаться только если возраст респондента 5 лет или меньше.
Лучшие практики использования групп
- Используйте понятные имена для групп для улучшения анализа данных.
- Сосредотачивайте группы на связанных вопросах.
- Используйте вложенные группы с умеренностью.
- Тщательно тестируйте логику переходов при использовании
relevantдля групп. - Рассмотрите использование внешнего вида
field-listдля коротких групп. - Используйте сетчатый макет rtSurvey для компактного отображения связанной информации.
- Используйте сворачиваемые группы для длинных форм.
Функции rtSurvey
- Сетчатый макет: Используйте внешний вид
gridдля табличного отображения. - Сворачиваемые группы: Реализуйте внешний вид
collapsibleдля раскрываемых разделов. - Пользовательский стиль: Применяйте пользовательский CSS к группам.
- Динамическое поведение группы: Реализуйте сложную логику переходов и вычисления внутри групп.
Многоязычная поддержка
rtSurvey поддерживает многоязычные группы. Используйте языковые столбцы для меток:
| type | name | label::English | label::French |
|--------------|------------|----------------|---------------|
| begin_group | personal | Personal Info | Infos Personnelles |
| text | name | Name | Nom |
| end_group | | | |
Соображения для мобильного приложения
- Группы с внешним видом
field-listотображаются как единый экран в мобильном приложении. - Сворачиваемые группы улучшают навигацию на маленьких экранах.
- Сетчатые макеты могут адаптироваться для лучшей видимости на мобильных устройствах.
Устранение проблем с группами
- Убедитесь, что каждый
begin_groupимеет соответствующийend_group. - Проверьте уникальность имён групп в форме.
- Убедитесь, что логика переходов ссылается на правильные имена вопросов.
- Тестируйте группы как в веб-, так и в мобильном интерфейсах.