Основни концепции
Преглед на дизайна на формуляри
Какво е XLSForm?
rtSurvey използва разширена версия на стандарта XLSForm за дизайн на формуляри, предлагайки мощни функции за създаване на сложни анкети. Това ръководство ще ви запознае с основните концепции на дизайна на формуляри в rtSurvey, от основната структура на XLSForm до разширените функции, специфични за rtSurvey.
С XLSForms можете да създавате формуляри в четим от хора формат, използвайки познатия инструмент Excel, правейки го достъпен за почти всеки. Този стандарт улеснява споделянето и сътрудничеството при създаването на формуляри.
Въпреки че XLSForms са удобни за начинаещи, те позволяват и на опитните потребители да създават сложни формуляри.
rtSurvey осигурява последователен начин за включване на разширени функционалности като логика на пропускане в формулярите на различни уеб и мобилни платформи за събиране на данни.
Структура на XLSForm
XLSForm обикновено се състои от два основни работни листа:
- survey: Дефинира структурата и съдържанието на вашия формуляр.
- choices: Определя опциите за отговор за въпроси с множествен избор.
Незадължителен работен лист settings може да предоставя допълнителни спецификации на формуляра.
Важно е да се отбележи, че задължителните колони в работните листове survey и choices трябва да присъстват, за да работи формулярът правилно. Незадължителните колони в двата работни листа осигуряват допълнителен контрол върху поведението на всеки запис в формуляра, но не са от съществено значение.
Колоните в работната книга на Excel могат да се появяват в произволен ред, а незадължителните колони могат да бъдат оставени празни. Въпреки това е от съществено значение да се използва точният синтаксис и конвенции за именуване, посочени в документацията на XLSForm, за да работи формулярът правилно.
Работният лист survey
Работният лист survey е където дефинирате структурата на формуляра и предоставяте съдържанието. Всеки ред в работния лист survey представлява въпрос или елемент от формуляра. Следните колони са задължителни в работния лист survey:
type: Определя типа на очаквания вход за въпроса.name: Определя уникалното наименование на променлива за този запис. Наименованията трябва да започват с буква или долна черта и могат да съдържат само букви, цифри, тирета, долни черти и точки. Наименованията са чувствителни към регистъра.label: Съдържа действителния текст, виждан за въпроса в формуляра.
| type | name | label |
|---|---|---|
| today | today | |
| select_one gender | gender | Пол на респондента? |
| integer | age | Възраст на респондента? |
Работният лист choices
Работният лист choices се използва за задаване на опциите за отговор за въпроси с множествен избор.
Всеки ред представлява опция за отговор. Следните колони са задължителни в работния лист choices:
list_name: Групира заедно набор от свързани опции за отговор.name: Определя уникалното наименование на променлива за тази опция за отговор.label: Показва опцията за отговор точно така, както искате тя да се показва в формуляра.
| list_name | name | label |
|---|---|---|
| gender | transgender | Трансджендър |
| gender | female | Жена |
| gender | male | Мъж |
| gender | other | Друго |
Колоните, добавени към работната книга на 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] | Множествен избор от файл; може да бъде избран само един отговор. |
| select_multiple_from_file [file] | Множествен избор от файл; могат да бъдат избрани множество отговори. |
| rank [options] | Въпрос за класиране; наредете списък. |
| note | Показва бележка на екрана, не приема вход. Съкратено за type=text с readonly=true. |
| 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, поддържайки допълнителни способности като мрежово оформление, HTML форматиране и много нови уиджети.
Мрежово оформление
rtSurvey позволява на формуляра да имитира вида на традиционните хартиени анкети чрез компактиране на множество въпроси в един ред.