Пропускане на въпроси
Логиката на пропускане, известна също като разклоняване или условна логика, ви позволява да създавате динамични анкети, адаптиращи се към отговорите на респондентите. В 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
- Поддържайте простота: Избягвайте прекалено сложни условия за релевантност, когато е възможно.
- Тествайте задълбочено: Използвайте функцията за преглед на rtSurvey, за да тествате всички възможни пътища в анкетата.
- Помислете за производителността: Много сложната логика на пропускане може да засегне производителността на анкетата, особено на мобилни устройства.
- Използвайте ясни наименования на променливи: Това прави изразите за релевантност по-лесни за четене и поддръжка.
- Документирайте логиката: Добавяйте бележки за обяснение на сложни модели на пропускане, особено за екипно сътрудничество.
- Имайте предвид анализа на данни: Пропуснатите въпроси ще доведат до липсващи данни. Планирайте анализа си съответно.
Отстраняване на неизправности с логиката на пропускане
- Синтактични грешки: Уверете се, че всички
${ }са правилно затворени и изписани. - Кръгови препратки: Избягвайте създаването на цикли, при които въпросите зависят един от друг.
- Чувствителност към регистъра: Помнете, че опциите за отговор са чувствителни към регистъра в изразите за релевантност.
- Числени сравнения: Използвайте подходящи оператори (
<,>,=) за числени сравнения.
Заключение
Ефективното използване на логиката на пропускане може значително да подобри изживяването на респондентите и качеството на данните в rtSurvey проектите. Чрез използването на разширените функции на rtSurvey и следването на най-добрите практики, можете да създавате динамични, ефективни анкети, адаптиращи се към уникалната ситуация на всеки респондент.