Что такое XLSForm?

rtSurvey использует расширенную версию стандарта XLSForm для дизайна форм, предлагая мощные возможности для создания сложных опросов. Это руководство познакомит вас с ключевыми концепциями дизайна форм в rtSurvey — от базовой структуры XLSForm до расширенных функций, специфичных для rtSurvey.

С помощью XLSForm вы можете создавать формы в удобочитаемом формате, используя привычный инструмент Excel, что делает его доступным практически для всех. Этот стандарт обеспечивает удобный обмен и совместную работу над созданием форм.

Хотя XLSForms дружелюбны к начинающим, они также позволяют опытным пользователям создавать сложные формы.

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

Структура XLSForm

XLSForm, как правило, состоит из двух основных листов:

  1. survey: Определяет структуру и содержание формы.
  2. choices: Задаёт варианты ответов для вопросов с множественным выбором.

Опциональный лист settings может предоставить дополнительные спецификации формы.

Важно отметить, что обязательные столбцы в листах survey и choices должны присутствовать для корректной работы формы. Необязательные столбцы в обоих листах обеспечивают дополнительный контроль над поведением каждой записи, но не являются обязательными.

Столбцы в книге Excel могут располагаться в любом порядке, необязательные столбцы могут оставаться пустыми. Однако важно использовать точный синтаксис и соглашения об именовании, указанные в документации XLSForm.

Лист survey

Лист survey — это место, где вы определяете структуру формы и её содержание. Каждая строка листа survey представляет вопрос или элемент формы. Следующие столбцы являются обязательными:

  • type: Определяет тип ввода, ожидаемого для вопроса.
  • name: Задаёт уникальное имя переменной для этой записи. Имена должны начинаться с буквы или подчёркивания и могут содержать только буквы, цифры, дефисы, подчёркивания и точки. Имена чувствительны к регистру.
  • label: Содержит фактический текст вопроса, отображаемый в форме.
typenamelabel
todaytoday
select_one gendergenderПол респондента?
integerageВозраст респондента?

Лист choices

Лист choices используется для указания вариантов ответов на вопросы с множественным выбором. Каждая строка представляет вариант ответа. Следующие столбцы являются обязательными:

  • list_name: Группирует связанные варианты ответов.
  • name: Задаёт уникальное имя переменной для варианта ответа.
  • label: Отображает вариант ответа так, как он должен выглядеть в форме.
list_namenamelabel
gendertransgenderТрансгендер
genderfemaleЖенский
gendermaleМужской
genderotherДругое

Столбцы, которые вы добавляете в книгу Excel (обязательные или необязательные), могут располагаться в любом порядке. Необязательные столбцы можно полностью опустить. Строки или столбцы могут быть пустыми для улучшения читаемости, но данные после 20 соседних пустых столбцов или строк на листе обрабатываться не будут. Всё форматирование .xlsx игнорируется.

При создании форм в Excel важно использовать точный синтаксис. Например, если вы напишете Choices или choice вместо choices, форма не будет работать.

Лист settings

Лист settings необязателен, но позволяет указать метаданные и поведение уровня формы. Общие столбцы в листе settings:

СтолбецОписание
form_titleЗаголовок формы, отображаемый пользователям
form_idУникальный идентификатор формы, используемый в управлении данными и вызовах API
default_languageКод языка по умолчанию для многоязычных форм (например, ’en’ для английского)
versionНомер версии формы, полезный для отслеживания изменений
instance_nameВыражение для генерации уникального имени каждой отправки формы
generationЦелое число, обозначающее поколение формы. Увеличивайте при структурных изменениях
familyИдентификатор для группировки связанных форм при структурных изменениях

Лист settings в rtSurvey может также включать дополнительные конфигурации, специфичные для расширенных функций rtSurvey. Полный список поддерживаемых настроек смотрите в документации rtSurvey.

Ключевые компоненты листа survey

Лист survey — основа дизайна вашей формы. Вот обзор его ключевых компонентов:

КомпонентОписание
typeОпределяет тип вопроса (например, text, integer, select_one)
nameУникальный идентификатор вопроса
labelТекст, отображаемый респонденту
hintДополнительное руководство для респондента
appearanceИзменяет способ отображения вопроса
relevantОпределяет, когда должен задаваться вопрос (логика переходов)
constraintПроверяет ответ
calculationВычисляет значения на основе других ответов
requiredУказывает, обязателен ли ответ на вопрос

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

Типы вопросов

XLSForm поддерживает несколько типов вопросов. Вот некоторые из вариантов, которые можно ввести в столбец type в листе survey вашего XLSForm:

Тип вопросаВвод ответа
integerВвод целого числа.
decimalВвод десятичного числа.
rangeВвод диапазона (включая рейтинг)
textСвободный текстовый ответ.
select_one [options]Вопрос с выбором одного ответа из нескольких вариантов.
select_multiple [options]Вопрос с выбором нескольких ответов из предложенных вариантов.
select_one_from_file [file]Выбор одного ответа из внешнего файла CSV.
select_multiple_from_file [file]Выбор нескольких ответов из внешнего файла CSV.
rank [options]Вопрос на ранжирование: упорядочить список.
noteОтображение примечания на экране, ввод не принимается.
geopointСбор одной GPS-координаты.
geotraceЗапись линии из двух и более GPS-координат.
geoshapeЗапись полигона из нескольких GPS-координат; последняя точка совпадает с первой.
dateВвод даты.
timeВвод времени.
dateTimeПринимает ввод даты и времени.
imageСделать фото или загрузить файл изображения.
audioСделать аудиозапись или загрузить аудиофайл.
background-audioАудио записывается в фоновом режиме при заполнении формы.
videoСделать видеозапись или загрузить видеофайл.
fileОбщий файловый ввод (txt, pdf, xls, xlsx, doc, docx, rtf, zip)
barcodeСканирование штрих-кода.
calculateВыполнить вычисление; см. раздел «Вычисления» ниже.
acknowledgeПодтверждение, устанавливающее значение «OK» при выборе.
hiddenПоле без связанного элемента UI для хранения константы
xml-externalДобавляет ссылку на внешний XML-файл данных

Метки

Метки — это текст, отображаемый респондентам для каждого вопроса.

  • Базовое использование: В столбце label введите текст вопроса.
  • Несколько языков: Используйте дополнительные столбцы, такие как label::English и label::French, для многоязычных опросов.
  • Форматирование: rtSurvey поддерживает базовое HTML-форматирование в метках.

Пример:

  | type | name | label | label::French |
|------|------|-------|---------------|
| text | name | Как вас зовут? | Quel est votre nom? |
  

Подсказки

Подсказки предоставляют дополнительное руководство респондентам без перегрузки основного текста вопроса.

  • Использование: Добавляйте подсказки в столбец hint.
  • Видимость: Подсказки обычно отображаются под основным текстом вопроса.
  • Многоязычность: Как и метки, подсказки можно указывать для нескольких языков с использованием столбцов hint::Language.

Пример:

  | type | name | label | hint |
|------|------|-------|------|
| integer | age | Сколько вам лет? | Введите ваш возраст в годах |
  

Внешний вид

Столбец appearance в rtSurvey позволяет настраивать отображение вопросов.

  • Стандартные варианты: Включают ‘multiline’ для текста, ‘horizontal’ для вопросов с выбором.
  • Расширения rtSurvey:
    • Ввод времени: Различные варианты отображения часов (например, inline, inline-1line)
    • Настройка цвета: Функция colors() для изменения цвета иконок

Пример:

  | type | name | label | appearance |
|------|------|-------|------------|
| text | time | Введите время | inline-[%H:%M] |
  

Условие отображения

Столбец relevant реализует логику переходов, определяя, когда должен отображаться вопрос.

  • Синтаксис: Используйте выражения XPath для определения условий.
  • Переменные: Ссылайтесь на имена других вопросов с помощью ${question_name}.

Пример:

  | type | name | label | relevant |
|------|------|-------|----------|
| text | allergies | Перечислите аллергии | ${has_allergies} = 'yes' |
  

Обязательность

Столбец required указывает, обязателен ли ответ на вопрос.

  • Базовое использование: Используйте ‘yes’ или ’true’ для обязательного вопроса.
  • Расширенное: Можно использовать выражения для условной обязательности.

Пример:

  | type | name | label | required |
|------|------|-------|----------|
| text | email | Адрес электронной почты | yes |
  

Повторения

Повторения позволяют отвечать на группу вопросов несколько раз.

  • Использование: Используйте строки begin repeat и end repeat для определения повторяющейся группы.
  • Именование: Дайте каждой группе повторений уникальное имя.

Пример:

  | type | name | label |
|------|------|-------|
| begin repeat | household_member | Член домохозяйства |
| text | member_name | Имя |
| integer | member_age | Возраст |
| end repeat | | |
  

Медиа

rtSurvey поддерживает различные типы медиа в опросах, включая изображения, аудио и видео.

  • Типы вопросов: Используйте ‘image’, ‘audio’ или ‘video’ в столбце type.
  • Медиа в метках: Ссылайтесь на медиафайлы в метках с помощью HTML-тегов.

Пример:

  | type | name | label |
|------|------|-------|
| image | house_photo | Сфотографируйте дом |
| note | | <img src="logo.jpg" /> Добро пожаловать в опрос |
  

Только для чтения

Поля только для чтения отображают информацию без разрешения пользовательского ввода.

  • Использование: Добавьте ‘readonly’ в столбец appearance.
  • Вычисления: Часто используется с типом calculate для отображения вычисленных значений.

Пример:

  | type | name | label | appearance | calculation |
|------|------|-------|------------|-------------|
| calculate | bmi | ИМТ | readonly | ${weight} / (${height} * ${height}) |
  

Расширения rtSurvey

rtSurvey расширяет стандарт XLSForm, поддерживая дополнительные возможности, такие как grid layout, html format и множество новых виджетов.

Сетчатый макет

rtSurvey позволяет форме имитировать вид традиционных бумажных опросов, компактно размещая несколько вопросов в одной строке.

Настройки формы

Настройки данных

Стиль Typeform

Расширение pulldata()

Расширения на основе внешнего вида

Расширения Webbox

Была ли эта страница полезной?