Логиката на пропускане, известна също като разклоняване или условна логика, ви позволява да създавате динамични анкети, адаптиращи се към отговорите на респондентите. В rtSurvey логиката на пропускане се прилага с помощта на колоната relevant в XLSForm.

Основна логика на пропускане

За прилагане на основна логика на пропускане, използвайте колоната relevant, за да зададете условие:

  | type           | name          | label                       | relevant            |
|----------------|---------------|-----------------------------|--------------------|
| select_one y_n | likes_pizza   | Харесвате ли пица?          |                    |
| select_multiple pizza_toppings | favorite_topping | Любими гарнитури | ${likes_pizza} = 'yes' |
  

В този пример въпросът “Любими гарнитури” се появява само ако респондентът е отговорил “да” на харесването на пица.

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

  • Използвайте ${ } за препратка към други променливи на въпроси.
  • За въпроси select_one, сравнявайте директно: ${question_name} = 'answer'
  • За въпроси select_multiple, използвайте функцията selected().

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

Множество условия

Можете да комбинирате множество условия с and, or и скоби:

  | type    | name  | label                   | relevant                                  |
|---------|-------|-------------------------|-------------------------------------------|
| integer | age   | На колко години сте?    |                                           |
| text    | school| В какво училище ходите? | ${age} < 18 and (${location} = 'urban' or ${location} = 'suburban') |
  

Използване на въпроси select_multiple

За въпроси select_multiple, използвайте функцията selected():

  | type           | name          | label                       | relevant                               |
|----------------|---------------|-----------------------------|-----------------------------------------|
| select_multiple pizza_toppings | favorite_topping | Любими гарнитури |                                         |
| text           | cheese_type   | Любим вид сирене            | selected(${favorite_topping}, 'cheese') |
  

Опция “Друго” при множествен избор

Прилагайте свободен текст “Друго” с relevant:

  | type           | name                  | label                               | relevant                               |
|----------------|----------------------|-------------------------------------|---------------------------------------|
| select_multiple pizza_toppings | favorite_toppings | Кои са любимите ви гарнитури за пица? |                                       |
| text           | favorite_toppings_other | Какви други гарнитури харесвате?   | selected(${favorite_toppings}, 'other') |
  

Не забравяйте да включите ‘other’ като опция в листа choices.

Специфични за rtSurvey функции

Динамична релевантност

rtSurvey позволява динамична релевантност въз основа на изчислени полета:

  | type      | name       | label              | calculation                   |
|-----------|------------|--------------------|-----------------------------|
| calculate | total_score| Общ резултат       | ${score1} + ${score2} + ${score3} |
| text      | feedback   | Обратна връзка     | ${total_score} > 75             |
  

Релевантност в повторения

rtSurvey поддържа релевантност в рамките на групи за повторение:

  | type         | name         | label            | relevant               |
|--------------|--------------|------------------|------------------------|
| begin repeat | child_info   | Информация за дете|                        |
| integer      | child_age    | Възраст на детето|                        |
| text         | school_name  | Наименование на училище | ${child_age} >= 5 |
| end repeat   |              |                  |                        |
  

Каскадна релевантност

rtSurvey ефективно обработва каскадна релевантност, при която релевантността на един въпрос зависи от друг, който от своя страна зависи от трети:

  | type           | name        | label                  | relevant               |
|----------------|-------------|------------------------|------------------------|
| select_one y_n | has_car     | Притежавате ли кола?   |                        |
| select_one car_type | car_type | Какъв тип кола?     | ${has_car} = 'yes'     |
| text           | model       | Конкретен модел        | ${car_type} = 'sedan'  |
  

Най-добри практики за логика на пропускане в rtSurvey

  1. Поддържайте простота: Избягвайте прекалено сложни условия за релевантност, когато е възможно.
  2. Тествайте задълбочено: Използвайте функцията за преглед на rtSurvey, за да тествате всички възможни пътища в анкетата.
  3. Помислете за производителността: Много сложната логика на пропускане може да засегне производителността на анкетата, особено на мобилни устройства.
  4. Използвайте ясни наименования на променливи: Това прави изразите за релевантност по-лесни за четене и поддръжка.
  5. Документирайте логиката: Добавяйте бележки за обяснение на сложни модели на пропускане, особено за екипно сътрудничество.
  6. Имайте предвид анализа на данни: Пропуснатите въпроси ще доведат до липсващи данни. Планирайте анализа си съответно.

Отстраняване на неизправности с логиката на пропускане

  • Синтактични грешки: Уверете се, че всички ${ } са правилно затворени и изписани.
  • Кръгови препратки: Избягвайте създаването на цикли, при които въпросите зависят един от друг.
  • Чувствителност към регистъра: Помнете, че опциите за отговор са чувствителни към регистъра в изразите за релевантност.
  • Числени сравнения: Използвайте подходящи оператори (<, >, =) за числени сравнения.

Заключение

Ефективното използване на логиката на пропускане може значително да подобри изживяването на респондентите и качеството на данните в rtSurvey проектите. Чрез използването на разширените функции на rtSurvey и следването на най-добрите практики, можете да създавате динамични, ефективни анкети, адаптиращи се към уникалната ситуация на всеки респондент.

Беше ли полезна тази страница?