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

Ukázkové průzkumy ExpressionScript

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 sample surveys and the translation is 100% complete.


Úvod

Nejlepší způsob, jak se naučit používat ExpressionScript, je vyzkoušet si funkční příklady a upravit je podle svých potřeb.

Níže najdete sadu ukázkových průzkumů, které předvádějí (a umožňují otestovat), jak lze EM využít ke zlepšení vašeho průzkumu. Tyto průzkumy naleznete v distribuční složce /docs/demosurveys.


Relevance, přizpůsobení a rovnice

Přehled

Následující příklad vypočítává BMI (index tělesné hmotnosti) každého respondenta. Funkce, které jsou v tomto příkladu předvedeny, najdete níže.

Předvedené funkce EM

  1. Relevance - podpora pro výkonnou podmíněnou logiku;
  2. Piping / přizpůsobení - umožňuje vkládat či přizpůsobovat odpovědi a metadata otázek;
  3. Dynamické přizpůsobení - všimněte si, že se přehledy na stránce mění již během odpovídání na otázky.
  4. Mikropřizpůsobení - podmíněné přizpůsobení uvnitř vět a přehledů pomocí příkazů if()
  5. Rovnice - nový typ otázky, který umožňuje provádět výpočty a ukládat výsledky do databáze, a to i v případě, že je výpočet skrytý
  6. Podmíněné ověření - kritéria ověření, například minimální povolená hodnota, mohou být podmíněná - např. na základě rovnic.


Snímky obrazovky

Tento příklad vypočítává index tělesné hmotnosti (BMI), tedy výpočet z vaší hmotnosti a výšky, který určuje, zda máte podváhu, normální váhu, nadváhu, nebo obezitu. Všimněte si, že zpočátku vidíte pouze čtyři povinné otázky:



Jakmile zadáte své údaje (a můžete si vybrat, zda použijete metrické, nebo nemetrické jednotky), zobrazí se přizpůsobený přehled, který shrnuje, co jste zadali, a sděluje vám stav vaší hmotnosti:



Zde je další příklad s nemetrickými jednotkami, který ukazuje, jak se výsledek dynamicky mění:



Na interní úrovni jsou skryté otázky typu Rovnice, které převádějí data na metrická (je-li to potřeba) a ukládají metrickou výšku, hmotnost, BMI a stav hmotnosti do databáze, aniž by bylo nutné používat vlastní JavaScript.

V další sadě příkladů uvidíte, jak lze v přizpůsobených přehledech používat matematické a jiné funkce. Takto vypadá stránka před zadáním jakýchkoli údajů. Podmíněná logika zajišťuje, že se zobrazí prázdné buňky, pokud nejsou zadána žádná (nebo nečíselná) data, místo zobrazení „NaN“ nebo „Divide by Zero“.



Jakmile jsou zadávána čísla, přehled na stránce se mění a ukazuje prováděný výpočet i jeho výsledek.



V tomto ukázkovém průzkumu je mnoho dalších příkladů. Například níže uvedený snímek obrazovky ukazuje jeden z mnoha způsobů, jak lze vyplnit stránku Dynamická relevance. Jak uvádí text nápovědy, vyzkoušejte různé věky a zejména nelogické kombinace odpovědí, abyste viděli zábavné zprávy generované ve spodní části. Všimněte si také, že pokud uvedete, že máte více než jedno dítě, zpráva bude znít „Doufám, že vás baví hrát si s vašimi X dětmi“ namísto „Doufám, že vás baví hrát si s vaším dítětem“. To ukazuje, jak snadno můžete mikropřizpůsobit věty tak, aby odpovídaly pohlaví a/nebo počtu vašich respondentů. Snadno můžete dokonce časovat slovesa a skloňovat podstatná jména podle rodu a čísla.



Stažení

Chcete-li získat ukázkový průzkum, klikněte na následující odkaz: LS3_em_tailoring.zip.

Ukázkové sčítání lidu

Přehled

Toto je příklad sčítání lidu, který se ptá, kolik osob žije ve vaší domácnosti.

Ukazuje, jak může relevance na úrovni skupiny usnadnit vytvoření „smyčky“ otázek. Po vytvoření skupiny pro osobu 1 jsem tuto skupinu exportoval. Protože jsem použil názvy proměnných qcode, například p1_name, místo kódu SGQA, mohl jsem pomocí textového editoru skupinu rychle upravit a několikrát znovu importovat (např. úprava a opětovný import každé opakované skupiny trvaly asi 10 sekund, přičemž bylo zajištěno, že všechny proměnné měly jedinečné názvy a že logika na úrovni skupiny byla správná).

Můžete také použít funkci Kopírovat otázku, ta však nebude tak rychlá jako výše navržená možnost.

Ukazuje také, jak lze zabránit zobrazení zprávy o dokončení, dokud není průzkum skutečně dokončen (např. když jsou vyplněny všechny potřebné skupiny).


Předvedené funkce EM

  1. Relevance na úrovni skupiny - navazující skupiny (Osoba 1-5) se zobrazí pouze do výše zadaného počtu osob žijících v domácnosti;
  2. Přizpůsobení (tailoring) - závěrečný přehled shrnuje demografické údaje o každé osobě v domácnosti;
  3. Postupné zobrazování otázek - ať už v režimu po skupinách, nebo všechno najednou, další otázky se zobrazí, jakmile jsou zodpovězeny předchozí.


Snímky obrazovky

Průzkum vygeneruje přizpůsobený přehled zobrazující demografické údaje o zadaném počtu osob v domácnosti:



Pokud přepnete do režimu po jedné otázce, uvidíte, že rejstřík otázky přizpůsobuje. Protože uživatel uvedl, že osoba je žena, zeptá se „Jak se jmenuje?“ ve ženském tvaru. A protože jsme odpověděli „Marie“, další otázka zní „Kolik let je Marii?“



Stažení

Chcete-li stáhnout ukázkový průzkum, klikněte zde: LS3_group_relevance.zip.


Kaskádové filtry pole

Přehled

Tento průzkum vychází z návrhu průzkumu, který poskytla společnost Joy Lane Research, LLC.


Snímky obrazovky

Všimněte si následujícího:

  • Q02 zobrazuje pouze sadu produktů zaškrtnutých v Q01 (pomocí array_filter)
  • Q02 zobrazuje také „Another product“, tedy text zadaný do pole „Other electronic“ v Q01
  • Q04 zobrazuje pouze produkty z Q02, které byly zaškrtnuty (filtr pole tedy působí kaskádově)
  • Q05 zobrazuje pouze produkty z Q02, které v Q02 nebyly zaškrtnuty (pomocí kaskádového array_filter_exclude)




Stažení

Výše uvedený příklad si můžete stáhnout kliknutím na následující odkaz: Ukázkový průzkum LS2_cascading_array_filter.


Piping/přizpůsobení s použitím všech typů otázek a atributů

Přehled

Pokud si nejste jisti, jak pojmenovat proměnné (SGQA vs. Qcode), nejste v tom sami. Hlavní dokumentace sice popisuje, jak vytvářet názvy proměnných Qcode, nic však nenahradí funkční ukázku. Tento průzkum ukazuje, jak můžete pomocí ExpressionScript přistupovat k atributům otázek a odpovědím.


Pro tento příklad doporučujeme při úpravě tohoto průzkumu vypnout vestavěný HTML editor (nebo jej přepnout do vyskakovacího režimu). Vykreslení rozsáhlých HTML přehledů v režimu úprav může HTML editoru trvat minutu i déle.


Obsah

  • Příklady každého typu otázky
  • Jsou zahrnuty všechny typy otázek, které mohou používat možnost „Jiné“, abyste viděli, jak to ovlivňuje pojmenování proměnných
  • Výchozí hodnoty pro všechny typy otázek, které výchozí hodnoty podporují
  • Přizpůsobení (tailoring) - přehledy na stránce i mimo stránku zobrazující všech 16 dostupných přípon tečkové notace EM
  • Tyto přehledy zobrazují všechna aktuálně zadaná data (ukazují tedy, jak můžete vytvořit vlastní tisknutelné přehledy pro uživatele místo obrazovky tisku odpovědí)
  • Správné pojmenování všech proměnných pomocí Qcode a SGQA


Snímky obrazovky

Jde o obrovský průzkum, proto jsme se rozhodli snímky obrazovky nezahrnout. Raději si jej stáhněte a vyzkoušejte.


Stažení

Průzkum si můžete stáhnout kliknutím na následující odkaz: LS3_EM_question_attributes.lss

Tradiční ověření, nově pojaté

Přehled

Tato ukázka představuje všechny typy ověření, které využívají výrazy, a ukazuje, jak ovlivňují jednotlivé typy otázek, které ověření podporují. V mnoha případech jsou nápovědy k ověření zpočátku skryté a zobrazí se pouze tehdy, když otázka nesplní kritéria ověření (a po splnění kritérií opět zmizí).


Ukázané typy ověření

  1. min_num_value_n - minimální hodnota odpovědi
  2. max_num_value_n - maximální hodnota odpovědi
  3. min_answers - minimální požadovaný počet odpovědí
  4. max_answers - maximální povolený počet odpovědí
  5. multiflexible_min - minimální povolená hodnota odpovědi (pro typ otázky Multiflexi čísla)
  6. multiflexible_max - maximální povolená hodnota odpovědi (pro typ otázky Multiflexi čísla)
  7. min_num_value - minimální povolený součet všech odpovědí na otázku
  8. max_num_value - maximální povolený součet všech odpovědí na otázku
  9. equals_num_value - součet všech odpovědí na otázku se musí rovnat této hodnotě
  10. validation - jde o ověření otázky pomocí regulárního výrazu - lze jej použít na jednotlivé buňky


Snímky obrazovky

Pomocí nových stylů CSS se každý typ ověření zobrazí jako samostatná nápověda. Pokud jsou zobrazeny, lze je skrýt pomocí volby hide_tip. Ve výchozím nastavení se zobrazují červeným písmem, pokud otázka nesplní kritéria ověření, a zeleným, pokud je splní:



Uživatel nemůže odeslat stránku s chybami ověření. Pokud zadá nesprávné údaje, bude na to okamžitě upozorněn:



Ověření lze použít na jednotlivé buňky v poli, například v tomto příkladu, kde ověření pomocí regulárních výrazů zajišťuje, že každý záznam je správně formátované americké telefonní číslo včetně předvolby.



Stažení

Chcete-li si stáhnout výše uvedený příklad, klikněte na následující odkaz: LS3_Validation_tests.zip.


Rovnice pro ověření

Přehled

Někdy potřebujete vlastní ověření, kterého nelze dosáhnout pomocí tradičních kritérií minima a maxima. K tomu budete potřebovat volby em_validation_q a em_validation_sq, které umožňují vytvářet složité rovnice pro ověření na úrovni otázky, respektive dílčí otázky.


Na úrovni dílčí otázky také zavádíme proměnnou "this", která usnadňuje ověření každé buňky v poli, aniž byste museli znát název její proměnné. Další podrobnosti naleznete po kliknutí zde.


Ukázané funkce EM

  1. em_validation_q - rovnice, která určuje, zda je celá otázka platná
  2. em_validation_q_tip - zpráva, která se zobrazí, pokud otázka nesplní kritéria em_validation_q
  3. em_validation_sq - rovnice, která určuje, zda je každá dílčí otázka (buňka pole) platná
  4. em_validation_sq_tip - zpráva, která se zobrazí, pokud je některá z dílčích otázek neplatná.

Pokud je použita volba em_validation_sq a některá buňka je neplatná, barva pozadí této buňky se obecně změní na červenou, což signalizuje chybu.


Snímky obrazovky


Tato otázka zajišťuje, že zadáte věk svých dětí v sestupném pořadí, a to pomocí následující rovnice pro ověření:

q1_sq1 >= q1_sq2 && q1_sq2 >= q1_sq3 && q1_sq3 >= q1_sq4





V následujícím příkladu ověření zajišťuje, že na žádném řádku nejsou zodpovězeny více než 3 otázky, a to pomocí následující rovnice pro ověření:

(sum(Test_A_1, Test_A_2, Test_A_3, Test_A_4, Test_A_5) <= 3) && (sum(Test_B_1, Test_B_2, Test_B_3, Test_B_4, Test_B_5) <= 3) && (sum(Test_C_1, Test_C_2, Test_C_3, Test_C_4, Test_C_5) <= 3)

Můžete ji zapsat také následujícím způsobem; LimeSurvey ji za běhu automaticky převede na výše uvedený výraz.

(sum(self.sq_A) <= 3) && (sum(self.sq_B) <= 3) && (sum(self.sq_C) <= 3)



Stažení

Chcete-li si stáhnout ukázkový průzkum použitý ve výše uvedených příkladech, klikněte na následující odkaz: ls2_test_em_sq_validation.lss.


Relevance dílčích otázek

Přehled

Tento příklad ukazuje, jak mohou vzájemně spolupracovat array_filter a kritéria ověření. U ověření, která se týkají součtů, se berou v úvahu pouze relevantní (viditelné) hodnoty.


Ukázané funkce EM

  1. array_filter
  2. array_filter_exclude
  3. min_num_value
  4. max_num_value
  5. equals_num_value

Ukazuje také dynamické zobrazení počtu zodpovězených otázek v základních otázkách.


Snímky obrazovky

Změna počtu viditelných řádků dynamicky mění součet. Označení dílčí otázky jako irelevantní nevymaže její hodnotu. Pokud je však irelevantní, její hodnoty se do žádné rovnice nezapočítávají.



Všimněte si, co se stane, když u první otázky „Which rows should appear below“ zaškrtneme „Fifth subquestion“. Součet u druhé otázky „Enter some numbers“ je nyní 5. Přestože pátá dílčí otázka u této otázky má stále hodnotu 14 (např. když zaškrtnutí páté dílčí otázky zrušíte, uvidíte hodnotu 14 znovu), tato hodnota se do součtu nezapočítává, protože je momentálně irelevantní. Všechna irelevantní data se při odeslání vymažou (v databázi se nastaví na NULL), ale na stránce zůstávají k dispozici pro případ, že by chtěli respondenti své odpovědi změnit.



Stažení

Chcete-li si stáhnout náš příklad, klikněte zde: ls2_subquestion_relevance.lss.


Použití čárky jako oddělovače desetinné části (desetinná čárka)

Přehled

ExpressionScript zajišťuje, že do číselných polí lze zadat pouze platná čísla. Pokud zadáte neplatné číslo, budete upozorněni, že je něco špatně (např. v případě motivu fruity se celá otázka zobrazí červeně).

Všimněte si, že číselné hodnoty se v databázi vždy převádějí na zápis s tečkou jako oddělovačem desetinné části. Statistické analýzy tak budou fungovat správně.

Chcete-li změnit oddělovač desetinné části, otevřete možnosti Textové prvky na kartě Nastavení a vyhledejte funkci Oddělovač desetinné části.


Další informace o tom, co je oddělovač desetinné části, naleznete [https://en.wikipedia.org/wiki/Radix_point


Typy otázek používající oddělovač desetinné části

  1. Číselný vstup [N]
  2. Vícenásobný číselný vstup [K]
  3. Pole (Čísla) [:]
  4. Pole (Text) [;], při použití atributu numbers_only
  5. Přepínačový seznam [L], při použití atributu other_numbers_only
  6. Krátký text [S], při použití atributu numbers_only
  7. Vícenásobné krátké texty [Q], při použití atributu numbers_only
  8. Vícenásobné možnosti [M], při použití atributu other_numbers_only
  9. Vícenásobné možnosti s komentáři [P], při použití atributu other_numbers_only


Snímky obrazovky

Na následujících snímcích obrazovky můžete vidět, že jako oddělovač desetinné části lze použít čárku.



Stažení

Chcete-li si stáhnout výše uvedený příklad, klikněte na následující odkaz: ls2_comma_as_radix_separator.lss.


Skupiny pro náhodné pořadí

Přehled

Tento průzkum ukazuje, jak využít atribut random_group.

Pokud je tento atribut použit, pořadí otázek se při každém spuštění průzkumu náhodně změní. Jakmile je však průzkum spuštěn, náhodné pořadí zůstane pevné, i když změníte jazyk.


Snímky obrazovky

Pojďme se společně podívat na následující příklad. První náhodná otázka na stránce bude buď Q1, Q4, nebo Q7. Druhá náhodná otázka na stránce bude buď Q2, Q5, nebo Q8.



Zde je náhodné pořadí vygenerované při prvním testování tohoto průzkumu.



Při druhém testování průzkumu bylo vygenerováno jiné náhodné pořadí.



Když jsem však přepnul na francouzštinu (bez opětovného spuštění průzkumu), náhodné pořadí zůstalo zachováno.



Stažení

Chcete-li si stáhnout výše uvedený příklad, klikněte na následující odkaz: Randomization_Group_Test.lss


Náhodné zobrazení jedné otázky z každé skupiny

Přehled

Tento průzkum ukazuje, jak nastavit průzkum tak, aby se z každé skupiny náhodně zobrazila jedna otázka. Obsahuje 5 skupin po 6 otázkách. Na začátku, ve skupině 0, je vyplněno pět skrytých otázek typu Rovnice s názvy ask1-ask5. Každá z nich má v poli text otázky hodnotu {floor(rand(1,6.9999))}, což znamená, že proměnné ask1-ask5 budou mít každá hodnotu mezi 1 a 6. Každá otázka ve skupině má poté rovnici relevance například „ask1==N“, kde N je pořadí otázky ve skupině (třetí otázka ve skupině 1 tedy má rovnici relevance „ask1==3“).

Tento průzkum funguje stejně dobře v režimech Vše najednou, Skupina za skupinou i otázka po otázce. Protože je náhodný výběr nastaven v první skupině a ta je ve skutečnosti skrytá (všechny otázky ask1-ask5 jsou skryté), zůstává náhodný výběr pro daného respondenta stejný; každý další respondent však bude mít jiný náhodný výběr.


Ukázané funkce

  1. Typ otázky Rovnice
  2. Funkce náhodného výběru
  3. Podmíněná funkce (if)


Snímky obrazovky

Toto je Group0, která pomocí typu otázky Rovnice vybírá náhodné hodnoty od 1 do 6 pro každou skupinu (kromě poslední skupiny, která má pouze 4 otázky). Všimněte si, že funkce „if()“ nejprve zkontroluje, zda již byla hodnota ask1 nastavena, a pokud ano, použije ji. Pokud hodnota nastavena nebyla, použije se pro nastavení ask1 náhodná hodnota.



Tato skupina ukazuje, jak se proměnná (ask4) ze skupiny Group0 používá k řízení toho, která otázka bude ve čtvrté skupině viditelná.



Stažení

Chcete-li si stáhnout výše uvedený ukázkový průzkum, klikněte zde: Ukázkový průzkum s náhodnými otázkami ve skupině.


Náhodné zobrazení určitého počtu otázek ve skupině (podmnožina otázek)

  Platí pouze pro všechny náhodné otázky z jedné skupiny a pouze v případě, že je použit formát Skupina za skupinou nebo Vše najednou.



Přehled

Tento průzkum ukazuje, jak zobrazit náhodnou podmnožinu otázek ve skupině. Například zobrazit 5 náhodných otázek z 10 otázek umístěných ve skupině.

Průzkum obsahuje jednu skupinu s 10 otázkami. Všem otázkám je přiřazeno stejné jméno skupiny pro náhodné pořadí. Díky tomu se při načtení stránky zobrazí v náhodném pořadí. Každá otázka má rovnici relevance, která říká, že součet hodnot "relevanceStatus" všech ostatních otázek ve skupině je menší než počet otázek, které chcete zobrazit. Protože se relevanceStatus přiřazuje při vykreslování otázek, tento součet v podstatě udává počet předchozích otázek.

V našem příkladu 5 z 10 by tedy rovnice pro Q1 byla:

sum(Q2.relevanceStatus, Q3.relevanceStatus, Q4.relevanceStatus, Q5.relevanceStatus, Q6.relevanceStatus, Q7.relevanceStatus, Q8.relevanceStatus, Q9.relevanceStatus, Q10.relevanceStatus) LT 5

Pro Q2 by byla:

sum(Q1.relevanceStatus, Q3.relevanceStatus, Q4.relevanceStatus, Q5.relevanceStatus, Q6.relevanceStatus, Q7.relevanceStatus, Q8.relevanceStatus, Q9.relevanceStatus, Q10.relevanceStatus) LT 5

A tak dále...


Předvedené funkce

  1. proměnná relevanceStatus
  2. Náhodné pořadí

Stažení

Chcete-li si stáhnout výše uvedený příklad, klikněte na následující odkaz: Příklad průzkumu Náhodných 5 z 10.

Hodnocení seznamu produktů zadaného uživatelem

Přehled

Následující příklad ukazuje, jak můžete požádat uživatele, aby uvedli seznam produktů, které je zajímají, a poté je nechat tyto produkty ohodnotit.


Předvedené funkce ExpressionScript

  1. Přizpůsobení odpovědí - při hodnocení produktů pocházejí popisky z pole komentáře předchozí otázky typu vícenásobné možnosti
  2. Přizpůsobení škál - přizpůsobit lze i mnoho dalších pokročilých možností otázek, například záhlaví škál.


Snímky obrazovky

Tento obrázek ukazuje, že protože byly vybrány pouze produkty 1, 3 a 5, zobrazí se pouze tyto tři (pomocí atributu array_filter). Popisky řádků ve druhé otázce jsou navíc buď čísla produktů (pokud do pole komentáře nebylo nic zadáno), nebo obsah polí komentáře.



Tento obrázek ukazuje, jak se zadávají přizpůsobené odpovědi:



Zde je soubor Show Logic File pro tuto otázku, který nám umožňuje ověřit, že podmíněná logika funguje podle očekávání (např. zda se nevyskytují chyby syntaxe):



Další obrázek ukazuje skupinu, ve které zadáváte 5bodovou hodnoticí škálu (možnosti 1-5), název škály a produkty, které chcete hodnotit. Poslední otázka ukazuje, že každou část otázky typu pole lze přizpůsobit:



Další obrázek ukazuje zobrazení souboru logiky poslední otázky. Jak můžete vidět, podotázky, odpovědi i záhlaví škál lze přizpůsobit.


Stažení

Chcete-li si stáhnout výše uvedený příklad průzkumu, klikněte na následující odkaz: Příklad průzkumu Hodnocení seznamu produktů zadaného uživatelem.