x

Hlavní kapitoly

  1. LimeSurvey Cloud vs LimeSurvey CE
  2. Rychlý průvodce - LimeSurvey 3.0+
  3. Instalace - LimeSurvey CE
  4. Jak vytvořit dobrý průzkum (návod)
  5. Začínáme
  6. Správa LimeSurvey
  7. Průzkumy - úvod
  8. Nastavení průzkumu
  9. Menu průzkumu
  10. Struktura průzkumu
  11. Otázky - úvod
  12. Skupiny otázek - úvod
  13. Průzkumy - správa
  14. Možnosti panelu nástrojů průzkumu
  15. Vícejazyčný průzkum
  16. ExpressionScript Engine - Rychlý průvodce
  17. Nezařazené a pokročilé funkce
  18. Obecné FAQ
  19. Řešení potíží
  20. Řešení a obejití problémů
  21. Licence
  22. Záznam změn verzí
  23. Zásuvné moduly
 Actions

ExpressionScript Engine - Rychlý průvodce

From LimeSurvey Manual

Tato stránka mohla být přeložena strojově a může obsahovat chyby. Zobrazit anglický originál · Vylepšit tento překlad
This page is a translated version of the page ExpressionScript Engine - Quick start guide and the translation is 100% complete.


Rychlý průvodce

V aplikaci LimeSurvey můžete své průzkumy dále přizpůsobit pomocí ExpressionScriptu (zkráceně: ES). Poznámka: „ExpressionScript se v dřívějších verzích jmenoval Expression Manager (EM). Pokud někde narazíte na název Expression Manager, jde pouze o staré jméno ES.“

ES lze použít k určení následujícího:

  1. Navigace/větvení - umožňuje, aby odpovědi respondenta změnily pořadí, ve kterém se otázky zobrazují;
  2. Přizpůsobení/piping - pomáhá formulovat otázku (například odkazem na předchozí odpovědi nebo skloňováním vět podle věku či pohlaví vašich respondentů) nebo vytvářet vlastní přehledy (například hodnocení nebo přizpůsobená doporučení);
  3. Ověření - zajišťuje, že odpovědi splňují určitá kritéria, například minimální a maximální hodnoty nebo určitý vstupní vzor.

ES poskytuje intuitivní způsob, jak určit logiku pro každou z těchto funkcí. Platným výrazem je téměř vše, co lze zapsat jako standardní matematickou rovnici.

ES v současnosti nabízí přístup k 70 funkcím a lze ji snadno rozšířit o další. Umožňuje také přistupovat k vašim proměnným pomocí lidsky čitelných názvů proměnných (místo názvů SGQA).

Následující části ukazují hlavní místa, kde se ES používá.


Relevance (řízení navigace/větvení)

Některé průzkumy používají „Goto logiku“, kdy jste například po odpovědi na otázku Question1 možností C přesměrováni na otázku Question5. Tento přístup je velmi omezený, protože je obtížné jej ověřit. Navíc se snadno rozbije, když musíte změnit pořadí otázek. ES naproti tomu používá booleovské rovnice relevance k určení všech podmínek, za kterých může být otázka platná. Pokud je otázka relevantní, zobrazí se; v opačném případě není použitelná a do databáze se uloží hodnota „NULL“.

Poznámka: Je to podobné tomu, co lze udělat pomocí editoru podmínek, ale ES umožňuje snadno zadat mnohem složitější a výkonnější kritéria (a umožňuje použít název proměnné místo identifikátorů SGQA).




Abychom lépe pochopili pojem relevance, zaměřme se na následující průzkum, který počítá index tělesné hmotnosti (BMI) respondentů. Stáhnete jej kliknutím na tento odkaz: Ukázkový průzkum Index tělesné hmotnosti.

Rovnice relevance je zobrazena níže ve sloupci Relevantnost za názvem proměnné. Hodnoty relevance u weight, weight_units, height a height_units jsou všechny 1 (výchozí hodnota), což znamená, že se tyto otázky zobrazují vždy. Relevance pro BMI však je {!is_empty(height) and !is_empty(weight)}, což znamená, že BMI se vypočítá, pouze pokud respondent zadá hodnotu výšky i hmotnosti (a vyhne se tak riziku chyby dělení nulou). Otázka „Report“ se také zobrazí, pouze pokud respondent odpoví na všechny čtyři hlavní otázky (height, heightunits, weight, weightunits).



Poznámka: Obrázek výše pochází ze souboru logiky průzkumu, který umožňuje před aktivací průzkumu vyhledat syntaktické chyby.


Relevance se zobrazuje a lze ji upravit, když:

  • chcete zobrazit/upravit relevanci na úrovni otázky
  • chcete zobrazit/upravit relevanci na úrovni skupiny


Zobrazení / úprava relevance na úrovni otázky

Tato rovnice počítá index tělesné hmotnosti (BMI). Zobrazí se pouze v případě, že osoba zadá svou výšku a hmotnost.



Toto je obrazovka úprav pro otázku „BMI“.



Všimněte si, že při zadávání rovnice relevance se složené závorky nepoužívají.


Zobrazení / úprava relevance na úrovni skupiny

Zaměřme se nyní na další příklad - jednoduchý sčítací průzkum. Stáhnete jej kliknutím na tento odkaz: Ukázkový sčítací průzkum.

První stránka se ptá, kolik lidí s vámi žije, a ukládá to do proměnné „cohabs“. Tato stránka se zobrazí, pouze pokud s vámi žije více než jedna osoba (zobrazí se pro druhou osobu, která s vámi bydlí). Také p2name, p2age a p2sum se zobrazí, pouze pokud otázka před každou z nich obsahuje odpověď.



Skupina tedy obsahuje také kritéria relevance na úrovni otázek, takže se některé otázky zobrazí, pouze pokud jste před nimi odpověděli na určité otázky (např. p2age se zobrazí, pokud byla zodpovězena otázka p2name). ES za vás kombinuje relevanci na úrovni skupiny a otázky. Otázky ve skupině se kladou, pouze pokud je relevantní skupina jako celek. Poté se kladou pouze ty otázky ve skupině, které jsou relevantní.

Zde je snímek obrazovky pro úpravu relevance na úrovni skupiny Cohabitant 2:



Všimněte si, že při zadávání rovnice relevance se složené závorky nepoužívají.

Přizpůsobení/piping

ES vám umožňuje snadno provádět jednoduché i složité podmíněné přizpůsobení. Někdy potřebujete jen jednoduchou náhradu, například: „Uvedli jste, že jste koupili [Produkt]. Co se vám na něm líbilo nejvíce?“. Jindy potřebujete podmíněnou náhradu, například „[Pan/Paní] [Příjmení], byli byste ochotni vyplnit náš průzkum?“. V tomto případě chcete použít „pan“ nebo „paní“ podle pohlaví osoby. Jindy potřebujete ještě složitější náhradu (například na základě matematického výpočtu). ES podporuje všechny tyto typy přizpůsobení/pipingu.


Podmíněné rovnice

Příklad s indexem tělesné hmotnosti (BMI) ukazuje, jak lze vypočítat BMI respondenta, a to i když zadává výšku a hmotnost ve dvou různých jednotkách (cm vs. palce a kg vs. libry):



V tomto případě je weightkg {if(weightunits == "kg", weight, weight * 0.453592)}. Funkce "if()" znamená, že pokud respondent zadá hmotnost v kilogramech, použije se tato hodnota, jinak se zadaná hodnota (alternativou jsou libry) vynásobí číslem 0.453592, aby se převedla na kilogramy. Proměnná heightm používá podobný postup k výpočtu výšky v metrech (výška v cm/100), a to i v případě, že byla výška zadána v palcích (1 metr = 3.28084 palce).

BMI se vypočítá takto: {weightkg / (heightm * heightm)}.

Nakonec zpráva v přehledu podmíněně přizpůsobí text respondentovi a sdělí mu, co zadal. (např. "Uvedli jste, že měříte 2 metry a vážíte 70 kg.")

Na obrázku níže používá weightstatus vnořené příkazy "if()" k zařazení osoby do kategorií od podváhy po těžkou obezitu. Jeho rovnici zobrazíte kontrolou jeho logiky:



V okně úprav této otázky můžete vidět dvě věci:

  1. Při přizpůsobení textu musí být výrazy uzavřeny ve složených závorkách.
  2. Výrazy mohou zabírat více řádků, pokud chcete, jako v tomto případě, usnadnit čtení vnořené podmíněné logiky.



Přizpůsobené otázky, odpovědi a přehledy

Poznámka: Dynamické přizpůsobení textu nemusí fungovat, pokud jsou možnosti odpovědí zobrazeny ve výběrových polích na stejné stránce s otázkou. Důvodem je, že přizpůsobení vkládá značku <span>, která není uvnitř možností výběru platná.

Přehled BMI vypadá takto:



Zde je okno úprav pro stejnou otázku.



Cokoli ve složených závorkách je považováno za výraz a na předchozím obrázku je zvýrazněno syntaxí (barevně odlišeno). Pokud se dopustíte překlepů (například chybně napsaných nebo nedefinovaných názvů proměnných či funkcí), ES zobrazí chybu. V našem příkladu níže:

  • heightunit.shown je nedefinovaný název proměnné (správně je heightunits.shown) a
  • "rnd()" je nedefinovaná funkce (správný název funkce je "round()").

V obou případech jsou chyby umístěny v červeném rámečku, aby bylo snazší je najít a opravit.



Můžete také vidět, že lze rychle vytvořit složité přehledy, například tabulku zadaných hodnot nebo přizpůsobená doporučení.

Pamatujte, prosím, že při přizpůsobení textu musí být výrazy uzavřeny ve složených závorkách, aby LimeSurvey věděl, které části otázky jsou volný text a které má zpracovat engine ExpressionScript.


Ověření

ES řídí fungování většiny pokročilých možností otázek. Ty ovlivňují například minimální/maximální počet odpovědí, minimální/maximální jednotlivé hodnoty, minimální/maximální součet hodnot a kontrolu, zda zadané hodnoty odpovídají určeným vzorům řetězců. Jakákoli hodnota v těchto polích je považována za výraz, takže můžete vytvářet kritéria minima/maxima se složitými podmíněnými vztahy k jiným otázkám.

Ve všech těchto případech, protože pokročilý atribut otázky je vždy považován za výraz, při jeho zadávání složené závorky nepoužíváte.

Stránka s ukázkovými průzkumy obsahuje mnoho funkčních příkladů s různými výrazy pro ověření.

ExpressionScript - prezentace

Další informace o ExpressionScript a o tom, jak můžete pomocí různých výrazů vylepšit svůj průzkum, najdete na následujícím odkazu.