Actions

ExpressionScript Engine - Quick start guide/hu: Difference between revisions

From LimeSurvey Manual

(Created page with "A [https://www.limesurvey.org LimeSurvey]-en belül tovább testreszabhatja felméréseit az ExpressionScript (röviden: ES) használatával. Sidenote: "Az ExpressionScript a...")
(Created page with "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ő...")
 
(37 intermediate revisions by the same user not shown)
Line 11: Line 11:
Az ES a következők megadására használható:
Az ES a következők megadására használható:


# '''Navigation/Branching''' - allows a respondent's answers to change the order in which the questions are displayed;
# '''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;
# '''Tailoring/Piping''' - helps you phrase the question (such as referring to prior answers, or conjugating sentences based upon the age or gender of your subjects) or how to generate custom reports (like assessment scores or tailored advice);
# '''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);
# '''Validation''' - ensures that answers pass certain criteria, like min and max values or a certain input pattern.
# '''É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.


ES provides an intuitive way to specify the logic for each of those features. Nearly anything that you can write as a standard mathematical equation is a valid expression.  
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.  


ES currently provides access to 70 functions and it can be easily extended to support more. It also lets you access you
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
variables using human-readable variable names (rather than [[SGQA_identifier|SGQA names]]).
változók elérését ember által olvasható változónevek használatával ([[SGQA_identifier|SGQA nevek]] helyett).


The upcoming sections show the main places where the ES is used.
A következő szakaszok bemutatják azokat a fő helyeket, ahol az ES-t használják.




==Relevance (Controlling Navigation/Branching)==
==Relevancia (Navigáció/Elágazás vezérlése)==




Some surveys use "Goto Logic", such that if you answer Question1 with option C, you are redirected to Question5. This approach is very limited since it is hard to validate it. Moreover, it easily breaks when you have to reorder questions. On the other hand, ES uses [https://en.wikipedia.org/wiki/Boolean_algebra Boolean relevance equations] to specify all the conditions under which a question might be valid. If the question is relevant, then the question is shown, otherwise, it is not applicable, and the value "NULL" is stored in the database.  
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 [https://en.wikipedia.org/wiki/Boolean_algebra 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.  


<div class='simplebox'> '''Note:''' This is similar to what can be done via the [[Setting conditions|Conditions editor]], but ES lets you easily specify much more complex and powerful criteria (and lets you use the variable name rather than SGQA identifiers).</div>
<div class='simplebox'>'''Megjegyzés:''' Ez hasonló ahhoz, amit a [[Beállítási feltételek|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).</div>




Line 34: Line 34:




To better understand the relevance concept, let's focus on the following survey which computes the Body Mass Index (BMI) of survey respondents. To download it, click on the following link: [[Media:LS3_em_tailoring.zip|Body Mass Index survey example]].
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: [[Media:LS3_em_tailoring.zip|Példa a testtömegindex felmérésére]].


The relevance equation is shown below in the '''Relevance''' column after the variable name. The relevance values of weight, weight_units, height, and height_units are all 1 (default value), meaning that those questions are always displayed. However, the relevance for BMI is {!is_empty(height) and !is_empty(weight)}, which means that BMI will only be computed if the subject enters a value for both height and weight (thereby avoiding the risk of getting a zero error). Also, question "Report" is only shown if the respondent answers all four main questions (height, heightunits, weight, weightunits).
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).




Line 42: Line 42:




<div class="simplebox"> [[File:help.png]] '''Note:''' The above image comes from the [[Show logic file|survey logic file]] which allows you to look for syntax errors before activating the survey.</div>
<div class="simplebox">[[File:help.png]] '''Megjegyzés:''' A fenti kép a [[Show logic file|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.</div>




Relevance is shown and editable when:
A relevancia akkor jelenik meg és szerkeszthető, ha:
*you wish to view/edit question-level relevance
*a kérdésszintű relevanciát szeretné megtekinteni/szerkeszteni
*you wish to view/edit group-level relevance
*a csoportszintű relevanciát szeretné megtekinteni/szerkeszteni




===Viewing / Editing Question-Level Relevance===
===Kérdésszintű relevancia megtekintése / szerkesztése===




This equation computes the Body Mass Index (BMI). It is only asked if the person enters their height and weight.
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.




Line 59: Line 59:




This is the edit screen for the "BMI" question.
Ez a "BMI" kérdés szerkesztési képernyője.




Line 65: Line 65:




Note that you do not use the curly braces when you enter a relevance equation.
Vegye figyelembe, hogy nem használja a kapcsos zárójeleket a relevanciaegyenlet megadásakor.




===Viewing / Editing Group-Level Relevance===
===Csoportszintű relevancia megtekintése / szerkesztése===




Let's focus now on another example - a simple census survey. To download it, click on the following link: [[Media:LS3_group_relevance.zip|Census survey example]].  
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: [[Media:LS3_group_relevance.zip|Példa a népszámlálási felmérésre]].  


The first page asks how many people live with you and stores that in the "cohabs" variable. This page is only shown if you have more than one cohabitant (it is shown for the second person cohabitating with you). Also, p2name, p2age. p2sum are displayed only if the question before each of them contains a response.
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.




Line 79: Line 79:




So, the group also has question-level relevance criteria, such that some questions only appear if you answered certain questions before them (e.g., p2age is displayed if p2name was answered). ES combines the Group and Question-level relevance for you. '''Questions in a group are only asked if the group as a whole is relevant. Then, only the subset of questions within the group that are relevant are asked.'''
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.'''


Here is the screenshot for editing the group-level relevance of ''Cohabitant 2'':
Íme a képernyőkép az „Együtttárs 2” csoportszintű relevanciájának szerkesztéséhez:




Line 87: Line 87:




Note that you do not use the curly braces when you enter a relevance equation.
Vegye figyelembe, hogy nem használja a kapcsos zárójeleket a relevanciaegyenlet megadásakor.


==Tailoring/Piping==
==Szabás/Csőszerelés==




ES lets you easily do simple and complex conditional tailoring. Sometimes you just need a simple substitution, like saying, "You said you purchased <nowiki>[</nowiki>Product]. What did you like best about it?". Sometimes you need conditional substitution like "<nowiki>[</nowiki>Mr./Mrs.] <nowiki>[</nowiki>LastName], would you be willing to complete our survey?". In this case, you want to use "Mr. or Mrs." based on the person's gender. Other times you need even more complex substitution (such as based upon a mathematical computation). ES supports each of these types of tailoring/piping.
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<nowiki> [</nowiki> Termék]. Mi tetszett a legjobban benne?". Néha szükség van feltételes helyettesítésre, mint például "<nowiki> [</nowiki> Mr Mrs.]<nowiki> [</nowiki> 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.




===Conditional Equations===
===Feltételes egyenletek===




The Body Mass Index example shows the ability to compute a person's BMI, even while letting them enter their height and weight in two different units (cms vs inches and kgs vs lbs):
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:




Line 104: Line 104:




In this case, weightkg is {if(weightunits == "kg", weight, weight * 0.453592)}. This "if()" function means that if the subject enters the weight using kilograms, use that value, otherwise multiply the entered value (pounds is the alternative) by 0.453592 to convert it to kilograms. The heightm variable uses a similar approach to compute the person's height in meters (height in cms/100), even if he has entered his height in inches (1 meter=3.28084 inches).
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).


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


Lastly, the report conditionally tailors the message for the subject, telling her what he entered. (e.g., "You said you are 2 meters tall and weight 70 kg.")
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.")


In the below image, weightstatus uses nested "if()" statements to categorize the person as underweight to severely obese. You can see its equation by checking its logic:
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:




Line 116: Line 116:




From the edit window for this question, you can see two things:
A kérdés szerkesztőablakban két dolgot láthat:
#Tailoring must surround expressions with curly braces
#A testreszabásnak göndör kapcsos zárójelekkel kell körülvennie a kifejezéseket
#Expressions can span multiple lines if, as in this case, you want to make it easier to read the nested conditional logic.
#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.




Line 124: Line 124:




===Tailored Questions, Answers, and Reports===
===Személyre szabott kérdések, válaszok és jelentések===




<div class="simplebox">[[File:help.png]] '''Note:''' Dynamic tailoring may not work if answer options are made available in select boxes on the same question page. This results from the fact that tailoring inserts a <nowiki><span></nowiki> tag which is not valid inside select options.</div>
<div class="simplebox">[[File:help.png]] '''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<nowiki></nowiki> <span>címke, amely nem érvényes a kiválasztott beállításokon belül.</span>


The BMI report looks like this:
A BMI jelentés így néz ki:




Line 135: Line 135:




Here is the edit window for the same question.
Itt van a szerkesztő ablak ugyanennek a kérdésnek.




Line 141: Line 141:




Anything within curly braces is treated as an expression, being syntax-highlighted (color coded) in the prior image. If you have any typos (such as misspelled or undefined variable names or functions), ES would show an error. In our below example:
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 is an undefined variable name (it is actually heightunits.shown) and
* heightunit.shown egy meghatározatlan változónév (valójában magasságegységek.shown), az
* "rnd()" is an undefined function (the proper function name is "round()").  
* "rnd()" pedig egy nem definiált függvény (a megfelelő függvénynév: "round()" ).  


In both cases, the errors are located within a red box to make it easier to spot and fix them.
A hibák mindkét esetben egy piros mezőben találhatók, hogy könnyebben észlelhetők és kijavíthatóak legyenek.




Line 151: Line 151:




You can also see that you can quickly create complex reports, such as a table of entered values or tailored advice.
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.


Please remember that all tailoring must surround expressions with curly braces so that LimeSurvey knows which parts of the question are free text and which should be parsed by the ExpressionScript engine.
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.




==Validation==
==Érvényesítés==




ES controls how most of the advanced question options work. These control aspects like min/max numbers of answers, min/max individual values, min/max sum values, and checking that entered values match specified string patterns. Any value in one of those fields is considered an expression, so you can have min/max criteria with complex conditional relationships to other questions.
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.


In all of these cases, since the advanced question attribute is always considered an expression, you do not use curly braces when specifying it.
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.


The [[ExpressionScript sample surveys|sample surveys]] page shows many working examples containing a variety of validation expressions.
Az [[ExpressionScript minta felmérések|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 - presentation=
=ExpressionScript - bemutató=




To find out more about ExpressionScript and how you can use different expressions to enhance your survey, please click on the following [https://manual.limesurvey.org/ExpressionScript_-_Presentation link].
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ő [https://manual.limesurvey.org/ExpressionScript_-_Presentation link] linkre.

Latest revision as of 18:47, 9 October 2023


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.