Actions

ExpressionScript Engine – Gyors üzembe helyezési útmutató

From LimeSurvey Manual

This page is a translated version of the page ExpressionScript Engine - Quick start guide and the translation is 100% complete.


Rövid útmutató

A LimeSurvey-en belül tovább testreszabhatja felméréseit az ExpressionScript (röviden: ES) használatával. Sidenote: "Az ExpressionScript a korábbi verzióban Expression Manager (EM) nevet kapott. Ha valahol az Expression Managert olvassa, az csak az ES régi neve."

Az ES a következők megadására használható:

  1. Navigáció/elágazás - lehetővé teszi a válaszadó válaszainak a kérdések megjelenítési sorrendjének megváltoztatását;
  2. Szabás/Csőszerelés - segít a kérdés megfogalmazásában (pl. korábbi válaszok vagy mondatok konjugálása az alanyok életkora vagy neme alapján), vagy egyéni jelentések létrehozása (például értékelési pontszámok vagy személyre szabott tanácsok);
  3. Érvényesítés - biztosítja, hogy a válaszok megfeleljenek bizonyos kritériumoknak, mint a min és max értékek vagy egy bizonyos bemeneti minta.

Az ES intuitív módot biztosít az egyes funkciók logikájának meghatározására. Szinte minden, amit szabványos matematikai egyenletként felírhat, érvényes kifejezés.

Az ES jelenleg 70 funkcióhoz biztosít hozzáférést, és könnyen bővíthető további támogatásra. Ezenkívül lehetővé teszi az változók elérését ember által olvasható változónevek használatával (SGQA nevek helyett).

A következő szakaszok bemutatják azokat a fő helyeket, ahol az ES-t használják.


Relevancia (Navigáció/Elágazás vezérlése)

Egyes felmérések "Goto Logic"-ot használnak, így ha az 1. kérdésre a C opcióval válaszol, akkor a rendszer az 5. kérdésre irányítja át. Ez a megközelítés nagyon korlátozott, mivel nehéz ellenőrizni. Sőt, könnyen eltörik, ha át kell rendeznie a kérdéseket. Másrészt az ES a Boole-relevanciaegyenletek segítségével határozza meg azokat a feltételeket, amelyek mellett egy kérdés érvényes lehet. Ha a kérdés releváns, akkor a kérdés megjelenik, ellenkező esetben nem alkalmazható, és a "NULL" érték tárolódik az adatbázisban.

Megjegyzés: Ez hasonló ahhoz, amit a Feltételek szerkesztővel meg lehet tenni, de az ES segítségével sokkal összetettebb és erőteljesebb feltételeket adhatunk meg (és lehetővé teszi a változó nevének használatát ahelyett, hogy SGQA azonosítók).




A relevancia fogalmának jobb megértése érdekében összpontosítsunk a következő felmérésre, amely a válaszadók testtömeg-indexét (BMI) számítja ki. A letöltéshez kattintson a következő linkre: Példa a testtömegindex felmérésére.

A relevanciaegyenlet lent, a Relevancia oszlopban látható a változó neve után. A súly, a súly_egységek, a magasság és a magasság_egységek relevanciaértékei mind 1 (alapértelmezett érték), ami azt jelenti, hogy ezek a kérdések mindig megjelennek. A BMI relevanciája azonban {!is_empty(height) és !is_empty(weight)}, ami azt jelenti, hogy a BMI csak akkor kerül kiszámításra, ha az alany mind a magasság, mind a súly értékét megadja (ezzel elkerülhető a nulla hiba kockázata). A „Jelentés” kérdés is csak akkor jelenik meg, ha a válaszadó mind a négy fő kérdésre válaszol (magasság, magasságegységek, súly, súlyegységek).



Megjegyzés: A fenti kép a survey logic file-ból származik, amely lehetővé teszi, hogy szintaktikai hibákat keressen a felmérés aktiválása előtt.


A relevancia akkor jelenik meg és szerkeszthető, ha:

  • a kérdésszintű relevanciát szeretné megtekinteni/szerkeszteni
  • a csoportszintű relevanciát szeretné megtekinteni/szerkeszteni


Kérdésszintű relevancia megtekintése / szerkesztése

Ez az egyenlet kiszámítja a testtömegindexet (BMI). Csak akkor kérdezik meg, ha a személy megadja a magasságát és súlyát.



Ez a "BMI" kérdés szerkesztési képernyője.



Vegye figyelembe, hogy nem használja a kapcsos zárójeleket a relevanciaegyenlet megadásakor.


Csoportszintű relevancia megtekintése / szerkesztése

Koncentráljunk most egy másik példára – egy egyszerű népszámlálási felmérésre. A letöltéshez kattintson a következő linkre: Példa a népszámlálási felmérésre.

Az első oldal megkérdezi, hány ember él veled, és ezt a "cohabs" változóban tárolja. Ez az oldal csak akkor jelenik meg, ha egynél több élettársa van (az Önnel együtt élő második személynél jelenik meg). Továbbá p2name, p2age. A p2sum csak akkor jelenik meg, ha mindegyik előtti kérdés választ tartalmaz.



Tehát a csoportnak vannak kérdésszintű relevancia kritériumai is, így bizonyos kérdések csak akkor jelennek meg, ha bizonyos kérdéseket megválaszolt előtte (pl. a p2age jelenik meg, ha a p2name megválaszolásra került). Az ES egyesíti a csoport és a kérdés szintű relevanciát az Ön számára. A csoportban csak akkor tesznek fel kérdéseket, ha a csoport egésze releváns. Ezután a csoporton belüli kérdéseknek csak a releváns részhalmazát teszik fel.

Íme a képernyőkép az „Együtttárs 2” csoportszintű relevanciájának szerkesztéséhez:



Vegye figyelembe, hogy nem használja a kapcsos zárójeleket a relevanciaegyenlet megadásakor.

Szabás/Csőszerelés

Az ES segítségével egyszerűen végezhet egyszerű és összetett feltételes szabást. Néha csak egy egyszerű helyettesítésre van szüksége, például azt mondja: „Azt mondta, hogy vásárolt [ Termék]. Mi tetszett a legjobban benne?". Néha szükség van feltételes helyettesítésre, mint például " [ Mr Mrs.] [ LastName], hajlandó lenne kitölteni kérdőívünket?". Ebben az esetben a „Mr. vagy Mrs." a személy neme alapján. Más esetekben még bonyolultabb helyettesítésre van szükség (például matematikai számításon alapul). Az ES támogatja az ilyen típusú szabás/csövek mindegyikét.


Feltételes egyenletek

A testtömegindex példája azt mutatja, hogy egy személy BMI-jét még akkor is ki lehet számítani, ha két különböző mértékegységben (cm vs hüvelyk és kg vs lbs) adja meg magasságát és súlyát:



Ebben az esetben a súlykg {if(súlyegységek == "kg", súly, súly * 0,453592)}. Ez az "if()" függvény azt jelenti, hogy ha az alany kilogrammban adja meg a súlyt, használja ezt az értéket, ellenkező esetben a bevitt értéket (a font az alternatíva) szorozza meg 0,453592-vel, hogy átváltsa kilogrammra. A heightm változó hasonló megközelítést használ a személy magasságának kiszámításához méterben (magasság cm/100), még akkor is, ha a magasságát hüvelykben adta meg (1 méter = 3,28084 hüvelyk).

A BMI kiszámítása a következőképpen történik: {súlykg / (magasság * magasság)}.

Végül a jelentés feltételesen az alanyhoz szabja az üzenetet, elmondja neki, mit írt be. (pl. "Azt mondtad, hogy 2 méter magas vagy és 70 kg.")

Az alábbi képen a weightstatus beágyazott „if()” utasításokat használ az alulsúlyos vagy súlyosan elhízott személy besorolására. Az egyenletét a logikájának ellenőrzésével láthatja:



A kérdés szerkesztőablakban két dolgot láthat:

  1. A testreszabásnak göndör kapcsos zárójelekkel kell körülvennie a kifejezéseket
  2. A kifejezések több sort is átívelhetnek, ha – mint ebben az esetben is – könnyebben olvasni kívánja a beágyazott feltételes logika.



Személyre szabott kérdések, válaszok és jelentések

Megjegyzés: Előfordulhat, hogy a dinamikus testreszabás nem működik, ha a válaszlehetőségek elérhetővé teszik ugyanazon a kérdésoldalon a kiválasztott mezőkben. Ez abból adódik, hogy a szabóbetétek a címke, amely nem érvényes a kiválasztott beállításokon belül.

A BMI jelentés így néz ki:



Itt van a szerkesztő ablak ugyanennek a kérdésnek.



A göndör kapcsos zárójelben található minden kifejezés kifejezésként kezelendő, és szintaktikailag kiemelve (színkóddal van ellátva) az előző képen. Ha bármilyen elírási hibája van (például hibásan elírt vagy definiálatlan változónevek vagy függvények), az ES hibát jelez. Az alábbi példánkban:

  • heightunit.shown egy meghatározatlan változónév (valójában magasságegységek.shown), az
  • "rnd()" pedig egy nem definiált függvény (a megfelelő függvénynév: "round()" ).

A hibák mindkét esetben egy piros mezőben találhatók, hogy könnyebben észlelhetők és kijavíthatóak legyenek.



Azt is láthatja, hogy gyorsan létrehozhat összetett jelentéseket, például táblázatot a megadott értékekről vagy személyre szabott tanácsokat.

Kérjük, ne feledje, hogy minden testreszabásnál a kifejezéseket kapcsos zárójelekkel kell körülvenni, hogy a LimeSurvey tudja, hogy a kérdés mely részei szabad szövegek, és melyeket kell az ExpressionScript motornak elemeznie.


Érvényesítés

Az ES szabályozza a legtöbb speciális kérdésopció működését. Ezek az ellenőrzési szempontok, például a válaszok minimális/maximális száma, minimális/max egyedi értékek, minimális/maximális összegértékek, valamint annak ellenőrzése, hogy a beírt értékek megfelelnek-e a megadott karakterlánc-mintákkal. A mezők egyikében lévő bármely érték kifejezésnek minősül, így rendelkezhet min/max kritériumokkal, amelyek összetett feltételes kapcsolatokkal rendelkeznek más kérdésekhez.

Mindezen esetekben, mivel a speciális kérdés attribútum mindig kifejezésnek minősül, nem használ kapcsos zárójeleket a megadásakor.

Az minta felmérések oldalon számos működő példa látható, amelyek különféle érvényesítési kifejezéseket tartalmaznak.

ExpressionScript - bemutató

Ha többet szeretne megtudni az ExpressionScriptről, és arról, hogyan használhatja fel a különböző kifejezéseket a felmérés javítására, kattintson a következő link linkre.