x

Основні розділи

  1. LimeSurvey Cloud проти LimeSurvey CE
  2. Короткий посібник із початку роботи - LimeSurvey 3.0+
  3. Встановлення - LimeSurvey CE
  4. Як створити хороше опитування (посібник)
  5. Початок роботи
  6. Адміністрування LimeSurvey
  7. Опитування - вступ
  8. Налаштування опитування
  9. Меню опитування
  10. Структура опитування
  11. Питання - вступ
  12. Групи питань - вступ
  13. Опитування - керування
  14. Параметри панелі інструментів опитування
  15. Багатомовне опитування
  16. ExpressionScript Engine - Короткий посібник
  17. Некатегоризовані та розширені функції
  18. Загальні поширені запитання
  19. Усунення несправностей
  20. Обхідні рішення
  21. Ліцензія
  22. Журнал змін версій
  23. Плагіни
 Actions

ExpressionScript Engine - Короткий посібник

From LimeSurvey Manual

Ця сторінка, можливо, перекладена машинним способом і може містити помилки. Показати англійський оригінал · Покращити цей переклад
This page is a translated version of the page ExpressionScript Engine - Quick start guide and the translation is 100% complete.


Короткий посібник

У LimeSurvey ви можете додатково налаштовувати свої опитування за допомогою ExpressionScript (скорочено: ES). До відома: «ExpressionScript у попередніх версіях називався Expression Manager (EM). Якщо ви десь побачите Expression Manager, це просто стара назва ES».

За допомогою ES можна задати таке:

  1. Навігація/розгалуження - дозволяє відповідям респондента змінювати порядок, у якому відображаються питання;
  2. Адаптація/підстановка - допомагає формулювати питання (наприклад, посилаючись на попередні відповіді або узгоджуючи речення залежно від віку чи статі учасників) або створювати власні звіти (наприклад, результати оцінювання чи персоналізовані поради);
  3. Перевірка - гарантує, що відповіді відповідають певним критеріям, наприклад мінімальним і максимальним значенням або визначеному шаблону введення.

ES надає інтуїтивно зрозумілий спосіб задати логику для кожної з цих функцій. Майже все, що можна записати як стандартне математичне рівняння, є коректним виразом.

Наразі ES надає доступ до 70 функцій, і його можна легко розширити для підтримки додаткових. Він також дозволяє отримувати доступ до ваших змінних за допомогою зрозумілих для людини імен змінних (замість імен SGQA).

У наступних розділах показано основні місця використання ES.


Релевантність (керування навігацією/розгалуженням)

Деякі опитування використовують «логіку переходу» (Goto Logic): якщо ви відповідаєте на Question1 варіантом C, вас перенаправляють на Question5. Такий підхід дуже обмежений, оскільки його важко перевірити. Крім того, він легко ламається, коли потрібно змінити порядок питань. Натомість ES використовує булеві рівняння релевантності, щоб задати всі умови, за яких питання може бути коректним. Якщо питання релевантне, воно показується, інакше воно не застосовується, а в базі даних зберігається значення «NULL».

Примітка: Це схоже на те, що можна зробити за допомогою редактора умов, але ES дозволяє легко задавати значно складніші та потужніші критерії (і дає змогу використовувати ім’я змінної замість ідентифікаторів SGQA).




Щоб краще зрозуміти концепцію релевантності, розглянемо наступне опитування, яке обчислює індекс маси тіла (ІМТ) респондентів. Щоб завантажити його, натисніть на це посилання: Приклад опитування з індексом маси тіла.

Рівняння релевантності показано нижче в стовпці Актуальність після імені змінної. Значення релевантності для weight, weight_units, height і height_units дорівнюють 1 (значення за умовчанням), тобто ці питання відображаються завжди. Однак релевантність для BMI дорівнює {!is_empty(height) and !is_empty(weight)}, що означає, що BMI буде обчислено, лише якщо учасник введе значення і для зросту, і для ваги (таким чином уникається ризик помилки ділення на нуль). Також питання «Report» показується, лише якщо респондент відповів на всі чотири основні питання (height, heightunits, weight, weightunits).



Примітка: Зображення вище взято з файлу логіки опитування, який дозволяє знаходити синтаксичні помилки перед активацією опитування.


Релевантність відображається та редагується, коли:

  • ви хочете переглянути/змінити релевантність на рівні питання
  • ви хочете переглянути/змінити релевантність на рівні групи


Перегляд / редагування релевантності на рівні питання

Це рівняння обчислює індекс маси тіла (ІМТ). Питання задається, лише якщо особа вводить свій зріст і вагу.



Це екран редагування питання «BMI».



Зверніть увагу: під час введення рівняння релевантності фігурні дужки не використовуються.


Перегляд / редагування релевантності на рівні групи

Розглянемо тепер інший приклад - просте опитування для перепису населення. Щоб завантажити його, натисніть на це посилання: Приклад опитування для перепису.

Перша сторінка запитує, скільки людей проживає разом з вами, і зберігає це значення в змінній «cohabs». Ця сторінка показується, лише якщо з вами проживає більше однієї особи (вона показується для другої особи, яка проживає з вами). Також p2name, p2age, p2sum відображаються, лише якщо на питання перед кожним із них надано відповідь.



Отже, група також має критерії релевантності на рівні питання, тому деякі питання з’являються, лише якщо ви відповіли на певні питання перед ними (наприклад, p2age відображається, якщо надано відповідь на p2name). ES автоматично поєднує релевантність на рівні групи та на рівні питання. Питання в групі задаються, лише якщо група загалом релевантна. Після цього задаються лише ті питання групи, які релевантні.

Ось знімок екрана редагування релевантності на рівні групи для Cohabitant 2:



Зверніть увагу: під час введення рівняння релевантності фігурні дужки не використовуються.

Адаптація/Піпінг

ES дає змогу легко виконувати як просту, так і складну умовну адаптацію тексту. Іноді потрібна проста підстановка, наприклад: «Ви зазначили, що придбали [Продукт]. Що вам найбільше сподобалося в ньому?». Іноді потрібна умовна підстановка, наприклад: «[Пане/Пані] [Прізвище], чи не могли б ви пройти наше опитування?». У цьому випадку слід використовувати «пане» або «пані» залежно від статі особи. В інших випадках потрібна ще складніша підстановка (наприклад, на основі математичного обчислення). ES підтримує всі ці типи адаптації/піпінгу.


Умовні рівняння

Приклад з індексом маси тіла показує, як можна обчислити ІМТ особи, навіть якщо вона вводить зріст і вагу в різних одиницях (см чи дюйми, кг чи фунти):



У цьому випадку weightkg має вигляд {if(weightunits == "kg", weight, weight * 0.453592)}. Функція «if()» означає: якщо респондент вводить вагу в кілограмах, використовується це значення, інакше введене значення (альтернатива — фунти) множиться на 0.453592 для перетворення в кілограми. Змінна heightm використовує подібний підхід для обчислення зросту в метрах (зріст у см/100), навіть якщо його введено в дюймах (1 метр = 3.28084 дюйма).

ІМТ обчислюється так: {weightkg / (heightm * heightm)}.

Нарешті, звіт умовно адаптує повідомлення для респондента, повідомляючи, що саме було введено. (наприклад, «Ви зазначили, що ваш зріст — 2 метри, а вага — 70 кг.»)

На зображенні нижче weightstatus використовує вкладені оператори «if()», щоб віднести особу до категорії від недостатньої ваги до тяжкого ожиріння. Ви можете побачити його рівняння, переглянувши його логіку:



У вікні редагування цього питання можна побачити дві речі:

  1. під час адаптації вирази необхідно брати у фігурні дужки;
  2. вирази можуть займати кілька рядків, якщо, як у цьому випадку, ви хочете полегшити читання вкладеної умовної логіки.



Адаптовані питання, відповіді та звіти

Примітка: Динамічна адаптація може не працювати, якщо варіанти відповідей відображаються у випадних списках на тій самій сторінці питання. Це пов’язано з тим, що адаптація вставляє тег <span>, який недопустимий усередині елементів списку вибору.

Звіт ІМТ виглядає так:



Ось вікно редагування для того самого питання.



Усе, що знаходиться у фігурних дужках, розглядається як вираз і на попередньому зображенні підсвічується (кольорове кодування синтаксису). Якщо є помилки (наприклад, неправильно написані чи невизначені назви змінних або функцій), ES покаже помилку. У нашому прикладі нижче:

  • heightunit.shown — це невизначена назва змінної (насправді це heightunits.shown), а
  • «rnd()» — це невизначена функція (правильна назва функції — «round()»).

В обох випадках помилки виділено червоною рамкою, щоб їх було легше помітити та виправити.



Ви також можете побачити, що можна швидко створювати складні звіти, наприклад таблицю введених значень або адаптовані поради.

Пам’ятайте, що під час адаптації всі вирази необхідно брати у фігурні дужки, щоб LimeSurvey знав, які частини питання є вільним текстом, а які має обробляти рушій ExpressionScript.


Перевірка

ES керує роботою більшості розширених параметрів питання. Вони визначають такі аспекти, як мінімальна/максимальна кількість відповідей, мінімальні/максимальні окремі значення, мінімальні/максимальні суми значень, а також перевірку відповідності введених значень заданим шаблонам рядків. Будь-яке значення в одному з цих полів вважається виразом, тож ви можете задавати мінімальні/максимальні критерії зі складними умовними зв’язками з іншими питаннями.

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

На сторінці зразків опитувань наведено багато робочих прикладів із різними виразами перевірки.

ExpressionScript - презентація

Щоб дізнатися більше про ExpressionScript і про те, як за допомогою різних виразів удосконалити ваше опитування, перейдіть за посиланням.