Проверете логиката на проучването - Разширено
From LimeSurvey Manual
Общо
Важна опция, която ви помага да създавате и лесно да поддържате сложни анкети, е Проверете логиката на анкетата.
По време на разработката и тестването на проучването и преди активирането му е много важно да потвърдите логиката на проучването. Това е особено вярно, когато използвате сложни уравнения за уместност, приспособяване и валидиране - трябва да сте сигурни, че нищо няма да се повреди, когато стартирате проучването.
Тази функция ви позволява бързо да потвърдите точността на вашето проучване, група(и) и въпрос(и). Може да бъде достъпен от опциите на менюто в горната лента, намиращи се под настройките, свързани с проучването. Достъпен е от менюто Инструменти:
Както можете да видите по-горе, можете да стартирате тази опция четири пъти за всеки език, използван в проучването.
Описание
Опцията Провери логиката на анкетата показва всичко, което сте посочили за всеки въпрос и група (напр. име, текст, помощ, условия/уместност, правила за валидиране, настройки по подразбиране, подвъпроси, отговори) в удобен табличен формат. Той подчертава грешките и ви позволява да щракнете върху идентификаторите на въпроса и групата (или променливите, използвани в уравненията), за да отворите нови раздели на браузъра, за да редактирате тези въпроси или групи. Това улеснява бързото редактиране на всякакви грешки и опресняването на страницата за логическа проверка, за да потвърдите точността на проучването, преди да го активирате.
Дисплеят също така е проектиран да бъде четлив от изследователи и спонсори на изследването, така че те да могат да потвърдят точността на дизайна и логиката на проучването. Проверката на логиката на проучването актуализира кеша за всички изрази, използвани в рамките на активно проучване.
Той включва следните колони:
- # - показва броя на последователностите от групи и въпроси, като се започне от 0.
- Име [ ID]' - показва кода на въпроса за групата/въпроса/подвъпроса. Тези кодове могат да се използват като променливи в изрази. ID е идентификаторът на въпроса (QID) или идентификаторът на групата (GID). Това поле също показва типа на въпроса (напр. Множествен избор [M])).
- ''Уместност [ Validation] (По подразбиране) - показва следното:
- Relevance - маркираното в синтаксиса уравнение за релевантност за въпроса или групата. Ако винаги е вярно (да се показва във всеки сценарий), стойността ще бъде 1.
- Проверка - ExpressionScript автоматично генерира валидация уравнение въз основа на избраните атрибути на въпроса (напр. минимален/максимален брой отговори, минимални/максимални/равни сумарни стойности, минимални/максимални индивидуални стойности или валидиране на регулярен израз). Този раздел показва генерираното уравнение за валидиране, така че да можете да откриете дали има някакви грешки (като недефинирани променливи).
- Валидирането на ниво въпрос показва уравнението, необходимо за проверка на описаните по-горе атрибути на въпрос
- **Проверката на ниво подвъпрос показва уравнението, необходимо за прилагане на array_filter, array_filter_exclude и exclusive_option
- Default - ако въпросът има стойност по подразбиране, той се показва тук, синтаксисно маркиран (тъй като по подразбиране може да бъде израз).
- 'Текст [ Помощ] (Съвет) - показва следното:
- Текст - текстът на групата, въпроса, подвъпроса или отговора. Той е синтаксисно подчертан, за да покаже всички вградени tailoring, като по този начин ви позволява да проверите дали сте декларирали всички променливи, които планирате да използвате в приспособяването.
- Помощ - това показва помощния текст за въпроса, също маркиран със синтаксис.
- Съвет - това показва вътрешно генерирания съвет за валидиране, въз основа на атрибутите на въпроса. Същият този съвет се използва във всички стилове на анкета, плюс в екраните за анкета за печат и въвеждане на данни.
- „Атрибути на въпроса“ – това показва таблица с всички подходящи атрибути на въпроса за този въпрос. Атрибутите, които може да са уравнения, са синтаксисно маркирани, за да можете да потвърдите тяхната точност.
Редовете са цветно кодирани, както следва:
- Групи - показани са на светлосив фон
- Въпроси - показани са на светлозелен фон
- ' Подвъпроси - показани са на бледожълт фон
- Отговори - показани са на обикновен бял фон
Отговорите имат допълнителен атрибут в колоната Уместност:
- Value - това е вътрешната стойност по подразбиране, използвана от изчисленията. Ако използвате Оценки, това ще бъде стойността на оценката. В противен случай това ще бъде същото като името на отговора.
Използване
В горната част на страницата има обобщено съобщение. Ако всичко е наред, ще пише „Няма открити синтактични грешки в това проучване“, или „Тази група“ или „Този въпрос“, „сам по себе си не съдържа никакви синтактични грешки“. Ако е вярно обратното, ще се каже „Х въпроси имат синтактични грешки, които трябва да бъдат коригирани“.
Всеки въпрос, който има синтактични грешки, получава фона на най-лявата си колона (т.е. #) с червен цвят. Също така, предупреждение, посочващо броя на минималните грешки на даден въпрос, ще бъде показано под колоната Име [ID]. Следните грешки са често срещани:
- Undefined variable - ако не сте дефинирали всичките си променливи или сте въвели грешно array_filter (или различни набори от опции за отговор за array_filter), тогава някои от вашите въпроси за валидиране ще показват грешки . Недефинираните променливи са показани в червен текст, оградени с червена линия.
- Лош синтаксис - когато започнете да използвате уравнения за релевантност, може да използвате твърде много или твърде малко скоби. Такива синтактични проблеми са маркирани и оградени в червено. Ако задържите курсора на мишката върху такъв текст в червено поле, подсказка ще опише грешката.
Цветове в синтаксиса на ExpressScript
Условията и уравненията са синтаксисно маркирани, за да разберете по-лесно какво гледате:
- Зелено / Светло синьо: Променлива, която препраща към въпрос по-рано в анкетата
- Син : Функция
- Сиво: Низов израз
- Кафяв: TOKEN израз (данни за участници)
- Черно: Оператор
Неща за проверка:
- Лилаво: Променлива, която препраща към въпрос по-късно в анкетата. Обикновено това е грешка и трябва да се провери.
- Червена или червена рамка: Несъществуваща променлива или препратка към по-ранен въпрос или синтактична грешка - обикновено трябва да се провери.
Недефинирани променливи
Ако се използват недефинирани променливи, съответното име на променливата ще бъде оцветено в червено и оградено с червена линия. Ако задържите курсора на мишката върху името на променливата, то ще каже „недефинирана променлива“:
}}
Лош синтаксис
Повечето от грешките, свързани с израза, са свързани с лош синтаксис. Това е свързано с факта, че администраторите на проучването обикновено пропускат да добавят къдрава скоба, да използват правилно скобите или използват изрази погрешно:
Ето много добри примери за използването на маркиране на синтаксис.
Лош персонализиран JavaScript
Грешките в JavaScript също ще бъдат подчертани при проверката на логиката на проучването:
Ускоряване на редактирането и валидирането
Целият маркиран със синтаксис текст има вградени подсказки, върху които може да се кликне:
- Подсказки
- Функции – задържането на мишката ви позволява да видите целта и дефиницията на синтаксиса на функцията;
- Имена на променливи – задържането на мишката ви позволява да видите позицията (група, последователност от въпроси), текста на въпроса и допустимите отговори за въпроса.
- Действия
- Имена на променливи - щракването върху името на променливата отваря нов прозорец, който ви позволява за редактиране на въпроса. Това улеснява навигацията и проверката на логиката - просто продължавайте да щракате върху имената на променливи с уместност или критерии за валидиране за въпроса, за да видите откъде идват и как се използват.
Примери
Следните примери са взети от ExpressionScript примерни проучвания. Можете да намерите екранни снимки на изпълнявани проучвания, обяснения и изтегляния на тази страница.
Индекс на телесна маса
Ето екранни снимки на този пример.
Това е изгледът за пренареждане на въпросите за изчисляването на индекса на телесната маса. Можете да видите уравненията за уместност за тегло, височина и ИТМ в колоната „Въпрос“:
За по-добър преглед на проучването, проверете страницата с логиката на проучването:
Този пример за проучване също е добър пример за вложени оператори if() за генериране на "статус на тегло".
Каскадна логика
Ето екранни снимки на този пример.
Той показва логиката за проверка на подвъпроса, която се генерира автоматично, когато използвате array_filter и array_filter_exclude. Този пример също така показва как можете да замените персонализираната стойност „Друго“ (отговорът за Q02_other е Q01_other).
Q05 в този пример показва едновременното използване на array_filter и array_filter_exclude съответно на Q01 и Q02. Този пример демонстрира възможности за каскаден array_filter. Обърнете внимание, че една от основните причини за показване на критериите за валидиране на ниво въпрос и подвъпрос е да се гарантира, че не сте направили никакви правописни грешки при посочване на имената на променливите array_filter или array_filter_exclude (или в случай, че използвате различни имена на променливи за вашия списък с филтрирани подвъпроси). Ако имате такива правописни грешки, всички невалидни имена на променливи ще се покажат в червено, което означава, че са недефинирани, което ви позволява бързо да коригирате проблема.
Динамична уместност
Този пример демонстрира динамична каскадна логика на уместност за контрол на показването на видимостта на въпроса. Можете да изтеглите този пример тук.
Също така имайте предвид, че въпросите се показват само ако са изпълнени определени критерии за валидиране. Например, ако дадено лице заяви, че има 2 деца, определени въпроси трябва да бъдат попълнени от респондента (kid1 и kid2).
Уместност на ниво група
Този пример показва как уместността на ниво група се появява в логическата проверка. Ето екранни снимки на примера, описан по-долу.
Както можете да видите, уравнението за релевантност на ниво група (cohabs > 1 && p1_rel != "") се появява в сивия ред Лице 2 за G-2.
Може също да забележите, че всички въпроси са задължителни. Но ако групата е неуместна, всички нейни въпроси също. В резултат на това тези въпроси са наистина задължителни само ако групата е подходяща.
Можете също така да забележите, че някои въпроси се показват само ако отговорът на предишния въпрос не е празен. Може да видите по-долу, че ако p2_sex не е попълнено, p2_name няма да бъде показано, въпреки че е задължителен въпрос. Задължителният въпрос p2_age също няма да се показва, ако p2_name не е попълнено. Тези въпроси могат да се считат за "условно задължителни".
Освен това имайте предвид, че съобщенията съвет също се създават автоматично за вас. Те са организирани по диапазон от стойности (min/max), диапазон от сумарни стойности (min/max/equals), брой отговори (min/max) и т.н. (зависи от използвания тип въпрос и активните атрибути). Понякога искате да потвърдите диапазон от отговори, но не искате да показвате това, което може да изглежда като глупави съвети за валидиране на потребителя. В такива случаи можете да използвате опцията за въпрос hide_tip (както в този случай, за да избегнете да казвате на потребителя, че възрастта трябва да е между 0 и 115, освен ако не се опита да въведе грешна стойност - вижте p2_age ).
Запетая като радикален (десетичен) разделител
Въпреки че LimeSurvey напълно поддържа използването на запетая като разделител на основата (десетичен) по време на изпълнение, все пак трябва да използвате десетична точка като разделител на основата по време на проектиране (напр., когато задавате минимални/максимални стойности в атрибути на разширени въпроси). Работещият пример може да бъде намерен тук.
Също така не забравяйте, че логиката валидиране се създава за вас автоматично от активираните атрибути на въпроса. Уравненията може да изглеждат непосилни, но не е нужно да се тревожите за тях.