Логіка пропуску, також відома як розгалуження або умовна логіка, дозволяє створювати динамічні опитування, що адаптуються до відповідей респондентів. У rtSurvey логіка пропуску реалізована за допомогою стовпця relevant у вашому XLSForm.

Базова логіка пропуску

Для реалізації базової логіки пропуску використовуйте стовпець relevant, щоб вказати умову:

  | type           | name          | label                       | relevant            |
|----------------|---------------|-----------------------------|--------------------|
| select_one y_n | likes_pizza   | Do you like pizza?          |                    |
| select_multiple pizza_toppings | favorite_topping | Favorite toppings | ${likes_pizza} = 'yes' |
  

У цьому прикладі питання “Favorite toppings” з’являється лише якщо респондент відповів “yes” на питання про улюблену піцу.

Синтаксис виразів relevant

  • Використовуйте ${ } для посилання на інші змінні питань.
  • Для питань select_one порівнюйте безпосередньо: ${question_name} = 'answer'
  • Для питань select_multiple використовуйте функцію selected().

Розширена логіка пропуску

Кілька умов

Ви можете об’єднувати кілька умов за допомогою and, or та дужок:

  | type    | name  | label                   | relevant                                  |
|---------|-------|-------------------------|-------------------------------------------|
| integer | age   | What is your age?       |                                           |
| text    | school| What school do you attend? | ${age} < 18 and (${location} = 'urban' or ${location} = 'suburban') |
  

Використання питань select_multiple

Для питань select_multiple використовуйте функцію selected():

  | type           | name          | label                       | relevant                               |
|----------------|---------------|-----------------------------|-----------------------------------------|
| select_multiple pizza_toppings | favorite_topping | Favorite toppings |                                         |
| text           | cheese_type   | Favorite type of cheese     | selected(${favorite_topping}, 'cheese') |
  

Варіант “Інше” у виборі з кількох відповідей

Реалізуйте варіант вільного тексту “Інше” за допомогою relevant:

  | type           | name                  | label                               | relevant                               |
|----------------|----------------------|-------------------------------------|---------------------------------------|
| select_multiple pizza_toppings | favorite_toppings | What are your favorite pizza toppings? |                                       |
| text           | favorite_toppings_other | What other toppings do you like?   | selected(${favorite_toppings}, 'other') |
  

Пам’ятайте включити ‘other’ як варіант у таблицю choices.

Специфічні функції rtSurvey

Динамічна актуальність

rtSurvey дозволяє динамічну актуальність на основі обчислюваних полів:

  | type      | name       | label              | calculation                   |
|-----------|------------|--------------------|-----------------------------|
| calculate | total_score| Total Score        | ${score1} + ${score2} + ${score3} |
| text      | feedback   | Feedback           | ${total_score} > 75             |
  

Актуальність у повторах

rtSurvey підтримує актуальність у групах повторів:

  | type         | name         | label            | relevant               |
|--------------|--------------|------------------|------------------------|
| begin repeat | child_info   | Child Information|                        |
| integer      | child_age    | Child's Age      |                        |
| text         | school_name  | School Name      | ${child_age} >= 5      |
| end repeat   |              |                  |                        |
  

Каскадна актуальність

rtSurvey ефективно обробляє каскадну актуальність, де актуальність одного питання залежить від іншого, яке, своєю чергою, залежить від третього:

  | type           | name        | label                  | relevant               |
|----------------|-------------|------------------------|------------------------|
| select_one y_n | has_car     | Do you own a car?      |                        |
| select_one car_type | car_type | What type of car?    | ${has_car} = 'yes'     |
| text           | model       | Specific model         | ${car_type} = 'sedan'  |
  

Найкращі практики логіки пропуску в rtSurvey

  1. Тримайте простоту: Уникайте надмірно складних умов актуальності, де це можливо.
  2. Тестуйте ретельно: Використовуйте функцію попереднього перегляду rtSurvey для тестування всіх можливих шляхів у вашому опитуванні.
  3. Враховуйте продуктивність: Дуже складна логіка пропуску може впливати на продуктивність опитування, особливо на мобільних пристроях.
  4. Використовуйте чіткі назви змінних: Це робить вирази актуальності легшими для читання та підтримки.
  5. Документуйте свою логіку: Додавайте примітки для пояснення складних шаблонів пропуску, особливо для командної співпраці.
  6. Пам’ятайте про аналіз даних: Пропущені питання призведуть до відсутніх даних. Плануйте свій аналіз відповідно.

Усунення неполадок логіки пропуску

  • Синтаксичні помилки: Переконайтеся, що всі ${ } правильно закриті та написані правильно.
  • Кругові посилання: Уникайте створення петель, де питання залежать одне від одного.
  • Чутливість до регістру: Пам’ятайте, що варіанти відповідей чутливі до регістру у виразах актуальності.
  • Числові порівняння: Використовуйте відповідні оператори (<, >, =) для числових порівнянь.

Висновок

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

Чи була ця сторінка корисною?