x

Hlavné kapitoly

  1. LimeSurvey Cloud vs LimeSurvey CE
  2. Rýchly sprievodca - LimeSurvey 3.0+
  3. Inštalácia - LimeSurvey CE
  4. Ako vytvoriť dobrý prieskum (príručka)
  5. Začíname
  6. Správa LimeSurvey
  7. Prieskumy - úvod
  8. Nastavenia prieskumu
  9. Menu prieskumu
  10. Štruktúra prieskumu
  11. Otázky – úvod
  12. Skupiny otázok - úvod
  13. Prieskumy - správa
  14. Možnosti panela nástrojov prieskumu
  15. Viacjazyčný prieskum
  16. ExpressionScript Engine - Príručka rýchleho štartu
  17. Nezaradené a pokročilé funkcie
  18. Všeobecné časté otázky
  19. Riešenie problémov
  20. Riešenia a obchádzky
  21. Licencia
  22. Záznam zmien verzií
  23. Doplnky
 Actions

Ukážkové prieskumy ExpressionScript

From LimeSurvey Manual

Táto stránka mohla byť preložená strojovo a môže obsahovať chyby. Zobraziť anglický originál · Vylepšiť tento preklad
This page is a translated version of the page ExpressionScript sample surveys and the translation is 100% complete.


Úvod

Najlepší spôsob, ako sa naučiť používať ExpressionScript, je hrať sa s funkčnými príkladmi a upravovať ich podľa vlastných potrieb.

Nižšie nájdete sadu ukážkových prieskumov, ktoré predvádzajú (a umožňujú testovať), ako možno EM využiť na vylepšenie vášho prieskumu. Tieto prieskumy nájdete v priečinku /docs/demosurveys v distribúcii.


Relevantnosť, prispôsobenie a rovnice

Prehľad

Nasledujúci príklad vypočíta BMI (index telesnej hmotnosti) každého respondenta. Nižšie nájdete funkcie, ktoré sú v tomto príklade predvedené.

Predvedené funkcie EM

  1. Relevantnosť - podpora výkonnej podmienenej logiky;
  2. Piping / prispôsobenie - umožňuje prenášať alebo prispôsobovať odpovede a metadáta otázok;
  3. Dynamické prispôsobenie - všimnite si, že sa správy na stránke menia, keď odpovedáte na otázky.
  4. Mikro-prispôsobenie - podmienené prispôsobenie v rámci viet a správ pomocou príkazov if()
  5. Rovnice - nový typ otázky, ktorý umožňuje robiť výpočty a ukladať výsledky do databázy, aj keď je výpočet skrytý
  6. Podmienená validácia - kritériá validácie, ako napríklad minimálna povolená hodnota, môžu byť podmienené - napr. na základe rovníc.


Snímky obrazovky

Tento príklad vypočíta index telesnej hmotnosti (BMI), teda výpočet z vašej hmotnosti a výšky, ktorý určuje, či máte podváhu, normálnu hmotnosť, nadváhu alebo obezitu. Všimnite si, že na začiatku vidíte iba štyri povinné otázky:



Keď zadáte svoje údaje (a môžete si vybrať, či použijete metrické alebo nemetrické jednotky), zobrazí sa prispôsobená správa, ktorá zhŕňa zadané údaje a informuje vás o stave vašej hmotnosti:



Tu je iný príklad s nemetrickými jednotkami, ktorý ukazuje, ako sa výsledok dynamicky mení:



Na internej úrovni sú skryté otázky typu Rovnica, ktoré prevádzajú údaje na metrické jednotky (ak je to potrebné) a ukladajú metrickú výšku, hmotnosť, BMI a stav hmotnosti do databázy bez potreby vlastného JavaScriptu.

V nasledujúcej sade príkladov uvidíte, ako môžete v prispôsobených správach používať matematické a iné funkcie. Takto vyzerá stránka predtým, než zadáte akékoľvek údaje. Podmienená logika zabezpečuje zobrazenie prázdnych buniek, ak nie sú zadané žiadne (alebo nečíselné) údaje, namiesto zobrazenia „NaN“ alebo „Divide by Zero“.



Keď sa zadávajú čísla, správa na stránke sa mení a zobrazuje vykonávaný výpočet a jeho výsledok.



V tomto ukážkovom prieskume je mnoho ďalších príkladov. Napríklad snímka obrazovky nižšie ukazuje jeden z desiatok spôsobov, ako možno vyplniť stránku Dynamická relevantnosť. Ako uvádza pomocný text, vyskúšajte rôzne vekové údaje a najmä nelogické kombinácie odpovedí, aby ste videli zábavné správy generované v spodnej časti. Všimnite si tiež, že ak uvediete, že máte viac ako jedno dieťa, správa znie „I hope you enjoy playing with your X children“ namiesto „I hope you enjoy playing with your child“. To ukazuje, ako môžete jednoducho mikro-prispôsobiť vety tak, aby zodpovedali rodu a/alebo počtu vašich respondentov. Môžete dokonca jednoducho časovať slovesá a skloňovať podstatné mená podľa rodu a čísla.



Stiahnutie

Ak chcete získať ukážkový prieskum, kliknite na nasledujúci odkaz: LS3_em_tailoring.zip.

Ukážkové sčítanie

Prehľad

Toto je príklad sčítania, ktorý sa pýta, koľko osôb žije vo vašej domácnosti.

Ukazuje, ako môže relevantnosť na úrovni skupiny uľahčiť implementáciu „cyklu“ otázok. Po vytvorení skupiny pre Osobu 1 som skupinu exportoval. Keďže som namiesto kódu SGQA použil názvy premenných qcode ako p1_name, mohol som pomocou textového editora rýchlo upraviť a znova importovať skupinu niekoľkokrát (napr. úprava a opätovný import každej opakujúcej sa skupiny trvali asi 10 sekúnd, pričom som zabezpečil, že všetky premenné mali jedinečné názvy a logika na úrovni skupiny bola správna).

Môžete tiež použiť funkciu Skopírovať otázku, nebude však taká rýchla ako vyššie navrhovaná možnosť.

Ukazuje to tiež, ako zabrániť zobrazeniu správy o dokončení, kým nie je prieskum skutočne dokončený (napr. keď sú vyplnené všetky potrebné skupiny).


Demonštrované funkcie EM

  1. Relevantnosť na úrovni skupiny - Nadväzujúce skupiny (Osoba 1-5) sa zobrazia najviac do počtu zadaných spolubbývajúcich;
  2. Prispôsobenie (tailoring) - Záverečný report sumarizuje demografické údaje o každom spolubývajúcom;
  3. Postupné zobrazovanie otázok - V režime po skupinách aj všetko naraz sa nasledujúce otázky zobrazia až po zodpovedaní predchádzajúcich.


Snímky obrazovky

Prieskum vygeneruje prispôsobený report zobrazujúci demografické údaje zadaného počtu spolubývajúcich:



Ak prepnete do režimu po jednej otázke, uvidíte, že index prispôsobuje otázky. Keďže používateľ uviedol, že osoba je žena, otázka znie „Ako sa volá?“ (v ženskom rode). A keďže sme odpovedali „Mária“, ďalšia otázka znie „Koľko rokov má Mária?“



Stiahnutie

Ak si chcete stiahnuť vzorový prieskum, kliknite sem: LS3_group_relevance.zip.


Kaskádové filtre poľa

Prehľad

Tento prieskum vychádza z návrhu prieskumu, ktorý poskytla spoločnosť Joy Lane Research, LLC.


Snímky obrazovky

Všimnite si nasledovné:

  • Q02 zobrazuje iba produkty zaškrtnuté v Q01 (pomocou array_filter)
  • Q02 zobrazuje aj „Another product“, text zadaný do poľa „Other electronic“ v Q01
  • Q04 zobrazuje iba produkty z Q02, ktoré boli zaškrtnuté (filter poľa teda pôsobí kaskádovo)
  • Q05 zobrazuje iba produkty z Q02, ktoré neboli zaškrtnuté v Q02 (pomocou kaskádového array_filter_exclude)




Stiahnutie

Vyššie uvedený príklad si stiahnete kliknutím na nasledujúci odkaz: Príklad prieskumu LS2_cascading_array_filter.


Piping/prispôsobenie pomocou všetkých typov otázok a atribútov

Prehľad

Ak si nie ste istí, ako pomenovať premenné (SGQA vs. Qcode), nie ste v tom sami. Hoci hlavná dokumentácia popisuje ako vytvoriť názvy premenných Qcode, nič sa nevyrovná funkčnej ukážke. Tento prieskum ukazuje, ako môžete pomocou ExpressionScript pristupovať k atribútom otázok a odpovediam.


Pri tomto príklade odporúčame pri úprave prieskumu vypnúť zabudovaný HTML editor (alebo ho prepnúť do režimu vyskakovacieho okna). Vykreslenie rozsiahlych HTML reportov v HTML editore v režime úprav môže trvať aj minútu či dlhšie.


Obsah

  • Príklady každého typu otázky
  • Sú zahrnuté všetky typy otázok, ktoré môžu používať možnosť „iné“, aby ste videli, ako to ovplyvňuje pomenovanie premenných
  • Predvolené hodnoty pre všetky typy otázok, ktoré predvolené hodnoty podporujú
  • Prispôsobenie - Reporty na stránke aj mimo nej zobrazujúce všetkých 16 dostupných prípon bodkovej notácie EM.
  • Tieto reporty zobrazujú všetky aktuálne zadané údaje (ukazujú teda, ako môžete vytvoriť vlastné tlačiteľné reporty pre používateľov namiesto obrazovky s tlačou odpovedí)
  • Správne pomenovanie všetkých premenných pomocou Qcode aj SGQA


Snímky obrazovky

Ide o obrovský prieskum, preto sme sa rozhodli nezahrnúť snímky obrazovky. Namiesto toho si ho stiahnite a vyskúšajte.


Stiahnutie

Prieskum si stiahnete kliknutím na nasledujúci odkaz: LS3_EM_question_attributes.lss

Tradičná validácia v novom svetle

Prehľad

Táto ukážka predstavuje všetky typy validácie, ktoré využívajú výrazy, a ich vplyv na jednotlivé typy otázok, ktoré validáciu podporujú. V mnohých prípadoch sú tipy k validácii na začiatku skryté a zobrazia sa, len ak otázka nesplní kritériá validácie (a keď otázka kritériá splní, opäť zmiznú).


Ukážka typov validácie

  1. min_num_value_n - minimálna hodnota odpovede
  2. max_num_value_n - maximálna hodnota odpovede
  3. min_answers - minimálny požadovaný počet odpovedí
  4. max_answers - maximálny povolený počet odpovedí
  5. multiflexible_min - minimálna povolená hodnota odpovede (pre typ otázky Pole (číselné s viacerými možnosťami))
  6. multiflexible_max - maximálna povolená hodnota odpovede (pre typ otázky Pole (číselné s viacerými možnosťami))
  7. min_num_value - minimálny povolený súčet všetkých odpovedí na otázku
  8. max_num_value - maximálny povolený súčet všetkých odpovedí na otázku
  9. equals_num_value - súčet všetkých odpovedí na otázku sa musí rovnať tejto hodnote
  10. validácia - ide o validáciu otázky pomocou regulárneho výrazu - môže sa použiť na jednotlivé bunky


Snímky obrazovky

Vďaka novým štýlom CSS sa každý typ validácie zobrazí ako samostatný tip. Ak sa zobrazujú, možno ich skryť pomocou možnosti hide_tip. Predvolene sa zobrazujú červeným písmom, ak otázka kritériá validácie nespĺňa, a zeleným, ak ich spĺňa:



Používateľ nemôže odoslať stránku, ktorá obsahuje chyby validácie. Ak zadá nesprávne údaje, bude na to okamžite upozornený:



Validáciu je možné použiť na jednotlivé bunky v poli, ako v tomto príklade, kde validácie pomocou regulárnych výrazov zabezpečujú, že každý záznam je správne naformátované americké telefónne číslo vrátane smerového čísla.



Stiahnutie

Ak si chcete stiahnuť vyššie uvedený príklad, kliknite na nasledujúci odkaz: LS3_Validation_tests.zip.


Validačné rovnice

Prehľad

Niekedy potrebujete vlastnú validáciu, ktorú nemožno dosiahnuť pomocou tradičných kritérií minima a maxima. Na tento účel použite možnosti em_validation_q a em_validation_sq, ktoré umožňujú zostaviť komplexné validačné rovnice na úrovni otázky, respektíve podotázky.


Na úrovni podotázky zavádzame aj premennú "this", vďaka ktorej možno jednoducho validovať každú bunku v poli bez nutnosti poznať názov jej premennej. Podrobnosti nájdete po kliknutí sem.


Ukážka funkcií EM

  1. em_validation_q - rovnica, ktorá určuje, či je celá otázka platná
  2. em_validation_q_tip - správa, ktorá sa zobrazí, ak otázka nesplní kritériá em_validation_q
  3. em_validation_sq - rovnica, ktorá určuje, či je každá podotázka (bunka poľa) platná
  4. em_validation_sq_tip - správa, ktorá sa zobrazí, ak je ktorákoľvek z podotázok neplatná.

Vo všeobecnosti platí, že ak sa používa em_validation_sq a ktorákoľvek bunka je neplatná, farba pozadia tejto bunky sa zmení na červenú, čím signalizuje chybu.


Snímky obrazovky


Táto otázka zabezpečuje, že vek svojich detí zadáte v zostupnom poradí, a to pomocou nasledujúcej validačnej rovnice:

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





V nasledujúcom príklade validácia zabezpečuje, že v žiadnom riadku nie je zodpovedaných viac ako 3 otázky, a to pomocou nasledujúcej validačnej rovnice:

(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)

Rovnicu môžete zapísať aj nasledujúcim spôsobom. LimeSurvey ju počas behu automaticky prevedie na vyššie uvedený výraz.

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



Stiahnutie

Ak si chcete stiahnuť vzorový prieskum použitý vo vyššie uvedených príkladoch, kliknite na nasledujúci odkaz: ls2_test_em_sq_validation.lss.


Relevantnosť podotázok

Prehľad

Tento príklad ukazuje, ako môžu vzájomne pôsobiť array_filter a kritériá validácie. Pri validáciách, ktoré sa týkajú súčtov, sa zohľadňujú iba relevantné (viditeľné) hodnoty.


Ukážka funkcií EM

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

Ukazuje tiež dynamické zobrazenie počtu zodpovedaných otázok v základných otázkach.


Snímky obrazovky

Zmenou počtu viditeľných riadkov sa dynamicky mení súčet. Označenie podotázky ako nerelevantnej nevymaže jej hodnotu. Ak je však nerelevantná, jej hodnoty sa nezapočítavajú do žiadnej rovnice.



Všimnite si, čo sa stane, keď pri prvej otázke „Which rows should appear below“ zaškrtneme „Fifth subquestion“. Súčet pri druhej otázke „Enter some numbers“ je teraz 5. Hoci podotázka 5 tejto otázky má stále hodnotu 14 (ak zrušíte zaškrtnutie piatej podotázky, hodnotu 14 uvidíte znova), táto hodnota sa do súčtu nezapočíta, pretože je momentálne nerelevantná. Všetky nerelevantné údaje sa pri odoslaní vymažú (v databáze sa nastavia na NULL), na stránke však zostanú dostupné pre prípad, že by respondenti chceli svoje odpovede zmeniť.



Stiahnutie

Ak si chcete stiahnuť náš príklad, kliknite sem: ls2_subquestion_relevance.lss.


Použitie čiarky ako oddeľovača desatinných miest (desatinná čiarka)

Prehľad

ExpressionScript zaisťuje, že do číselných polí je možné zadať iba platné čísla. Ak zadáte neplatné číslo, zobrazí sa upozornenie, že niečo nie je v poriadku (napr. v motíve fruity sa celá otázka zafarbí načerveno).

Číselné hodnoty sa v databáze vždy ukladajú s bodkou ako oddeľovačom desatinných miest. Vďaka tomu štatistické analýzy fungujú správne.

Ak chcete zmeniť oddeľovač desatinných miest, otvorte možnosti Textové prvky v záložke Nastavenia a vyhľadajte funkciu Oddeľovač desatinných miest.


For more information on what a radix separator is, click [https://en.wikipedia.org/wiki/Radix_point


Typy otázok využívajúce oddeľovač desatinných miest

  1. Číselný vstup [N]
  2. Viacnásobný číselný vstup [K]
  3. Otázky s číselnou hodnotou z rozbaľovacieho poľa [:]
  4. Otázky s textovou odpoveďou [;], pri použití atribútu numbers_only
  5. Zoznam (Radio) [L], pri použití atribútu other_numbers_only
  6. Krátky text [S], pri použití atribútu numbers_only
  7. Viacnásobný krátky text [Q], pri použití atribútu numbers_only
  8. Možnosť výberu viacerých možností [M], pri použití atribútu other_numbers_only
  9. Možnosť výberu viacerých možností s komentárom [P], pri použití atribútu other_numbers_only


Snímky obrazovky

Na nasledujúcich snímkach obrazovky si môžete všimnúť, že ako oddeľovač desatinných miest je možné použiť čiarku.



Stiahnutie

Ak si chcete stiahnuť vyššie uvedený príklad, kliknite na nasledujúci odkaz: ls2_comma_as_radix_separator.lss.


Skupiny náhodného výberu

Prehľad

Tento prieskum ukazuje, ako používať atribút random_group.

Ak sa tento atribút použije, poradie otázok sa pri každom spustení prieskumu náhodne zmení. Po spustení prieskumu však zostane poradie nezmenené, aj keď zmeníte jazyk.


Snímky obrazovky

Pozrime sa spoločne na nasledujúci príklad. Prvou náhodnou otázkou na stránke bude buď Q1, Q4, alebo Q7. Druhou náhodnou otázkou na stránke bude buď Q2, Q5, alebo Q8.



Toto je náhodné poradie vygenerované pri prvom testovaní tohto prieskumu.



Pri druhom testovaní prieskumu sa vygenerovalo iné náhodné poradie.



Keď som však prepol jazyk na francúzštinu (bez opätovného spustenia prieskumu), poradie zostalo nezmenené.



Stiahnutie

Ak si chcete stiahnuť vyššie uvedený príklad, kliknite na nasledujúci odkaz: Randomization_Group_Test.lss


Náhodné zobrazenie jednej otázky na skupinu

Prehľad

Tento prieskum ukazuje, ako nastaviť prieskum tak, aby náhodne zobrazil jednu otázku z každej skupiny. Obsahuje 5 skupín po 6 otázok. Na začiatku, v skupine 0, je naplnených päť skrytých otázok typu Rovnica s názvami ask1-ask5. Každá z nich má v poli Text otázky hodnotu {floor(rand(1,6.9999))}, čo znamená, že premenné ask1-ask5 budú mať každá hodnotu od 1 do 6. Každá otázka v skupine má potom rovnicu relevantnosti, napríklad „ask1==N“, kde N je poradové číslo otázky v skupine (tretia otázka v skupine 1 má teda rovnicu relevantnosti „ask1==3“).

Tento prieskum funguje rovnako dobre vo formáte celý prieskum naraz, skupina za skupinou aj otázka za otázkou. Keďže náhodný výber sa nastavuje v prvej skupine a tá je v podstate skrytá (všetky otázky ask1-ask5 sú skryté), náhodný výber zostáva pre respondenta rovnaký; každý respondent však bude mať iný náhodný výber.


Ukázané funkcie

  1. Typ otázky Rovnica
  2. Funkcie náhodného výberu
  3. Podmienená funkcia (if)


Snímky obrazovky

Toto je Group0, ktorá využíva typ otázky Rovnica na výber náhodných hodnôt od 1 do 6 pre každú skupinu (okrem poslednej skupiny, ktorá má iba 4 otázky). Všimnite si, že funkcia „if()“ najprv skontroluje, či už bola premenná ask1 nastavená, a ak áno, použije jej hodnotu. Ak hodnota nebola nastavená, použije náhodnú hodnotu na nastavenie premennej ask1.



Táto skupina ukazuje, ako sa premenná (ask4) zo skupiny Group0 používa na určenie, ktorá otázka bude viditeľná vo štvrtej skupine.



Stiahnutie

Ak si chcete stiahnuť vyššie uvedený príklad prieskumu, kliknite sem: Príklad prieskumu s náhodnými otázkami v rámci skupiny.


Náhodné zobrazenie určitého počtu otázok v skupine (podmnožina otázok)

  Platí to iba pre všetky náhodné otázky z jednej skupiny a iba vtedy, ak sa používa formát Skupina za skupinou alebo Všetko v jednom.



Prehľad

Tento prieskum ukazuje, ako zobraziť náhodnú podmnožinu otázok v skupine. Napríklad zobrazenie 5 náhodných otázok z 10 otázok nachádzajúcich sa v jednej skupine.

Prieskum obsahuje jednu skupinu s 10 otázkami. Všetkým otázkam je priradený rovnaký názov skupiny, v ktorej bude otázka náhodne zaradená. V dôsledku toho sa pri načítaní stránky zobrazia v náhodnom poradí. Každá otázka má rovnicu relevantnosti, podľa ktorej je súčet hodnôt „relevanceStatus“ všetkých ostatných otázok v skupine menší ako počet otázok, ktoré chcete zobraziť. Keďže relevanceStatus sa priraďuje pri vykresľovaní otázok, v praxi tak ide o súčet predchádzajúcich otázok.

Takže v našom príklade 5 z 10 by rovnica pre Q1 vyzerala takto:

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

Pre Q2 by vyzerala takto:

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

A tak ďalej...


Ukázané funkcie

  1. premenná relevanceStatus
  2. Náhodné poradie

Stiahnutie

Ak si chcete stiahnuť uvedený príklad, kliknite na nasledujúci odkaz: Príklad prieskumu Náhodných 5 z 10.

Hodnotenie zoznamu produktov zadaného používateľom

Prehľad

Nasledujúci príklad ukazuje, ako môžete požiadať používateľov, aby uviedli zoznam produktov, ktoré ich zaujímajú, a následne ich nechať tieto produkty ohodnotiť.


Ukázané funkcie ES

  1. Prispôsobenie odpovedí - pri hodnotení produktov pochádzajú označenia z poľa komentára predchádzajúcej otázky s možnosťou výberu viacerých možností
  2. Prispôsobenie škál - mnohé pokročilé možnosti otázok, ako napríklad nadpisy škál, možno tiež prispôsobiť.


Snímky obrazovky

Tento obrázok ukazuje, že keďže boli vybrané iba produkty 1, 3 a 5, zobrazia sa len tieto 3 (pomocou atribútu array_filter). Označenia riadkov v druhej otázke sú navyše buď čísla produktov (ak sa do poľa komentára nič nezadá), alebo obsah polí komentárov.



Tento obrázok ukazuje, ako sa zadávajú prispôsobené odpovede:



Tu je súbor Zobraziť logiku pre túto otázku, ktorý nám umožňuje overiť, či podmienená logika funguje podľa očakávania (napr. či sa nevyskytujú syntaktické chyby):



Nasledujúci obrázok ukazuje skupinu, v ktorej zadávate 5-bodovú hodnotiacu škálu (možnosti 1-5), názov škály a produkty, ktoré chcete ohodnotiť. Posledná otázka ukazuje, že každú časť otázky typu pole možno prispôsobiť:



Nasledujúci obrázok ukazuje zobrazenie súboru logiky poslednej otázky. Ako môžete vidieť, podotázky, odpovede a hlavičky škál možno prispôsobiť.


Stiahnutie

Ak si chcete stiahnuť vyššie uvedený príklad prieskumu, kliknite na nasledujúci odkaz: Príklad prieskumu s hodnotením zoznamu produktov zadaného používateľom.