Мова: Українська
XLSForm — це широко використовуваний стандарт для визначення анкет для мобільного збору даних. ActivityInfo використовує модель даних, яка ближча до реляційної бази даних, що призводить до деяких важливих відмінностей між формою XLSForm та формою ActivityInfo, особливо коли йдеться про складні запитання з вибором та групи, що повторюються.
Форми, що містять непідтримувані функції, можуть бути успішно імпортовані в ActivityInfo, але запитання та формули з непідтримуваними функціями будуть пропущені.
Підтримувані типи запитань
| Тип запитання | Тип поля ActivityInfo | Обмеження |
|---|---|---|
| integer | Кількість | ActivityInfo дозволяє дробове введення. |
| decimal | Кількість | |
| range | Кількість | Відображення рейтингу не підтримується. |
| select_one | Одиничний вибір або Поле посилання |
|
| select_multiple | Множинний вибір | Обмежено 100 елементами. Додавання or_other не підтримується. |
| select_one_from_file | Не підтримується. | |
| select_multiple_from_file | Не підтримується. | |
| rank | Не підтримується | |
| note | Не підтримується | |
| geopoint | Геоточка | |
| geotrace | Не підтримується | |
| geoshape | Не підтримується | |
| date | Дата | |
| time | Не підтримується | |
| dateTime | Не підтримується | |
| image | Вкладення | ActivityInfo дозволяє будь-який тип файлу, а не лише зображення. |
| audio | Вкладення | ActivityInfo дозволяє будь-який тип файлу, а не лише аудіо. Параметр якості звуку не підтримується. |
| background-audio | Не підтримується | |
| video | Вкладення | ActivityInfo дозволяє будь-який тип файлу, а не лише відео. |
| file | Вкладення | |
| barcode | Не підтримується | |
| calculate | Обчислення | |
| acknowledge | Одиничний вибір | |
| hidden | Текст, з опцією "Приховати при введенні даних" | |
| xml-external | Не підтримується | |
| metadata (start, end, today, deviceid, phonenumber, username, email, audit) | Не підтримується. Зауважте, що ActivityInfo записує інформацію про те, хто і що змінив для всіх Форм. |
Запитання з вибором
Запитання типу "Select_one" у XLSForms перетворюються або на поля Одиничний вибір в ActivityInfo, або на Поле посилання, залежно від наступних критеріїв:
- Якщо варіантів вибору більше 100, Поле перетворюється на Поле посилання.
- Якщо список вибору має додаткові стовпці "атрибутів", наприклад, ті, що використовуються для створення каскадних виборів у XLSForm, то будь-яке запитання, що використовує цей список вибору, стає Полем посилання в ActivityInfo. Крім того, список вибору імпортується як окрема Форма, з одним Полем для кожного атрибута вибору.
- Якщо на список вибору посилаються інші choice_filters, він стає новою Формою ActivityInfo, на яку посилаються інші списки вибору.
| Оператор / Функція | Пояснення | Підтримка |
|---|---|---|
| +, -, *, div | Базова арифметика | Повністю підтримується |
| =, != | Рівність | Повністю підтримується |
| +, -, *, div | Базова арифметика | Повністю підтримується |
| =, != | Рівність | Повністю підтримується |
| >, <, >=, <, <= | Порівняння | Повністю підтримується |
| and, or | Логічні оператори | Повністю підтримується |
| . | Значення поточного запитання | Повністю підтримується |
| .. | Батьківська група поточного запитання | Буде підтримуватися в майбутньому. |
| if | Повністю підтримується | |
| position() | Не підтримується. Записи в ActivityInfo не впорядковані. | |
| once() | Не підтримується. | |
| selected() | Підтримується. | |
| selected-at() | Не підтримується | |
| count-selected() | Буде підтримуватися в майбутньому. | |
| jr:choice-name() | Не підтримується | |
| indexed-repeat | Не підтримується | |
| count() | Буде підтримуватися в майбутньому. | |
| count-non-empty() | Буде підтримуватися в майбутньому. | |
| sum() | Буде підтримуватися в майбутньому. | |
| max() | Буде підтримуватися в майбутньому. | |
| min() | Буде підтримуватися в майбутньому. | |
| regex() | Перекладається як MATCHREGEX() | |
| contains() | Буде підтримуватися в майбутньому. | |
| starts-with() | Буде підтримуватися в майбутньому. | |
| ends-with() | Буде підтримуватися в майбутньому. | |
| substr() | Буде підтримуватися в майбутньому. | |
| substring-before() | ||
| substring-after() | Буде підтримуватися в майбутньому. | |
| translate() | Буде підтримуватися в майбутньому. | |
| string-length() | Буде підтримуватися в майбутньому. | |
| normalize-space() | Буде підтримуватися в майбутньому. | |
| concat() | Буде підтримуватися в майбутньому. | |
| join() | Буде підтримуватися в майбутньому. | |
| boolean-from-string() | Буде підтримуватися в майбутньому. | |
| string() | Буде підтримуватися в майбутньому. | |
| round() | Буде підтримуватися в майбутньому. | |
| int() | Буде підтримуватися в майбутньому. | |
| number() | Буде підтримуватися в майбутньому. | |
| digest() | Не підтримується | |
| pow() | Буде підтримуватися в майбутньому. | |
| log() | Буде підтримуватися в майбутньому. | |
| log10() | Буде підтримуватися в майбутньому. | |
| abs() | Буде підтримуватися в майбутньому. | |
| sin() | Буде підтримуватися в майбутньому. | |
| cos() | Буде підтримуватися в майбутньому. | |
| tan() | Буде підтримуватися в майбутньому. | |
| asin() | Буде підтримуватися в майбутньому. | |
| acos() | Буде підтримуватися в майбутньому. | |
| atan() | Буде підтримуватися в майбутньому. | |
| atan2() | Буде підтримуватися в майбутньому. | |
| sqrt() | Буде підтримуватися в майбутньому. | |
| exp() | Буде підтримуватися в майбутньому. | |
| exp10() | Буде підтримуватися в майбутньому. | |
| pi() | Буде підтримуватися в майбутньому. | |
| today() | Підтримується | |
| now() | Буде підтримуватися в майбутньому. | |
| decimal-date-time() | Не підтримується | |
| date() | Частково підтримується. Підтримує синтаксис DATE("2020-01-01") |
|
| decimal-time() | Не підтримується | |
| format-date() | Буде підтримуватися в майбутньому. | |
| format-date-time() | Буде підтримуватися в майбутньому. | |
| area() | Не підтримується | |
| distance() | Не підтримується | |
| random() | Не підтримується | |
| randomize() | Не підтримується | |
| uuid() | Не підтримується | |
| boolean() | Буде підтримуватися в майбутньому. | |
| not(x) | Підтримується. not(x) стає !x в ActivityInfo | |
| coalesce() | Підтримується | |
| checklist() | Не підтримується | |
| weighted-checklist() | Не підтримується | |
| true() | Підтримується. Стає "TRUE" в ActivityInfo |
|
| false() | Підтримується. Стає "FALSE" в ActivityInfo |
Інші обмеження
- У більшості випадків ActivityInfo не враховує стовпець appearance для запитань.
- ActivityInfo не підтримує значення за замовчуванням.
- ActivityInfo не підтримує тригери
- ActivityInfo підтримує обмеження, але не підтримує налаштування повідомлень про обмеження.