Мова: Українська
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 | Базова арифметика | Повністю підтримується |
| =, != | Рівність | Повністю підтримується |
| >, <, >=, <= | Порівняння | Повністю підтримується |
| 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 підтримує обмеження, але не підтримує власні повідомлення про обмеження.