Группы в 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 поддерживает различные варианты внешнего вида для групп:

  1. field-list: Отображает несколько вопросов на одном экране.

      | type         | name       | label     | appearance |
    |--------------|------------|-----------|------------|
    | begin_group  | respondent | Респондент| field-list |
    | text         | name       | Имя      |            |
    | text         | position   | Должность  |            |
    | end_group    |            |           |            |
      
  2. grid: Создаёт компактный табличный макет для групп (специфично для rtSurvey).

      | type         | name       | label     | appearance |
    |--------------|------------|-----------|------------|
    | begin_group  | household  | Домохозяйство | grid       |
    | text         | member_name| Имя      |            |
    | integer      | member_age | Возраст       |            |
    | end_group    |            |           |            |
      
  3. 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 лет или меньше.

Лучшие практики использования групп

  1. Используйте понятные имена для групп для улучшения анализа данных.
  2. Сосредотачивайте группы на связанных вопросах.
  3. Используйте вложенные группы с умеренностью.
  4. Тщательно тестируйте логику переходов при использовании relevant для групп.
  5. Рассмотрите использование внешнего вида field-list для коротких групп.
  6. Используйте сетчатый макет rtSurvey для компактного отображения связанной информации.
  7. Используйте сворачиваемые группы для длинных форм.

Функции rtSurvey

  1. Сетчатый макет: Используйте внешний вид grid для табличного отображения.
  2. Сворачиваемые группы: Реализуйте внешний вид collapsible для раскрываемых разделов.
  3. Пользовательский стиль: Применяйте пользовательский CSS к группам.
  4. Динамическое поведение группы: Реализуйте сложную логику переходов и вычисления внутри групп.

Многоязычная поддержка

rtSurvey поддерживает многоязычные группы. Используйте языковые столбцы для меток:

  | type         | name       | label::English | label::French |
|--------------|------------|----------------|---------------|
| begin_group  | personal   | Personal Info  | Infos Personnelles |
| text         | name       | Name           | Nom           |
| end_group    |            |                |               |
  

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

  • Группы с внешним видом field-list отображаются как единый экран в мобильном приложении.
  • Сворачиваемые группы улучшают навигацию на маленьких экранах.
  • Сетчатые макеты могут адаптироваться для лучшей видимости на мобильных устройствах.

Устранение проблем с группами

  1. Убедитесь, что каждый begin_group имеет соответствующий end_group.
  2. Проверьте уникальность имён групп в форме.
  3. Убедитесь, что логика переходов ссылается на правильные имена вопросов.
  4. Тестируйте группы как в веб-, так и в мобильном интерфейсах.
Была ли эта страница полезной?