ExpressionScript Engine – Hitri vodnik
From LimeSurvey Manual
Vodnik za hiter začetek
Znotraj LimeSurvey lahko dodatno prilagodite svoje ankete z uporabo ExpressionScript (kratko: ES). Stranska opomba: "ExpressionScript je bil v prejšnji različici imenovan Expression Manager (EM). Če ste kje prebrali Expression Manager, je to samo staro ime ES."
ES se lahko uporablja za določitev naslednjega:
- Navigacija/Razvejanje - omogoča anketirančevim odgovorom, da spremenijo vrstni red, v katerem so prikazana vprašanja;
- Prilagoditev/Cevovod' - vam pomaga ubesediti vprašanje (kot se nanaša na predhodni odgovori ali spreganje stavkov glede na starost ali spol vaših predmetov) ali kako ustvariti poročila po meri (kot so rezultati ocenjevanja ali prilagojeni nasveti);
- Validacija - zagotavlja, da odgovori prestanejo določena merila, kot so najmanjše in največje vrednosti ali določen vnosni vzorec.
ES ponuja intuitiven način za določanje logike za vsako od teh funkcij. Skoraj vse, kar lahko zapišete kot standardno matematično enačbo, je veljaven izraz.
ES trenutno omogoča dostop do 70 funkcij in ga je mogoče enostavno razširiti, da podpira več. Prav tako vam omogoča dostop do spremenljivk
z uporabo človeku berljivih imen spremenljivk (namesto SGQA names).
Prihajajoči razdelki prikazujejo glavna mesta, kjer se uporablja ES.
Nekatere ankete uporabljajo "Goto Logic", tako da če na vprašanje 1 odgovorite z možnostjo C, ste preusmerjeni na vprašanje 5. Ta pristop je zelo omejen, saj ga je težko potrditi. Poleg tega se zlahka pokvari, ko morate preurediti vprašanja. Po drugi strani pa ES uporablja Boolove relevantne enačbe za določitev vseh pogojev, pod katerimi bi lahko bilo vprašanje veljavno. Če je vprašanje relevantno, je vprašanje prikazano, v nasprotnem primeru ni uporabno in vrednost "NULL" je shranjena v bazi podatkov.
Da bi bolje razumeli koncept ustreznosti, se osredotočimo na naslednjo raziskavo, ki izračuna indeks telesne mase (ITM) anketirancev. Če ga želite prenesti, kliknite na naslednjo povezavo: Primer raziskave indeksa telesne mase.
Enačba ustreznosti je prikazana spodaj v stolpcu Relevantnost za imenom spremenljivke. Vrednosti ustreznosti teže, teže_enot, višine in višine so vse 1 (privzeta vrednost), kar pomeni, da so ta vprašanja vedno prikazana. Vendar pa je relevantnost za ITM {!is_empty(height) in !is_empty(weight)}, kar pomeni, da bo ITM izračunan samo, če subjekt vnese vrednost tako za višino kot za težo (s čimer se izognemo tveganju, da bi dobili napako nič). Tudi vprašanje "Poročilo" je prikazano le, če anketiranec odgovori na vsa štiri glavna vprašanja (višina, enote višine, teža, enote teže).
Ustreznost je prikazana in jo je mogoče urejati, ko:
- želite videti/urediti ustreznost na ravni vprašanja
- želite si ogledati/urediti ustreznost na ravni skupine
Ogled/urejanje Ustreznost na ravni vprašanja
Ta enačba izračuna indeks telesne mase (ITM). Vpraša se le, ali oseba vnese svojo višino in težo.
To je zaslon za urejanje vprašanja "BMI".
Upoštevajte, da ne uporabite zavitih oklepajev, ko vnesete enačbo ustreznosti.
Ogled/urejanje ustreznosti na ravni skupine
Osredotočimo se zdaj na drug primer – preprosto popisno raziskavo. Če ga želite prenesti, kliknite naslednjo povezavo: Primer popisne raziskave.
Prva stran vpraša, koliko ljudi živi z vami, in to shrani v spremenljivko "cohabs". Ta stran je prikazana samo, če imate več kot enega sostanovalca (prikazana je za drugo osebo, ki živi z vami). Tudi p2name, p2age. p2sum se prikažejo le, če vprašanje pred vsakim od njih vsebuje odgovor.
Torej ima skupina tudi merila ustreznosti na ravni vprašanja, tako da se nekatera vprašanja prikažejo samo, če ste odgovorili na določena vprašanja pred njimi (npr. p2age je prikazana, če je bil odgovor p2name). ES za vas združuje ustreznost na ravni skupine in vprašanja. Vprašanja v skupini se postavljajo samo, če je relevantna skupina kot celota. Nato se zastavi samo podmnožica vprašanj znotraj skupine, ki so pomembna.
Tukaj je posnetek zaslona za urejanje ustreznosti Sostanovalca 2 na ravni skupine:
Upoštevajte, da ne uporabite zavitih oklepajev, ko vnesete enačbo ustreznosti.
Krojenje/Piping
ES vam omogoča preprosto in zapleteno pogojno krojenje. Včasih potrebujete preprosto zamenjavo, na primer: "Rekel si, da si kupil [ Izdelek]. Kaj vam je bilo pri tem najbolj všeč?". Včasih potrebujete pogojno zamenjavo, kot je " [ Gospod Gospa.] [ LastName], bi bili pripravljeni izpolniti našo anketo?". V tem primeru želite uporabiti "Mr. ali gospa." na podlagi spola osebe. Včasih potrebujete še bolj zapleteno zamenjavo (na primer na podlagi matematičnega izračuna). ES podpira vsako od teh vrst krojenja/cevovoda.
Pogojne enačbe
Primer indeksa telesne mase prikazuje zmožnost izračuna ITM osebe, čeprav ji dovolite, da svojo višino in težo vnese v dveh različnih enotah (cm proti palcem in kg proti funtom):
V tem primeru je teža kg {if(weightunits == "kg", teža, teža * 0,453592)}. Ta funkcija "if()" pomeni, da če subjekt vnese težo v kilogramih, uporabite to vrednost, sicer pomnožite vneseno vrednost (funti so alternativa) z 0,453592, da jo pretvorite v kilograme. Spremenljivka heightm uporablja podoben pristop za izračun višine osebe v metrih (višina v cm/100), tudi če je vnesla svojo višino v palcih (1 meter=3,28084 palca).
ITM se izračuna kot: {teža kg / (višina m * višina m)}.
Nazadnje poročilo pogojno prilagodi sporočilo subjektu in ji pove, kaj je vnesel. (npr. "Rekli ste, da ste visoki 2 metra in težki 70 kg.")
Na spodnji sliki weightstatus uporablja ugnezdene izjave »if()« za kategorizacijo osebe med prenizko telesno težo in močno debelostjo. Njeno enačbo si lahko ogledate tako, da preverite njeno logiko:
V oknu za urejanje tega vprašanja lahko vidite dve stvari:
- Tailoring mora obdati izraze z zavitimi oklepaji
- Izrazi lahko zajemajo več vrstic, če želite, kot v tem primeru, olajšati branje ugnezdena pogojna logika.
Prilagojena vprašanja, odgovori in poročila
Poročilo ITM izgleda takole:
Tukaj je okno za urejanje istega vprašanja.
Vse, kar je znotraj zavitih oklepajev, se obravnava kot izraz, saj je sintaksno poudarjeno (barvno kodirano) na prejšnji sliki. Če imate kakršne koli tipkarske napake (kot so napačno črkovana ali nedefinirana imena ali funkcije spremenljivk), bo ES prikazal napako. V našem spodnjem primeru:
- heightunit.shown je nedefinirano ime spremenljivke (pravzaprav je heightunits.shown) in
- "rnd()" je nedefinirana funkcija (pravilno ime funkcije je "round()" ).
V obeh primerih se napake nahajajo v rdečem polju, da jih lažje opazite in odpravite.
Opazite lahko tudi, da lahko hitro ustvarite kompleksna poročila, kot je tabela vnesenih vrednosti ali prilagojeni nasveti.
Zapomnite si, da mora vsako prilagajanje obdati izraze z zavitimi oklepaji, tako da LimeSurvey ve, kateri deli vprašanja so prosto besedilo in katere bi moral razčleniti mehanizem ExpressionScript.
Potrjevanje
ES nadzoruje, kako deluje večina naprednih možnosti vprašanj. Ti nadzorni vidiki, kot so najmanjše/največje število odgovorov, najmanjše/največje posamezne vrednosti, najmanjše/največje vrednosti vsote in preverjanje, ali se vnesene vrednosti ujemajo z določenimi vzorci nizov. Vsaka vrednost v enem od teh polj se šteje za izraz, tako da lahko imate minimalna/največja merila s kompleksnimi pogojnimi razmerji do drugih vprašanj.
V vseh teh primerih, ker atribut naprednega vprašanja vedno velja za izraz, pri njegovem podajanju ne uporabite zavitih oklepajev.
Stran vzorčne ankete prikazuje številne delujoče primere, ki vsebujejo različne izraze za preverjanje veljavnosti.
ExpressionScript - predstavitev
Če želite izvedeti več o ExpressionScript in o tem, kako lahko uporabite različne izraze za izboljšanje vaše ankete, kliknite naslednjo povezavo.