Actions

ExpressionScript How-tos/nl: Difference between revisions

From LimeSurvey Manual

No edit summary
No edit summary
 
(138 intermediate revisions by 3 users not shown)
Line 1: Line 1:
<languages />
<languages />
__TOC__
__TOC__




=Samenvatting van eerdere uitleg over Expressiebeheer=
=Samenvatting van eerdere uitleg=




Als je de index van de LimeSurvey-handleiding tot nu toe hebt gevolgd, betekent dit dat je de [[Expression_Manager _-_ presentation/nl#Definities|LimeSurvey-terminologie]] al kent. We hebben expressies en variabelen behandeld om te laten zien hoe we onze enquêtes kunnen verbeteren. Daarna zijn we overgegaan op de manieren en betekenissen van [[Expression_Manager _-_ presentation/nl#Syntax markeren|syntax highlighting]] om te laten zien hoe je syntaxisfouten kunt verbeteren.  
Als je de index van de LimeSurvey-handleiding tot nu toe hebt gevolgd, betekent dit dat je de [[ExpressionScript_-_ Presentation/nl#Definities|LimeSurvey-terminologie]] al kent. We hebben expressies en variabelen behandeld om te laten zien hoe we onze enquêtes kunnen verbeteren. Daarna zijn we overgegaan op de manieren en betekenissen van [[ExpressionScript_-_ Presentation/nl#Syntax markeren|syntax highlighting]] om te laten zien hoe je syntaxisfouten kunt verbeteren.  


Met dit als kennis kunnen we naar de voorbeelden gaan en laten zien hoe in LimeSurvey expressies werken.  
Met dit als kennis kunnen we naar de voorbeelden gaan en laten zien hoe je in LimeSurvey met expressies kunt werken.  




=Syntax highlighting=
=Syntax markeren=




Line 20: Line 18:
Door de markering van de syntaxis is het eenvoudig om correcte gecompliceerde expressies samen te stellen. Hoewel het LimeSurvey-team van plan is om een ​​grafische gebruikersinterface te maken, kun je de bestaande highlighting gebruiken om fouten snel te zien en op te lossen. Je kunt ook de tooltips gebruiken om de nauwkeurigheid van de expressies te valideren (bijv. bevestig dat je de gewenste variabele(n) hebt geselecteerd).
Door de markering van de syntaxis is het eenvoudig om correcte gecompliceerde expressies samen te stellen. Hoewel het LimeSurvey-team van plan is om een ​​grafische gebruikersinterface te maken, kun je de bestaande highlighting gebruiken om fouten snel te zien en op te lossen. Je kunt ook de tooltips gebruiken om de nauwkeurigheid van de expressies te valideren (bijv. bevestig dat je de gewenste variabele(n) hebt geselecteerd).


In elk voorbeeld zijn er drie kolommen:
In de voorbeelden zijn er drie kolommen:
#Source : dit is de onbewerkte tekst die je zou invoeren in het LimeSurvey-vragenveld.
#Source - de ruwe tekst die de in te vullen vraagtekst is
#Pretty Print : dit is hetzelfde met syntaxis-markering.
#Pretty Print - hetzelfde maar dan syntax-highlighted
#* Merk op dat expressies worden weergegeven met een geelbruine achtergrond, maar niet omringd worden door accolades in deze markering.
#*NB Expressies worden getoond met een geelbruine achtergrond, maar zonder de haakjes er omheen in de highlighting.
#* Aangezien expressiebeheer recursieve vervanging ondersteunt, zou het tonen van accolades in de markering syntaxisfouten veroorzaken.
#*Omdat recursieve vervanging wordt ondersteund zou het tonen van de haakjes in de highlighting leiden tot fouten
#Result : dit is de output die wordt gegenereerd wanneer expressiebeheer de invoer verwerkt.
#Result - de gegenereerde uitvoer van ES
#* Alles dat goed kan worden vervangen is.
#*Alles dat goed vervangen kan worden
#* Expressies met fouten worden in-line getoond, met syntax highlighting. Fouten worden getoond met een rood-omlijnd veld.
#*Expressies met fouten in-line met highlighting getoond. Fouten staan in een box met rode lijnen.




Line 33: Line 31:




Hieronder staan voorbeelden:
Voorbeelden met een juiste syntax:
#Values: geeft aan dat bekende variabelen een kleurcode hebben afhankelijk van of ze op de huidige pagina zijn ingesteld. INSERTANS xxxx: in oude stijl krijgt zijn eigen kleurcoderingsstijl
#Waarden: toont bekende variabelen met een kleurverschil wel/niet op de huidige pagina bepaald. Oude INSERTANS:xxxx variabele hebben een eigen stijl van werken met kleur
#Vraagattributen: laat zien dat de puntnotatie toegang heeft tot een aantal eigenschappen van vragen.
#Question Attributes: met de punt-notatie kun je enkele properties van vragen, de vraagattributen,  gebruiken
# Math: laat zien dat eenvoudige en complexe berekeningen worden ondersteund.
#Math: toont enkele ondersteunde basis en complexe berekeningen
#TextProcessing: toont enkele van de beschikbare tekstverwerkingsfuncties.
#TextProcessing: toont enkele van de mogelijke tekstverwerkingsfuncties
#Dates: toont twee van de beschikbare datumgerelateerde functies.
#Dates: toont twee beschikbare functies met datums
#Conditional: toont het gebruik van de if-functie. De keuzes kunnen worden genest.
#Conditional: toont het gebruik van de functie if(). De keuzes kunnen genest worden.
#Tailored-alinea: u kunt een rapport volledig aanpassen op basis van eerdere waarden.
#Tailored paragraph: je kunt een rapport aanpassen op grond van bekende waarden
#EM-processen binnen strings: toont aan dat het substituties binnen strings kan uitvoeren. Dit voorbeeld genereert een aangepaste afbeeldingnaam.
#EM processes within strings: het tonen dat strings vervangen kunnen worden. Bijvoorbeeld de naam van het plaatje.
#EM verwerkt accolades niet zoals deze: laat zien dat als de accolades worden geëscaped of er een witruimte is tussen de expressie en de accolades, EM de expressie negeert.
#EM doesn't process curly braces like these: toont dat als de haakjes niet actief zijn of er een spatie staat tussen het haakje en de expressie dat de expressie niet verwerkt wordt.




Line 51: Line 49:




Hier zijn voorbeelden van veelvoorkomende fouten bij het gebruik van expressies. Kijk of er een tooltip met informatie is.
Wat voorbeelden met vaak in expressies gemaakte fouten. Gebruik dan de tooltips voor een aanvullende uitleg.
#Inline Javascript zonder spatie na accolades.
#Inline JavaScript zonder spatie na een haakje
# * Omdat "document.write" direct na een accolade verschijnt, wordt het door Expressiebeheer als een expressie gezien komt er rode box om "document" en "write" omdat het ongedefinieerde variabele en functies zijn.
#*Omdat "document.write" rechts na een haakje komt wordt het door ES/EM aangezien voor een expressie, "document" en "write" zijn dan resp. een onbekende variabele en functie
# Onbekende / verkeerd gespelde variabelen, functies en operatoren.
#Onbekende / Fout gespelde variabelen, functies en operatoren
# * Hier zijn we vergeten dat we de variabelenaam "gender" gebruiken in plaats van "sekse". Ook is '++' geen ondersteunde operator is.
#*De naam van de variabele is "gender" in plaats van of "sex", ES herkent de fout. De operator '++' wordt niet ondersteund.
# Waarschuwt als use = in plaats van eq, of voer waarde-toewijzingen uit.
#Waarschuwing als = wordt gebruikt in plaats van eq, of uitvoeren van het toekennen van een waarde
# * Merk op dat de '=' en '+ =' in rode tekst zijn in plaats van in zwart. Als je er met de muis overheen beweegt, zie je waarschuwingen dat je een waarde toekent.
#*De '=' en '+=' zijn in rode tekst en niet in zwart. Als je met de muis erover gaat dan zie je de waarschuwing dat je een waarde toekent
#Verkeerd aantal argumenten bij functies.
#Verkeerd aantal argumenten bij functies
#* If-functie heeft 3 argumenten, maar hier staan er 4, dus is er een rode box bij de "if", de ondersteunde syntaxis wordt weergeven.
#*Bij if() 4 argumenten in plaats van 3, bij eroverheen gaan met de muis krijg je een fouttekst en de goede syntax
# * sum -functie heeft een onbeperkt aantal argumenten, maar we hadden een komma achteraan voor de sluitende haakjes, dus dat is in het rood.
#*sum() heeft een onbeperkt aantal argumenten, maar de komma voor het sluithaakje is fout
# Niet-overeenkomende haakjes.
#Verkeerd aantal haakjes
# * Dit is een van de meest voorkomende fouten bij het schrijven van expressies.
#*Dit komt vaak voor bij het maken van expressies
# * Hier ziet u twee voorbeelden van ontbrekende sluithaakjes en een voorbeeld van één sluithaakjes te veel
#*Twee voorbeelden met ontbrekend sluithaakje en een met teveel sluithaakjes.
#Niet ondersteunde syntaxis
#Niet ondersteunde syntax
# * Als je een operator of interpunctie gebruikt die niet wordt ondersteund, dan krijg je een rood vak.
#*Als je een niet ondersteunde operator of interpunctie gebruikt
# Ongeldige toewijzingen.
#Ongeldige toekenningen
# * Sommige variabelen zijn readWrite en kunnen hun waarden laten wijzigen. Andere zijn alleen-lezen.
#*Enkele variabelen zijn readWrite en kunnen dus gewijzigd worden. Anderen zijn read-only.
# * Als je de waarde van een alleen-lezen variabele probeert te wijzigen, dan mislukt dat.
#*Een fout is dus het wijzigen van een read-only variabele.
# * Als je probeert een waarde toe te kennen aan een expressie of een string, krijg je ook een foutmelding.
#*Je krijgt ook een foutmelding als je een waarde toekent aan den vergelijking of een string.




Line 79: Line 77:


<table border="1">
<table border="1">
<tr><th> Bron </th><th> Opmaak </th><th> Resultaat </th></tr><tr><td> <b>Hier is een voorbeeld van OK syntaxis met tooltips</b> <br> Hallo {if (geslacht == 'M', 'Mr.', 'Mevr.')} {achternaam}, het is nu {date ('g: i a', time ())}. Weet je waar je {sum (numPets, numKids)} kinderen en huisdieren zijn?
<tr><th> Bron </th><th> Opmaak </th><th> Resultaat </th></tr><tr><td> <b>Een voorbeeld zonder fouten met tooltips</b> <br> Hallo {if (geslacht == 'M', 'Mr.', 'Mevr.')} {achternaam}, het is nu {date ('g: i a', time ())}. Weet je waar je {sum (numPets, numKids)} kinderen en huisdieren zijn?


</td><td> <b>Hier is een voorbeeld van goede syntaxis met tooltips</b> <br> Hallo <span style="background-color: #eee8aa;"><span title="Excel-stijl if (test, result_if_true, result_if_false); if (proef result_if_true, result_if_false)" style="color: blue; font-weight: bold">if</span> ( <span title="[java61764X1X5] [G: 2] [V: 110]: Wat is uw geslacht (man / vrouw) ?; value = M" style="color: green; font-weight: bold">geslacht</span> == <span title="" style="color: gray">'M'</span> , <span title="" style="color: gray">'Mr.'</span> , <span title="" style="color: gray">'Mevrouw'</span> )</span> <span style="background-color: #eee8aa;"><span title="[java61764X1X1] [G: 1] [V: 20]: Wat is uw achternaam?; value = Smith" style="color: green; font-weight: bold">achternaam</span></span> , het is nu <span style="background-color: #eee8aa;"><span title="Formatteer een lokale datum / tijd; string date (format [, timestamp = time ()])" style="color: blue; font-weight: bold">date</span> ( <span title="" style="color: gray">'g: i a'</span> , <span title="Retourneer huidig UNIX-tijdstempel; nummer tijd ()" style="color: blue; font-weight: bold">time</span> ())</span> . Weet je waar je <span style="background-color: #eee8aa;"><span title="Bereken de som van waarden in een array; getalsom (arg1, arg2, ... argN)" style="color: blue; font-weight: bold">sum</span> ( <span title="[java61764X1X4] [G: 2] [V: 50]: Hoeveel huisdieren heb je ?; waarde = 1" style="color: maroon; font-weight: bold">numPets</span> , <span title="[java61764X1X3] [G: 2] [V: 40]: Hoeveel kinderen heb je ?; waarde = 2" style="color: green; font-weight: bold">numKids</span> )</span> kinderen en huisdieren zijn?
</td><td><b>Een voorbeeld zonder fouten met tooltips</b><br>Hallo <span style="background-color: #eee8aa;"><span title="Excel-style if(test,result_if_true,result_if_false); if(test,result_if_true,result_if_false)" style="color: blue; font-weight: bold">if</span>(<span title="[java61764X1X5][G:2][Q:110]: Ben u een man of een vrouw?; value=M" style="color: green; font-weight: bold">gender</span> == <span title="" style="color: gray">'M'</span>,<span title="" style="color: gray">'Mr.'</span>,<span title="" style="color: gray">'Mevr.'</span>)</span> <span style="background-color: #eee8aa;"><span title="[java61764X1X1][G:1][Q:20]: Wat is uw achternaam?; value=Smith" style="color: green; font-weight: bold">surname</span></span>, het is nu <span style="background-color: #eee8aa;"><span title="Format a local date/time; string date(format [, timestamp=time()])" style="color: blue; font-weight: bold">date</span>(<span title="" style="color: gray">'g:i a'</span>,<span title="Return current UNIX timestamp; number time()" style="color: blue; font-weight: bold">time</span>())</span>. Weet je waar je <span style="background-color: #eee8aa;"><span title="Calculate the sum of values in an array; number sum(arg1, arg2, ... argN)" style="color: blue; font-weight: bold">sum</span>(<span title="[java61764X1X4][G:2][Q:50]: Hoeveel huisdieren heeft u?; value=1" style="color: maroon; font-weight: bold">numPets</span>,<span title="[java61764X1X3][G:2][Q:40]: Hoeveel kinderen heeft u?; value=2" style="color: green; font-weight: bold">numKids</span>)</span> kinderen en huisdieren zijn?


</td><td> <b>Hier is een voorbeeld van goede syntaxis met tooltips</b> <br> Hallo <span id="LEMtailor_Q_40_1">Mr.</span> <span id="LEMtailor_Q_40_2">Smith</span> , het is nu 06:07 uur. Weet jij waar je <span id="LEMtailor_Q_40_4">3</span> kinderen en huisdieren zijn?
</td><td><b>Een voorbeeld zonder fouten met tooltips</b><br>Hallo <span id="LEMtailor_Q_40_1">Mr.</span> <span id="LEMtailor_Q_40_2">Smith</span>, het is nu 6:07. Weet je waar je <span id="LEMtailor_Q_40_4">3</span> kinderen en huisdieren zijn?
</td></tr>
</td></tr>
<tr><td> <b>Dit zijn veelvoorkomende fouten, zodat je de tooltips kunt zien</b> <br> Variabelen die zijn gebruikt voordat ze zijn gedeclareerd: {notSetYet} <br> Onbekende functie: {iff (numPets> numKids, 1,2)} <br> Onbekende variabele: {sum (age, num_pets, numKids)} <br> Verkeerde # parameters: {sprintf ()}, {if (1,2)}, {date ()} <br> Wijs alleen-lezen-vars toe: {TOKEN: ATTRIBUTE_1 + = 10}, {name = 'Sally'} <br> Ongebalanceerde haakjes: {pow (3,4}, {(pow (3,4)}, {pow (3,4))}
<tr><td><b>Enkele gebruikelijke fouten, kijk naar de tooltips</b><br>Variabelen gebruiken voor definitie: {notSetYet}<br>Onbekende functie: {iff(numPets&gt;numKids,1,2)}<br>Onbekende variabele: {sum(age,num_pets,numKids)}<br>Verkeerd aantal parameters: {sprintf()},{if(1,2)},{date()}<br>Read-only variabelen wijzigen:{TOKEN:ATTRIBUTE_1+=10},{name='Sally'}<br>Fout met haakjes: {pow(3,4},{(pow(3,4)},{pow(3,4))}


</td><td> <b>Dit zijn veelvoorkomende fouten, zodat je de tooltips kunt zien</b> <br> Variabelen die zijn gebruikt voordat ze zijn gedeclareerd: <span style="background-color: #eee8aa;"><span title="Deze variabele wordt niet gedeclareerd op een latere pagina; Geen geldige uitdrukking" style="border-style: solid; border-width: 2px; border-color: red;"><span title="Deze variabele wordt niet gedeclareerd tot een latere pagina; Geen geldige uitdrukking; [java61764X3X6] [G: 3] [Q: 200]: Wie wint de volgende verkiezing ?; value =?" style="color: #FF00FF ; font-weight: bold">notSetYet</span></span></span> <br> Onbekende functie: <span style="background-color: #eee8aa;"><span title="Ongedefinieerde functie" style="border-style: solid; border-width: 2px; border-color: red;"><span title="Ongedefinieerde functie" style="color: blue; font-weight: bold">iff</span></span> ( <span title="[java61764X1X4] [G: 2] [V: 50]: Hoeveel huisdieren heb je ?; waarde = 1" style="color: maroon; font-weight: bold">numPets</span> > <span title="[java61764X1X3] [G: 2] [V: 40]: Hoeveel kinderen heb je ?; waarde = 2" style="color: green; font-weight: bold">numKids</span> , 1,2)</span> <br> Onbekende variabele: <span style="background-color: #eee8aa;"><span title="Bereken de som van waarden in een array; getalsom (arg1, arg2, ... argN)" style="color: blue; font-weight: bold">sum</span> ( <span title="[java61764X1X2] [G: 2] [V: 30]: Hoe oud ben je ?; waarde = 45" style="color: green; font-weight: bold">age</span> , <span title="ongedefinieerde variabele" style="border-style: solid; border-width: 2px; border-color: red;"><span title="ongedefinieerde variabele" style="color: red; font-weight: bold">num_pets</span></span> , <span title="[java61764X1X3] [G: 2] [V: 40]: Hoeveel kinderen heb je ?; waarde = 2" style="color: green; font-weight: bold">numKids</span> )</span> <br> Verkeerde # parameters: <span style="background-color: #eee8aa;"><span title="Functie moet ten minste één argument (en) bevatten; Geen geldige uitdrukking" style="border-style: solid; border-width: 2px; border-color: red;"><span title="Functie moet ten minste één argument (en) bevatten; Geen geldige uitdrukking; Retourneer een geformatteerde string; string sprintf (formaat, arg1, arg2, ... argN)" style="color: blue; font-weight: bold">sprintf</span></span> ()</span> , <span style="background-color: #eee8aa;"><span title="Functie ondersteunt dat aantal argumenten niet: 2. Functie ondersteunt zoveel argumenten, waarbij -1 = onbeperkt: 3; Geen geldige uitdrukking" style="border-style: solid; border-width: 2px; border-color: red;"><span title="Functie ondersteunt dat aantal argumenten niet: 2. Functie ondersteunt dit veel argumenten, waarbij -1 = onbeperkt: 3; Geen geldige expressie; Excel-stijl if (test, result_if_true, result_if_false); if (proef result_if_true, result_if_false)" style="color: blue; font-weight: bold">if</span></span> (1,2)</span> , <span style="background-color: #eee8aa;"><span title="Functie ondersteunt dat aantal argumenten niet: 0. Functie ondersteunt dit veel argumenten, waarbij -1 = onbeperkt: 1,2; Geen geldige expressie" style="border-style: solid; border-width: 2px; border-color: red;"><span title="Functie ondersteunt dat aantal argumenten niet: 0. Functie ondersteunt dit veel argumenten, waarbij -1 = onbeperkt: 1,2; Geen geldige expressie; Formatteer een lokale datum / tijd; string date (format [, timestamp = time ()])" style="color: blue; font-weight: bold">date</span></span> ()</span> <br> Wijs alleen-lezen-vars toe: <span style="background-color: #eee8aa;"><span title="De waarde van deze variabele kan niet worden gewijzigd; Geen geldige expressie" style="border-style: solid; border-width: 2px; border-color: red;"><span title="De waarde van deze variabele kan niet worden gewijzigd; Geen geldige uitdrukking; ; value = worker" style="color: #996600; font-weight: bold">TOKEN: ATTRIBUTE_1</span></span> <span title="Een nieuwe waarde toewijzen aan een variabele" style="color: red; font-weight: bold">+ =</span> 10</span> , <span style="background-color: #eee8aa;"><span title="De waarde van deze variabele kan niet worden gewijzigd; Geen geldige expressie" style="border-style: solid; border-width: 2px; border-color: red;"><span title="De waarde van deze variabele kan niet worden gewijzigd; Geen geldige expressie; [java61764X1X1] [G: 1] [V: 10]: Wat is je voornaam ?; value = Peter" style="color: green; font-weight: bold">name</span></span> <span title="Een nieuwe waarde toewijzen aan een variabele" style="color: red; font-weight: bold">=</span> <span title="" style="color: gray">'Sally'</span></span> <br> Ongebalanceerde haakjes: <span style="background-color: #eee8aa;"><span title="Haakjes niet gebalanceerd" style="border-style: solid; border-width: 2px; border-color: red;"><span title="Haakjes niet gebalanceerd; Exponentiële expressie; nummer pow (base, exp)" style="color: blue; font-weight: bold">pow</span></span> (3,4</span> , <span style="background-color: #eee8aa;"><span title="Haakjes niet gebalanceerd" style="border-style: solid; border-width: 2px; border-color: red;">(</span> <span title="Exponentiële expressie; nummer pow (base, exp)" style="color: blue; font-weight: bold">pow</span> (3,4)</span> , <span style="background-color: #eee8aa;"><span title="Exponentiële expressie; nummer pow (base, exp)" style="color: blue; font-weight: bold">pow</span> (3,4) <span title="Extra rechterhaakjes gedetecteerd" style="border-style: solid; border-width: 2px; border-color: red;">)</span></span>
</td><td><b>Enkele gebruikelijke fouten, kijk naar de tooltips</b><br>Variabelen gebruiken voor definitie: <span style="background-color: #eee8aa;"><span title="This variable is not declared until a later page; Not a valid expression" style="border-style: solid; border-width: 2px; border-color: red;"><span title="This variable is not declared until a later page; Not a valid expression; [java61764X3X6][G:3][Q:200]: Wie wint de volgende verkiezingen?; value=?" style="color: #FF00FF ; font-weight: bold">notSetYet</span></span></span><br>Onbekende functie: <span style="background-color: #eee8aa;"><span title="Unknown Function" style="border-style: solid; border-width: 2px; border-color: red;"><span title="Unknown Function" style="color: blue; font-weight: bold">iff</span></span>(<span title="[java61764X1X4][G:2][Q:50]: Hoeveel huisdieren heeft u?; value=1" style="color: maroon; font-weight: bold">numPets</span> &gt; <span title="[java61764X1X3][G:2][Q:40]: Hoeveel kinderen heeft u?; value=2" style="color: green; font-weight: bold">numKids</span>,1,2)</span><br>Onbekende variabele: <span style="background-color: #eee8aa;"><span title="Calculate the sum of values in an array; number sum(arg1, arg2, ... argN)" style="color: blue; font-weight: bold">sum</span>(<span title="[java61764X1X2][G:2][Q:30]: Hoe oud bent u?; value=45" style="color: green; font-weight: bold">age</span>,<span title="Unknown variable" style="border-style: solid; border-width: 2px; border-color: red;"><span title="Unknown variable" style="color: red; font-weight: bold">num_pets</span></span>,<span title="[java61764X1X3][G:2][Q:40]: Hoeveel kinderen heeft u?; value=2" style="color: green; font-weight: bold">numKids</span>)</span><br>Verkeerd aantal parameters: <span style="background-color: #eee8aa;"><span title="Function must have at least 1 argument(s); Not a valid expression" style="border-style: solid; border-width: 2px; border-color: red;"><span title="Function must have at least 1 argument(s); Not a valid expression; Return a formatted string; string sprintf(format, arg1, arg2, ... argN)" style="color: blue; font-weight: bold">sprintf</span></span>()</span>,<span style="background-color: #eee8aa;"><span title="Function does not support that number of arguments: 2. Function supports this many arguments, where -1=unlimited: 3; Not a valid expression" style="border-style: solid; border-width: 2px; border-color: red;"><span title="Function does not support that number of arguments: 2. Function supports this many arguments, where -1=unlimited: 3; Not a valid expression; Excel-style if(test,result_if_true,result_if_false); if(test,result_if_true,result_if_false)" style="color: blue; font-weight: bold">if</span></span>(1,2)</span>,<span style="background-color: #eee8aa;"><span title="Function does not support that number of arguments: 0. Function supports this many arguments, where -1=unlimited: 1,2; Not a valid expression" style="border-style: solid; border-width: 2px; border-color: red;"><span title="Function does not support that number of arguments: 0. Function supports this many arguments, where -1=unlimited: 1,2; Not a valid expression; Format a local date/time; string date(format [, timestamp=time()])" style="color: blue; font-weight: bold">date</span></span>()</span><br>Read-only variabelen wijzigen:<span style="background-color: #eee8aa;"><span title="The value of this variable can not be changed; Not a valid expression" style="border-style: solid; border-width: 2px; border-color: red;"><span title="The value of this variable can not be changed; Not a valid expression; ; value=worker" style="color: #996600; font-weight: bold">TOKEN:ATTRIBUTE_1</span></span><span title="Assigning a new value to a variable" style="color: red; font-weight: bold">+=</span>10</span>,<span style="background-color: #eee8aa;"><span title="The value of this variable can not be changed; Not a valid expression" style="border-style: solid; border-width: 2px; border-color: red;"><span title="The value of this variable can not be changed; Not a valid expression; [java61764X1X1][G:1][Q:10]: Wat is uw voornaam?; value=Peter" style="color: green; font-weight: bold">name</span></span><span title="Assigning a new value to a variable" style="color: red; font-weight: bold">=</span><span title="" style="color: gray">'Sally'</span></span><br>Fout met haakjes: <span style="background-color: #eee8aa;"><span title="Parentheses not balanced" style="border-style: solid; border-width: 2px; border-color: red;"><span title="Parentheses not balanced; Exponential expression; number pow(base, exp)" style="color: blue; font-weight: bold">pow</span></span>(3,4</span>,<span style="background-color: #eee8aa;"><span title="Parentheses not balanced" style="border-style: solid; border-width: 2px; border-color: red;">(</span><span title="Exponential expression; number pow(base, exp)" style="color: blue; font-weight: bold">pow</span>(3,4)</span>,<span style="background-color: #eee8aa;"><span title="Exponential expression; number pow(base, exp)" style="color: blue; font-weight: bold">pow</span>(3,4)<span title="Extra right parentheses detected" style="border-style: solid; border-width: 2px; border-color: red;">)</span></span>


</td><td> <b>Hier is een voorbeeld van goede syntaxis met tooltips</b> <br> Variabelen die zijn gebruikt voordat ze zijn gedeclareerd: <span id="LEMtailor_Q_40_5"><span style="background-color: #eee8aa;"><span title="Deze variabele wordt niet gedeclareerd tot een latere pagina; Geen geldige uitdrukking" style="border-style: solid; border-width: 2px; border-color: red;"><span title="Deze variabele wordt niet gedeclareerd tot een latere pagina; Geen geldige uitdrukking; [java61764X3X6] [G: 3] [Q: 200]: Wie wint de volgende verkiezing ?; value =?" style="color: #FF00FF ; font-weight: bold">notSetYet</span></span></span></span> <br> Onbekende functie: <span style="background-color: #eee8aa;"><span title="Ongedefinieerde functie" style="border-style: solid; border-width: 2px; border-color: red;"><span title="Ongedefinieerde functie" style="color: blue; font-weight: bold">iff</span></span> ( <span title="[java61764X1X4] [G: 2] [V: 50]: Hoeveel huisdieren heb je ?; waarde = 1" style="color: maroon; font-weight: bold">numPets</span> > <span title="[java61764X1X3] [G: 2] [V: 40]: Hoeveel kinderen heb je ?; waarde = 2" style="color: green; font-weight: bold">numKids</span> , 1,2)</span> <br> Onbekende variabele: <span style="background-color: #eee8aa;"><span title="Bereken de som van waarden in een array; getalsom (arg1, arg2, ... argN)" style="color: blue; font-weight: bold">sum</span> ( <span title="[java61764X1X2] [G: 2] [V: 30]: Hoe oud ben je ?; waarde = 45" style="color: green; font-weight: bold">age</span> , <span title="ongedefinieerde variabele" style="border-style: solid; border-width: 2px; border-color: red;"><span title="ongedefinieerde variabele" style="color: red; font-weight: bold">num_pets</span></span> , <span title="[java61764X1X3] [G: 2] [V: 40]: Hoeveel kinderen heb je ?; waarde = 2" style="color: green; font-weight: bold">numKids</span> )</span> <br> Verkeerde # parameters: <span style="background-color: #eee8aa;"><span title="Functie moet ten minste één argument (en) bevatten; Geen geldige uitdrukking" style="border-style: solid; border-width: 2px; border-color: red;"><span title="Functie moet ten minste één argument (en) bevatten; Geen geldige uitdrukking; Retourneer een geformatteerde string; string sprintf (formaat, arg1, arg2, ... argN)" style="color: blue; font-weight: bold">sprintf</span></span> ()</span> , <span style="background-color: #eee8aa;"><span title="Functie ondersteunt dat aantal argumenten niet: 2. Functie ondersteunt dit veel argumenten, waarbij -1 = onbeperkt: 3; Geen geldige uitdrukking" style="border-style: solid; border-width: 2px; border-color: red;"><span title="Functie ondersteunt dat aantal argumenten niet: 2. Functie ondersteunt dit veel argumenten, waarbij -1 = onbeperkt: 3; Geen geldige uitdrukking; Excel-stijl if (test, result_if_true, result_if_false); if (proef result_if_true, result_if_false)" style="color: blue; font-weight: bold">if</span></span> (1,2)</span> , <span style="background-color: #eee8aa;"><span title="Functie ondersteunt dat aantal argumenten niet: 0. Functie ondersteunt dit veel argumenten, waarbij -1 = onbeperkt: 1,2; Geen geldige uitdrukking" style="border-style: solid; border-width: 2px; border-color: red;"><span title="Functie ondersteunt dat aantal argumenten niet: 0. Functie ondersteunt dit veel argumenten, waarbij -1 = onbeperkt: 1,2; Geen geldige uitdrukking; Formatteer een lokale datum / tijd; string date (format [, timestamp = time ()])" style="color: blue; font-weight: bold">date</span></span> ()</span> <br> Wijs alleen-lezen-vars toe: <span style="background-color: #eee8aa;"><span title="De waarde van deze variabele kan niet worden gewijzigd; Geen geldige uitdrukking" style="border-style: solid; border-width: 2px; border-color: red;"><span title="De waarde van deze variabele kan niet worden gewijzigd; Geen geldige uitdrukking; ; value = worker" style="color: #996600; font-weight: bold">TOKEN: ATTRIBUTE_1</span></span> <span title="Een nieuwe waarde toewijzen aan een variabele" style="color: red; font-weight: bold">+ =</span> 10</span> , <span id="LEMtailor_Q_40_12"><span style="background-color: #eee8aa;"><span title="De waarde van deze variabele kan niet worden gewijzigd; Geen geldige uitdrukking" style="border-style: solid; border-width: 2px; border-color: red;"><span title="De waarde van deze variabele kan niet worden gewijzigd; Geen geldige uitdrukking; [java61764X1X1] [G: 1] [V: 10]: Wat is je eerste / voornaam ?; value = Peter" style="color: green; font-weight: bold">name</span></span> <span title="Een nieuwe waarde toewijzen aan een variabele" style="color: red; font-weight: bold">=</span> <span title="" style="color: gray">'Sally'</span></span></span> <br> Ongebalanceerde haakjes: <span style="background-color: #eee8aa;"><span title="Haakjes niet gebalanceerd" style="border-style: solid; border-width: 2px; border-color: red;"><span title="Haakjes niet gebalanceerd; Exponentiële expressie; nummer pow (base, exp)" style="color: blue; font-weight: bold">pow</span></span> (3,4</span> , <span style="background-color: #eee8aa;"><span title="Haakjes niet gebalanceerd" style="border-style: solid; border-width: 2px; border-color: red;">(</span> <span title="Exponentiële expressie; nummer pow (base, exp)" style="color: blue; font-weight: bold">pow</span> (3,4)</span> , <span style="background-color: #eee8aa;"><span title="Exponentiële expressie; nummer pow (base, exp)" style="color: blue; font-weight: bold">pow</span> (3,4) <span title="Extra recht haakjes gedetecteerd" style="border-style: solid; border-width: 2px; border-color: red;">)</span></span>
</td><td><b>Enkele gebruikelijke fouten, kijk naar de tooltips</b><br>Variabelen gebruiken voor definitie: <span id="LEMtailor_Q_40_5"><span style="background-color: #eee8aa;"><span title="This variable is not declared until a later page; Not a valid expression" style="border-style: solid; border-width: 2px; border-color: red;"><span title="This variable is not declared until a later page; Not a valid expression; [java61764X3X6][G:3][Q:200]: Wie wint de volgende verkiezingen?; value=?" style="color: #FF00FF ; font-weight: bold">notSetYet</span></span></span></span><br>Onbekende functie: <span style="background-color: #eee8aa;"><span title="Undefined function" style="border-style: solid; border-width: 2px; border-color: red;"><span title="Undefined function" style="color: blue; font-weight: bold">iff</span></span>(<span title="[java61764X1X4][G:2][Q:50]: Hoeveel huisdieren heeft u?; value=1" style="color: maroon; font-weight: bold">numPets</span> &gt; <span title="[java61764X1X3][G:2][Q:40]: Hoeveel kinderen heeft u?; value=2" style="color: green; font-weight: bold">numKids</span>,1,2)</span><br>Onbekende variabele: <span style="background-color: #eee8aa;"><span title="Calculate the sum of values in an array; number sum(arg1, arg2, ... argN)" style="color: blue; font-weight: bold">sum</span>(<span title="[java61764X1X2][G:2][Q:30]: Hoe oud bent u?; value=45" style="color: green; font-weight: bold">age</span>,<span title="Unknown variable" style="border-style: solid; border-width: 2px; border-color: red;"><span title="Unknown variable" style="color: red; font-weight: bold">num_pets</span></span>,<span title="[java61764X1X3][G:2][Q:40]: Hoeveel kinderen heeft u?; value=2" style="color: green; font-weight: bold">numKids</span>)</span><br>Verkeerd aantal parameters: <span style="background-color: #eee8aa;"><span title="Function must have at least 1 argument(s); Not a valid expression" style="border-style: solid; border-width: 2px; border-color: red;"><span title="Function must have at least 1 argument(s); Not a valid expression; Return a formatted string; string sprintf(format, arg1, arg2, ... argN)" style="color: blue; font-weight: bold">sprintf</span></span>()</span>,<span style="background-color: #eee8aa;"><span title="Function does not support that number of arguments: 2. Function supports this many arguments, where -1=unlimited: 3; Not a valid expression" style="border-style: solid; border-width: 2px; border-color: red;"><span title="Function does not support that number of arguments: 2. Function supports this many arguments, where -1=unlimited: 3; Not a valid expression; Excel-style if(test,result_if_true,result_if_false); if(test,result_if_true,result_if_false)" style="color: blue; font-weight: bold">if</span></span>(1,2)</span>,<span style="background-color: #eee8aa;"><span title="Function does not support that number of arguments: 0. Function supports this many arguments, where -1=unlimited: 1,2; Not a valid expression" style="border-style: solid; border-width: 2px; border-color: red;"><span title="Function does not support that number of arguments: 0. Function supports this many arguments, where -1=unlimited: 1,2; Not a valid expression; Format a local date/time; string date(format [, timestamp=time()])" style="color: blue; font-weight: bold">date</span></span>()</span><br>Read-only variabelen wijzigen:<span style="background-color: #eee8aa;"><span title="The value of this variable can not be changed; Not a valid expression" style="border-style: solid; border-width: 2px; border-color: red;"><span title="The value of this variable can not be changed; Not a valid expression; ; value=worker" style="color: #996600; font-weight: bold">TOKEN:ATTRIBUTE_1</span></span><span title="Assigning a new value to a variable" style="color: red; font-weight: bold">+=</span>10</span>,<span id="LEMtailor_Q_40_12"><span style="background-color: #eee8aa;"><span title="The value of this variable can not be changed; Not a valid expression" style="border-style: solid; border-width: 2px; border-color: red;"><span title="The value of this variable can not be changed; Not a valid expression; [java61764X1X1][G:1][Q:10]: Wat is uw voornaam?; value=Peter" style="color: green; font-weight: bold">name</span></span><span title="Assigning a new value to a variable" style="color: red; font-weight: bold">=</span><span title="" style="color: gray">'Sally'</span></span></span><br>Fout met haakjes: <span style="background-color: #eee8aa;"><span title="Parentheses not balanced" style="border-style: solid; border-width: 2px; border-color: red;"><span title="Parentheses not balanced; Exponential expression; number pow(base, exp)" style="color: blue; font-weight: bold">pow</span></span>(3,4</span>,<span style="background-color: #eee8aa;"><span title="Parentheses not balanced" style="border-style: solid; border-width: 2px; border-color: red;">(</span><span title="Exponential expression; number pow(base, exp)" style="color: blue; font-weight: bold">pow</span>(3,4)</span>,<span style="background-color: #eee8aa;"><span title="Exponential expression; number pow(base, exp)" style="color: blue; font-weight: bold">pow</span>(3,4)<span title="Extra right parentheses detected" style="border-style: solid; border-width: 2px; border-color: red;">)</span></span>


</td></tr>
</td></tr>
<tr><td> <b>Hier is een deel van de niet-ondersteunde syntaxis</b> <br> Geen ondersteuning voor '++', '-', '%', ';': {min (++ age, --age, age% 2);} <br> Noch '|', '&', '^': {(som (2 | 3,3 & 4,5 ^ 6)}} <br> No arrays: {name [2], name ['mine']}! N! </td><td> <b>Hier is een deel van de niet-ondersteunde syntaxis</b> <br> Geen ondersteuning voor '++', '-', '%', ';': <span style="background-color: #eee8aa;"><span title="Vind de laagste waarde; aantal min (arg1, arg2, ... argN)" style="color: blue; font-weight: bold">min</span> ( <span title="Niet-ondersteunde syntaxis" style="border-style: solid; border-width: 2px; border-color: red;">++</span> <span title="[java61764X1X2] [G: 2] [V: 30]: Hoe oud ben je ?; waarde = 45" style="color: green; font-weight: bold">leeftijd</span> , <span title="Niet-ondersteunde syntaxis" style="border-style: solid; border-width: 2px; border-color: red;">-</span> <span title="[java61764X1X2] [G: 2] [V: 30]: Hoe oud ben je ?; waarde = 45" style="color: green; font-weight: bold">leeftijd</span> , <span title="[java61764X1X2] [G: 2] [V: 30]: Hoe oud ben je ?; waarde = 45" style="color: green; font-weight: bold">leeftijd</span> <span title="Niet-ondersteunde syntaxis" style="border-style: solid; border-width: 2px; border-color: red;">%</span> 2) <span title="Niet-ondersteunde syntaxis" style="border-style: solid; border-width: 2px; border-color: red;">;</span></span> <br> Noch '|', '&', '^': <span style="background-color: #eee8aa;">( <span title="Bereken de som van waarden in een array; getalsom (arg1, arg2, ... argN)" style="color: blue; font-weight: bold">som</span> (2 <span title="Niet-ondersteunde syntaxis" style="border-style: solid; border-width: 2px; border-color: red;">|</span> 3,3 <span title="Niet-ondersteunde syntaxis" style="border-style: solid; border-width: 2px; border-color: red;">&</span> 4,5 <span title="Niet-ondersteunde syntaxis" style="border-style: solid; border-width: 2px; border-color: red;">^</span> 6)</span> } <br> No arrays: <span style="background-color: #eee8aa;"><span title="[java61764X1X1] [G: 1] [V: 10]: Wat is je eerste / voornaam ?; value = Peter" style="color: green; font-weight: bold">name</span> <span title="Niet-ondersteunde syntaxis" style="border-style: solid; border-width: 2px; border-color: red;">[</span> 2 <span title="Niet-ondersteunde syntaxis" style="border-style: solid; border-width: 2px; border-color: red;">]</span> , <span title="[java61764X1X1] [G: 1] [V: 10]: Wat is je voornaam ?; value = Peter" style="color: green; font-weight: bold">name</span> <span title="Niet-ondersteunde syntaxis" style="border-style: solid; border-width: 2px; border-color: red;">[</span> <span title="" style="color: gray">'mine'</span> <span title="Niet-ondersteunde syntaxis" style="border-style: solid; border-width: 2px; border-color: red;">]</span></span>
<tr><td><b>Niet ondersteunde syntax</b><br>Geen ondersteuning voor '++', '--', '%',';': {min(++age, --age,age % 2);}<br>Ook niet voor '|', '&amp;', '^': {(sum(2 | 3,3 &amp; 4,5 ^ 6)}}<br>of voor arrays: {name[2], name['mine']}
</td><td><b>Niet ondersteunde syntax</b><br>Geen ondersteuning voor '++', '--', '%',';': <span style="background-color: #eee8aa;"><span title="Find lowest value; number min(arg1, arg2, ... argN)" style="color: blue; font-weight: bold">min</span>(<span title="Unsupported syntax" style="border-style: solid; border-width: 2px; border-color: red;"> ++ </span><span title="[java61764X1X2][G:2][Q:30]: Hoe oud bent u?; value=45" style="color: green; font-weight: bold">age</span>,<span title="Unsupported syntax" style="border-style: solid; border-width: 2px; border-color: red;"> -- </span><span title="[java61764X1X2][G:2][Q:30]: Hoe oud bent u?; value=45" style="color: green; font-weight: bold">age</span>,<span title="[java61764X1X2][G:2][Q:30]: Hoe oud bent u?; value=45" style="color: green; font-weight: bold">age</span><span title="Unsupported syntax" style="border-style: solid; border-width: 2px; border-color: red;"> % </span>2)<span title="Unsupported syntax" style="border-style: solid; border-width: 2px; border-color: red;"> ; </span></span><br>Ook niet voor '|', '&amp;', '^': <span style="background-color: #eee8aa;">(<span title="Calculate the sum of values in an array; number sum(arg1, arg2, ... argN)" style="color: blue; font-weight: bold">sum</span>(2<span title="Unsupported syntax" style="border-style: solid; border-width: 2px; border-color: red;"> | </span>3,3<span title="Unsupported syntax" style="border-style: solid; border-width: 2px; border-color: red;"> &amp; </span>4,5<span title="Unsupported syntax" style="border-style: solid; border-width: 2px; border-color: red;"> ^ </span>6)</span>}<br>of voor arrays: <span style="background-color: #eee8aa;"><span title="[java61764X1X1][G:1][Q:10]: Wat is uw voornaam; value=Peter" style="color: green; font-weight: bold">name</span><span title="Unsupported syntax" style="border-style: solid; border-width: 2px; border-color: red;"> [ </span>2<span title="Unsupported syntax" style="border-style: solid; border-width: 2px; border-color: red;"> ] </span>,<span title="[java61764X1X1][G:1][Q:10]: Wat is uw voornaam?; value=Peter" style="color: green; font-weight: bold">name</span><span title="Unsupported syntax" style="border-style: solid; border-width: 2px; border-color: red;"> [ </span><span title="" style="color: gray">'mine'</span><span title="Unsupported syntax" style="border-style: solid; border-width: 2px; border-color: red;"> ] </span></span>


</td><td> <b>Hier is een deel van de niet-ondersteunde syntaxis</b> <br> Geen ondersteuning voor '++', '-', '%', ';': <span style="background-color: #eee8aa;"><span title="Vind de laagste waarde; aantal min (arg1, arg2, ... argN)" style="color: blue; font-weight: bold">min</span> ( <span title="Niet-ondersteunde syntaxis" style="border-style: solid; border-width: 2px; border-color: red;">++</span> <span title="[java61764X1X2] [G: 2] [V: 30]: Hoe oud ben je ?; waarde = 45" style="color: green; font-weight: bold">leeftijd</span> , <span title="Niet-ondersteunde syntaxis" style="border-style: solid; border-width: 2px; border-color: red;">-</span> <span title="[java61764X1X2] [G: 2] [V: 30]: Hoe oud ben je ?; waarde = 45" style="color: green; font-weight: bold">leeftijd</span> , <span title="[java61764X1X2] [G: 2] [V: 30]: Hoe oud ben je ?; waarde = 45" style="color: green; font-weight: bold">leeftijd</span> <span title="Niet-ondersteunde syntaxis" style="border-style: solid; border-width: 2px; border-color: red;">%</span> 2) <span title="Niet-ondersteunde syntaxis" style="border-style: solid; border-width: 2px; border-color: red;">;</span></span> <br> Noch '|', '&', '^': <span style="background-color: #eee8aa;">( <span title="Bereken de som van waarden in een array; getalsom (arg1, arg2, ... argN)" style="color: blue; font-weight: bold">som</span> (2 <span title="Niet-ondersteunde syntaxis" style="border-style: solid; border-width: 2px; border-color: red;">|</span> 3,3 <span title="Niet-ondersteunde syntaxis" style="border-style: solid; border-width: 2px; border-color: red;">&</span> 4,5 <span title="Niet-ondersteunde syntaxis" style="border-style: solid; border-width: 2px; border-color: red;">^</span> 6)</span> } <br> No arrays: <span style="background-color: #eee8aa;"><span title="[java61764X1X1] [G: 1] [V: 10]: Wat is je eerste / voornaam ?; value = Peter" style="color: green; font-weight: bold">name</span> <span title="Niet-ondersteunde syntaxis" style="border-style: solid; border-width: 2px; border-color: red;">[</span> 2 <span title="Niet-ondersteunde syntaxis" style="border-style: solid; border-width: 2px; border-color: red;">]</span> , <span title="[java61764X1X1] [G: 1] [V: 10]: Wat is je voornaam ?; value = Peter" style="color: green; font-weight: bold">name</span> <span title="Niet-ondersteunde syntaxis" style="border-style: solid; border-width: 2px; border-color: red;">[</span> <span title="" style="color: gray">'mine'</span> <span title="Niet-ondersteunde syntaxis" style="border-style: solid; border-width: 2px; border-color: red;">]</span></span>
</td><td><b>Niet ondersteunde syntax</b><br>Geen ondersteuning voor '++', '--', '%',';': <span style="background-color: #eee8aa;"><span title="Find lowest value; number min(arg1, arg2, ... argN)" style="color: blue; font-weight: bold">min</span>(<span title="Unsupported syntax" style="border-style: solid; border-width: 2px; border-color: red;"> ++ </span><span title="[java61764X1X2][G:2][Q:30]: Hoe oud bent u?; value=45" style="color: green; font-weight: bold">age</span>,<span title="Unsupported syntax" style="border-style: solid; border-width: 2px; border-color: red;"> -- </span><span title="[java61764X1X2][G:2][Q:30]: Hoe oud bent u?; value=45" style="color: green; font-weight: bold">age</span>,<span title="[java61764X1X2][G:2][Q:30]: Hoe oud bent u?; value=45" style="color: green; font-weight: bold">age</span><span title="Unsupported syntax" style="border-style: solid; border-width: 2px; border-color: red;"> % </span>2)<span title="Unsupported syntax" style="border-style: solid; border-width: 2px; border-color: red;"> ; </span></span><br>Ook niet voor '|', '&amp;', '^': <span style="background-color: #eee8aa;">(<span title="Calculate the sum of values in an array; number sum(arg1, arg2, ... argN)" style="color: blue; font-weight: bold">sum</span>(2<span title="Unsupported syntax" style="border-style: solid; border-width: 2px; border-color: red;"> | </span>3,3<span title="Unsupported syntax" style="border-style: solid; border-width: 2px; border-color: red;"> &amp; </span>4,5<span title="Unsupported syntax" style="border-style: solid; border-width: 2px; border-color: red;"> ^ </span>6)</span>}<br>of voor arrays: <span style="background-color: #eee8aa;"><span title="[java61764X1X1][G:1][Q:10]: Wat is uw voornaam?; value=Peter" style="color: green; font-weight: bold">name</span><span title="Unsupported syntax" style="border-style: solid; border-width: 2px; border-color: red;"> [ </span>2<span title="Unsupported syntax" style="border-style: solid; border-width: 2px; border-color: red;"> ] </span>,<span title="[java61764X1X1][G:1][Q:10]: Wat is uw voornaam?; value=Peter" style="color: green; font-weight: bold">name</span><span title="Unsupported syntax" style="border-style: solid; border-width: 2px; border-color: red;"> [ </span><span title="" style="color: gray">'mine'</span><span title="Unsupported syntax" style="border-style: solid; border-width: 2px; border-color: red;"> ] </span></span>


</td></tr>
</td></tr>
Line 106: Line 105:




Gebruik de if () functie om voorwaardelijk te kiezen of 'Mr.' wordt weergegeven of 'Mrs.'.
Gebruik de if-functie om voorwaardelijk te kiezen of 'Mr.' wordt weergegeven of 'Mrs.'.


The syntaxis is if(test,do_if_true,do_if_false).
The syntaxis is if(test,do_if_true,do_if_false).
Line 122: Line 121:




Zoals hier kan worden opgemerkt, zijn "Mr" en "Mrs" afgestemd op wat de deelnemer als antwoord op vraag "geslacht" selecteert.
Zoals hier kan worden opgemerkt, zijn "Mr" en "Mrs" afgestemd op wat de deelnemer als antwoord op vraag "gender" selecteert.




Line 144: Line 143:
|2||E-mailadres||test@test.com
|2||E-mailadres||test@test.com
|-
|-
​​|3||ATTRIBUTE_2||M
|3||ATTRIBUTE_2||M
|}
|}


Line 150: Line 149:
Tekst in uitnodiging:
Tekst in uitnodiging:


<syntaxhighlight lang="php" enclose="div">
<syntaxhighlight lang="php">


Dear {if(ATTRIBUTE_2=='M','Mr','Mrs')} {LASTNAME},
Dear {if(ATTRIBUTE_2=='M','Mr','Mrs')} {LASTNAME},


u bent uitgenodigd om deel te nemen aan een enquête:
you have been invited to participate in a survey:


https:/...
https:/...
Line 176: Line 175:




In dit voorbeeld worden alle functies van Expressiebeheer gebruikt, waaronder Relevantie, Maatwerk en het vraagtype Vergelijking.
In dit voorbeeld worden alle functies van ExpressionScript gebruikt, waaronder Relevantie, Maatwerk en het vraagtype Vergelijking.


Het laat ook zien dat ze allemaal JavaScript-enabled zijn, dus als je deze functies op een pagina hebt, zal deze dynamisch veranderen als de deelnemer het antwoord instelt of aanpast.
Het laat ook zien dat ze allemaal JavaScript-enabled zijn, dus als je deze functies op een pagina hebt, zal deze dynamisch veranderen als de deelnemer het antwoord invult of aanpast.


{|
{|
|#||Code||Vraag||Type||Relevantie
|#||Code||Vraag||Type||Relevantie
|-
|-
|1|| numKids ||Hoeveel kinderen heeft u?||Numerieke invoer||1
|1||numKids||Hoeveel kinderen heeft u?||Numerical input||1
|-
|-
|2||kid1||Hoe oud is uw eerste kind?||Numerieke invoer||numKids>= 1
|2||kid1||Hoe oud is uw eerste kind?||Numerical input||numKids >= 1
|-
|-
|3||kid2||Hoe oud is uw tweede kind?||Numerieke invoer||numKids>= 2
|3||kid2||Hoe oud is uw tweede kind?||Numerical input||numKids >= 2
|-
|-
|4||kid3||Hoe oud is uw derde kind?||Numerieke invoer||numKids>= 3
|4||kid3||Hoe oud is uw derde kind?||Numerical input||numKids >= 3
|-
|-
|5||kid4||Hoe oud is je vierde kind?||Numerieke invoer||numKids>= 4
|5||kid4||Hoe oud is uw vierde kind?||Numerical input||numKids >= 4
|-
|-
|6||sumKidAges||{sum (kid1.NAOK,kid2. NAOK,kid3.NAOK,kid4.NAOK)} || Vergelijking||1
|6||sumKidAges||{sum(kid1.NAOK,kid2.NAOK,kid3.NAOK,kid4.NAOK)}||Equation||1
|-
|-
|7||kidSummary||U zei dat u {numKids} heeft. {If (numKids == 1, 'kind', 'kinderen')}. {if (numKids> 1, implode ('', 'De som van leeftijden van uw eerste', min (numKids, 4), 'kids is', sumKidAges, '.'), '')}||Tekstweergave| |! 1
|7||kidSummary||U heeft aangegeven dat u {numKids} {if(numKids==1,'kind','kinderen')} heeft. {if(numKids>1,implode(' ','De som van de leeftijden van uw eerste ',min(numKids,4),' kinderen is ',sumKidAges,'.'),' ')}||Text display||1
|}
|}


Line 202: Line 201:




Hieronder staan schermafbeeldingen van representatieve vragen. Zoals je kunt zien, markeert Expressiebeheer alle velden die mogelijk maatwerk bevatten. Hier ziet u voorbeelden van accentuering van de relevantie, het vraagtype Vergelijking en vervangingen binnen een vraag. U kunt ook vervangingen gebruiken in Help, Groepskoptekstweergave, Welkomstbericht en Eindboodschap.
Hieronder staan schermafbeeldingen van representatieve vragen. Zoals je kunt zien, markeert ExpressionScript alle velden die mogelijk maatwerk bevatten. Hier ziet u voorbeelden van accentuering van de relevantie, het vraagtype Vergelijking en vervangingen binnen een vraag. U kunt ook vervangingen gebruiken in Help, Groepskoptekstweergave, Welkomsttekst en Afsluittekst.


In het volgende voorbeeld is, omdat de relevantie {numKids> = 2) is, de vraag alleen zichtbaar als de deelnemer aangeeft minstens 2 kinderen te hebben.
In het volgende voorbeeld is, omdat de relevantie {numKids> = 2) is, de vraag alleen zichtbaar als de deelnemer aangeeft minstens 2 kinderen te hebben.
Line 212: Line 211:
Hieronder zie je dat aan elke variabele het .NAOK-achtervoegsel wordt gebruikt. Dit komt door de manier waarop cascade-relevantie wordt ondersteunt. Als u geen .NAOK had, dan zou de som alleen worden berekend als de persoon 4 kinderen heeft (bijv. Als alle variabelen relevant zijn). Het gebruik van .NAOK betekent dat we de som willen berekenen, zelfs als alle of sommige variabelen irrelevant zijn (bijv. "Niet van toepassing" (NA) is goed (OK)).
Hieronder zie je dat aan elke variabele het .NAOK-achtervoegsel wordt gebruikt. Dit komt door de manier waarop cascade-relevantie wordt ondersteunt. Als u geen .NAOK had, dan zou de som alleen worden berekend als de persoon 4 kinderen heeft (bijv. Als alle variabelen relevant zijn). Het gebruik van .NAOK betekent dat we de som willen berekenen, zelfs als alle of sommige variabelen irrelevant zijn (bijv. "Niet van toepassing" (NA) is goed (OK)).


Het attribuut .NAOK heeft echter alleen invloed op de vraag of variabelen worden doorgegeven aan Expressiebeheer. Als de deelnemer aanvankelijk zegt 3 kinderen te hebben maar dat later aanpast in twee, dan willen we niet de som van de 3 ingevoerde waarden zien, aangezien het derde kind "niet van toepassing is":
Het attribuut .NAOK heeft echter alleen invloed op de vraag of variabelen worden doorgegeven aan ExpressionScript. Als de deelnemer aanvankelijk zegt 3 kinderen te hebben maar dat later aanpast in twee, dan willen we niet de som van de 3 ingevoerde waarden zien, aangezien het derde kind "niet van toepassing is":




Line 218: Line 217:




Elke afzonderlijke uitdrukking heeft een kleurcode met een tan-achtergrond. Zoals je kunt zien, zijn er hier drie afzonderlijke expressies. De laatste bevat een bericht dat alleen wordt weergegeven als de persoon meer dan één kind heeft.
Elke afzonderlijke expressie heeft een kleurcode met een lichtbruine  achtergrond. Zoals je kunt zien, zijn er hier drie afzonderlijke expressies. De laatste bevat een bericht dat alleen wordt weergegeven als de persoon meer dan één kind heeft.




Line 226: Line 225:
Eindelijk, de screenshots.
Eindelijk, de screenshots.


Wanneer de pagina voor het eerst wordt getoond, staat er: "Je hebt 0 '''kinderen'''" in plaats van 'Je hebt 0 '''kind'''".
Wanneer de pagina voor het eerst wordt getoond, staat er: "You have 0 '''children'''" in plaats van "You have 0 '''child'''".




Line 238: Line 237:




Merk op dat de grammatica correct is: "You have 1 '' 'child' ''".
Merk op dat de grammatica correct is: "You have 1 '''child'''".


Nu verander ik de waarde voor het aantal kinderen in 3 en het resultaat wordt direct:
Nu verander ik de waarde voor het aantal kinderen in 3 en het resultaat wordt direct:
Line 248: Line 247:




Nu voer ik leeftijden in voor mijn 'kinderen', en ik krijg dit scherm, waarin hun leeftijden worden opgetelt:
Nu voer ik leeftijden in voor mijn 'kinderen', en ik krijg dit scherm, waarin hun leeftijden worden opgeteld:




Line 265: Line 264:
Merk op dat hoewel ik een waarde van 5.5 had ingevoerd voor het derde kind, het overzicht nu alleen de waarden van de eerste 2 kinderen optelt.
Merk op dat hoewel ik een waarde van 5.5 had ingevoerd voor het derde kind, het overzicht nu alleen de waarden van de eerste 2 kinderen optelt.


De reden hiervoor is dat de 3e waarde nu irrelevant is, en irrelevante waarden worden actief genegeerd door Expressiebeheer.
De reden hiervoor is dat de 3e waarde nu irrelevant is, en irrelevante waarden worden actief genegeerd door ExpressionScript.


Als ik het aantal kinderen weer op 3 zou zetten, zou ik de eerder ingevulde waarde van 5.5 weer zien. Dus ik verlies geen informatie die ik op de pagina heb ingevuld.
Als ik het aantal kinderen weer op 3 zou zetten, zou ik de eerder ingevulde waarde van 5.5 weer zien. Dus ik verlies geen informatie die ik op de pagina heb ingevuld.
Line 301: Line 300:




Expressiebeheer ondersteunt de functie "if (test, do_if_true, do_if_false)", zodat je voorwaardelijke logica of maatwerk kunt uitvoeren. Deze functie kan worden genest om het equivalent van "if {} else if {} else {}" te doen. Je krijgt een melding bij fouten, haakjes niet gebalanceerd (je mist bijv. Een haakje tussen haakjes), of dat je extra haakjes tussen haakjes hebt. Je moet proberen de haakjes te tellen terwijl je lange geneste if-instructies samenstelt, deze opslaat, controleert op syntaxisfouten en deze oplost als deze worden gevonden. Laten we samen het onderstaande voorbeeld bekijken.  
ExpressionScript ondersteunt de functie "if (test, do_if_true, do_if_false)", zodat je voorwaardelijke logica of maatwerk kunt uitvoeren. Deze functie kan worden genest om het equivalent van "if {} else if {} else {}" te doen. Je krijgt een melding bij fouten, haakjes niet gebalanceerd (je mist bijv. een sluithaakje), of dat je extra sluithaakjes hebt. Je moet proberen de haakjes te tellen als je lange geneste if-instructies maakt, deze opslaat, controleren op syntaxisfouten en deze oplossen. Laten we samen het onderstaande voorbeeld bekijken.  


Voorbeeld [[Media:Example_tailoring_group11.zip|downloaden]]
Voorbeeld [[Media:Example_tailoring_group11.zip|downloaden]]
Line 336: Line 335:




Wanneer je een vraag bewerkt, kun je op een gegeven moment een verkeerd aantal haakjes krijgen. Dit is wat er gebeurt als je te weinig hebt:
Als je een naam invoert, staat er: "Hello {naam}."




<center>[[File:em-nested-if-missing-closing-paren.jpg]]</center>
<center>[[File:em-nested-if-name.jpg]]</center>




Als je over het woord "if" gaat, dat is omgeven door een rood kader, staat er "haakjes niet gebalanceerd". In dit geval moeten er vier haakjes worden gesloten na 'al een volwassene!', maar er zijn er maar drie.
Als je over het woord "if" gaat, dat is omgeven door een rood kader, staat er "haakjes niet gebalanceerd". In dit geval moeten er vier haakjes worden gesloten na 'al een volwassene!', maar er zijn er maar drie.


Als je daarentegen een extra rechterhaakje hebt, dan staat dak haakje in een rood vakje:
Als je daarentegen een extra rechterhaakje hebt, dan staat dat haakje in een rood vakje:





Latest revision as of 21:42, 17 February 2022


Samenvatting van eerdere uitleg

Als je de index van de LimeSurvey-handleiding tot nu toe hebt gevolgd, betekent dit dat je de LimeSurvey-terminologie al kent. We hebben expressies en variabelen behandeld om te laten zien hoe we onze enquêtes kunnen verbeteren. Daarna zijn we overgegaan op de manieren en betekenissen van syntax highlighting om te laten zien hoe je syntaxisfouten kunt verbeteren.

Met dit als kennis kunnen we naar de voorbeelden gaan en laten zien hoe je in LimeSurvey met expressies kunt werken.


Syntax markeren

De volgende screenshots geven voorbeelden zonder de tooltips. Een tooltip is een informatieve box die wordt weergegeven wanneer je de muisaanwijzer op een vetgedrukt woord plaatst.

Door de markering van de syntaxis is het eenvoudig om correcte gecompliceerde expressies samen te stellen. Hoewel het LimeSurvey-team van plan is om een ​​grafische gebruikersinterface te maken, kun je de bestaande highlighting gebruiken om fouten snel te zien en op te lossen. Je kunt ook de tooltips gebruiken om de nauwkeurigheid van de expressies te valideren (bijv. bevestig dat je de gewenste variabele(n) hebt geselecteerd).

In de voorbeelden zijn er drie kolommen:

  1. Source - de ruwe tekst die de in te vullen vraagtekst is
  2. Pretty Print - hetzelfde maar dan syntax-highlighted
    • NB Expressies worden getoond met een geelbruine achtergrond, maar zonder de haakjes er omheen in de highlighting.
    • Omdat recursieve vervanging wordt ondersteund zou het tonen van de haakjes in de highlighting leiden tot fouten
  3. Result - de gegenereerde uitvoer van ES
    • Alles dat goed vervangen kan worden
    • Expressies met fouten in-line met highlighting getoond. Fouten staan in een box met rode lijnen.


Juiste syntaxis

Voorbeelden met een juiste syntax:

  1. Waarden: toont bekende variabelen met een kleurverschil wel/niet op de huidige pagina bepaald. Oude INSERTANS:xxxx variabele hebben een eigen stijl van werken met kleur
  2. Question Attributes: met de punt-notatie kun je enkele properties van vragen, de vraagattributen, gebruiken
  3. Math: toont enkele ondersteunde basis en complexe berekeningen
  4. TextProcessing: toont enkele van de mogelijke tekstverwerkingsfuncties
  5. Dates: toont twee beschikbare functies met datums
  6. Conditional: toont het gebruik van de functie if(). De keuzes kunnen genest worden.
  7. Tailored paragraph: je kunt een rapport aanpassen op grond van bekende waarden
  8. EM processes within strings: het tonen dat strings vervangen kunnen worden. Bijvoorbeeld de naam van het plaatje.
  9. EM doesn't process curly braces like these: toont dat als de haakjes niet actief zijn of er een spatie staat tussen het haakje en de expressie dat de expressie niet verwerkt wordt.



Syntaxis met fouten

Wat voorbeelden met vaak in expressies gemaakte fouten. Gebruik dan de tooltips voor een aanvullende uitleg.

  1. Inline JavaScript zonder spatie na een haakje
    • Omdat "document.write" rechts na een haakje komt wordt het door ES/EM aangezien voor een expressie, "document" en "write" zijn dan resp. een onbekende variabele en functie
  2. Onbekende / Fout gespelde variabelen, functies en operatoren
    • De naam van de variabele is "gender" in plaats van of "sex", ES herkent de fout. De operator '++' wordt niet ondersteund.
  3. Waarschuwing als = wordt gebruikt in plaats van eq, of uitvoeren van het toekennen van een waarde
    • De '=' en '+=' zijn in rode tekst en niet in zwart. Als je met de muis erover gaat dan zie je de waarschuwing dat je een waarde toekent
  4. Verkeerd aantal argumenten bij functies
    • Bij if() 4 argumenten in plaats van 3, bij eroverheen gaan met de muis krijg je een fouttekst en de goede syntax
    • sum() heeft een onbeperkt aantal argumenten, maar de komma voor het sluithaakje is fout
  5. Verkeerd aantal haakjes
    • Dit komt vaak voor bij het maken van expressies
    • Twee voorbeelden met ontbrekend sluithaakje en een met teveel sluithaakjes.
  6. Niet ondersteunde syntax
    • Als je een niet ondersteunde operator of interpunctie gebruikt
  7. Ongeldige toekenningen
    • Enkele variabelen zijn readWrite en kunnen dus gewijzigd worden. Anderen zijn read-only.
    • Een fout is dus het wijzigen van een read-only variabele.
    • Je krijgt ook een foutmelding als je een waarde toekent aan den vergelijking of een string.



"Live" voorbeelden van syntaxis markering met actieve tooltips

Bron Opmaak Resultaat
Een voorbeeld zonder fouten met tooltips
Hallo {if (geslacht == 'M', 'Mr.', 'Mevr.')} {achternaam}, het is nu {date ('g: i a', time ())}. Weet je waar je {sum (numPets, numKids)} kinderen en huisdieren zijn?
Een voorbeeld zonder fouten met tooltips
Hallo if(gender == 'M','Mr.','Mevr.') surname, het is nu date('g:i a',time()). Weet je waar je sum(numPets,numKids) kinderen en huisdieren zijn?
Een voorbeeld zonder fouten met tooltips
Hallo Mr. Smith, het is nu 6:07. Weet je waar je 3 kinderen en huisdieren zijn?
Enkele gebruikelijke fouten, kijk naar de tooltips
Variabelen gebruiken voor definitie: {notSetYet}
Onbekende functie: {iff(numPets>numKids,1,2)}
Onbekende variabele: {sum(age,num_pets,numKids)}
Verkeerd aantal parameters: {sprintf()},{if(1,2)},{date()}
Read-only variabelen wijzigen:{TOKEN:ATTRIBUTE_1+=10},{name='Sally'}
Fout met haakjes: {pow(3,4},{(pow(3,4)},{pow(3,4))}
Enkele gebruikelijke fouten, kijk naar de tooltips
Variabelen gebruiken voor definitie: notSetYet
Onbekende functie: iff(numPets > numKids,1,2)
Onbekende variabele: sum(age,num_pets,numKids)
Verkeerd aantal parameters: sprintf(),if(1,2),date()
Read-only variabelen wijzigen:TOKEN:ATTRIBUTE_1+=10,name='Sally'
Fout met haakjes: pow(3,4,(pow(3,4),pow(3,4))
Enkele gebruikelijke fouten, kijk naar de tooltips
Variabelen gebruiken voor definitie: notSetYet
Onbekende functie: iff(numPets > numKids,1,2)
Onbekende variabele: sum(age,num_pets,numKids)
Verkeerd aantal parameters: sprintf(),if(1,2),date()
Read-only variabelen wijzigen:TOKEN:ATTRIBUTE_1+=10,name='Sally'
Fout met haakjes: pow(3,4,(pow(3,4),pow(3,4))
Niet ondersteunde syntax
Geen ondersteuning voor '++', '--', '%',';': {min(++age, --age,age % 2);}
Ook niet voor '|', '&', '^': {(sum(2 | 3,3 & 4,5 ^ 6)}}
of voor arrays: {name[2], name['mine']}
Niet ondersteunde syntax
Geen ondersteuning voor '++', '--', '%',';': min( ++ age, -- age,age % 2) ;
Ook niet voor '|', '&', '^': (sum(2 | 3,3 & 4,5 ^ 6)}
of voor arrays: name [ 2 ] ,name [ 'mine' ]
Niet ondersteunde syntax
Geen ondersteuning voor '++', '--', '%',';': min( ++ age, -- age,age % 2) ;
Ook niet voor '|', '&', '^': (sum(2 | 3,3 & 4,5 ^ 6)}
of voor arrays: name [ 2 ] ,name [ 'mine' ]


Voorbeelden maatwerk (bijv.uitbreiding {INSERTANS:xxx})

Aanhef

Gebruik de if-functie om voorwaardelijk te kiezen of 'Mr.' wordt weergegeven of 'Mrs.'.

The syntaxis is if(test,do_if_true,do_if_false).

# Code Vraag Type
1 geslacht What is your gender? Gender
2 voorbeeld1 Dear {if (gender == 'M', 'Mr.', 'Mrs.')} Smith, ... Lange vrije tekst



Zoals hier kan worden opgemerkt, zijn "Mr" en "Mrs" afgestemd op wat de deelnemer als antwoord op vraag "gender" selecteert.



Aanhef in e-mail uitnodiging

U kunt het bovenstaande voorbeeld in de uitnodiging gebruiken met behulp van attributen uit de token-tabel. Gebruik de if-functie om te kiezen of 'Mr.' of 'Mrs.' in de tekst van de e-mail moet worden gebruikt.


De syntaxis is "if(test,do_if_true,do_if_false)".

# attribuut waarde
1 Achternaam Smith
2 E-mailadres test@test.com
3 ATTRIBUTE_2 M


Tekst in uitnodiging:

Dear {if(ATTRIBUTE_2=='M','Mr','Mrs')} {LASTNAME},

you have been invited to participate in a survey:

https:/...



E-mail:



Voorbeelden berekening /beoordeling

Berekenen beoordelingswaarden bij uitvoering en opslaan van de resultaten

In dit voorbeeld worden alle functies van ExpressionScript gebruikt, waaronder Relevantie, Maatwerk en het vraagtype Vergelijking.

Het laat ook zien dat ze allemaal JavaScript-enabled zijn, dus als je deze functies op een pagina hebt, zal deze dynamisch veranderen als de deelnemer het antwoord invult of aanpast.

# Code Vraag Type Relevantie
1 numKids Hoeveel kinderen heeft u? Numerical input 1
2 kid1 Hoe oud is uw eerste kind? Numerical input numKids >= 1
3 kid2 Hoe oud is uw tweede kind? Numerical input numKids >= 2
4 kid3 Hoe oud is uw derde kind? Numerical input numKids >= 3
5 kid4 Hoe oud is uw vierde kind? Numerical input numKids >= 4
6 sumKidAges {sum(kid1.NAOK,kid2.NAOK,kid3.NAOK,kid4.NAOK)} Equation 1
7 kidSummary U heeft aangegeven dat u {numKids} {if(numKids==1,'kind','kinderen')} heeft. {if(numKids>1,implode(' ','De som van de leeftijden van uw eerste ',min(numKids,4),' kinderen is ',sumKidAges,'.'),' ')} Text display 1


Voorbeeld downloaden.


Hieronder staan schermafbeeldingen van representatieve vragen. Zoals je kunt zien, markeert ExpressionScript alle velden die mogelijk maatwerk bevatten. Hier ziet u voorbeelden van accentuering van de relevantie, het vraagtype Vergelijking en vervangingen binnen een vraag. U kunt ook vervangingen gebruiken in Help, Groepskoptekstweergave, Welkomsttekst en Afsluittekst.

In het volgende voorbeeld is, omdat de relevantie {numKids> = 2) is, de vraag alleen zichtbaar als de deelnemer aangeeft minstens 2 kinderen te hebben.



Hieronder zie je dat aan elke variabele het .NAOK-achtervoegsel wordt gebruikt. Dit komt door de manier waarop cascade-relevantie wordt ondersteunt. Als u geen .NAOK had, dan zou de som alleen worden berekend als de persoon 4 kinderen heeft (bijv. Als alle variabelen relevant zijn). Het gebruik van .NAOK betekent dat we de som willen berekenen, zelfs als alle of sommige variabelen irrelevant zijn (bijv. "Niet van toepassing" (NA) is goed (OK)).

Het attribuut .NAOK heeft echter alleen invloed op de vraag of variabelen worden doorgegeven aan ExpressionScript. Als de deelnemer aanvankelijk zegt 3 kinderen te hebben maar dat later aanpast in twee, dan willen we niet de som van de 3 ingevoerde waarden zien, aangezien het derde kind "niet van toepassing is":



Elke afzonderlijke expressie heeft een kleurcode met een lichtbruine achtergrond. Zoals je kunt zien, zijn er hier drie afzonderlijke expressies. De laatste bevat een bericht dat alleen wordt weergegeven als de persoon meer dan één kind heeft.



Eindelijk, de screenshots.

Wanneer de pagina voor het eerst wordt getoond, staat er: "You have 0 children" in plaats van "You have 0 child".



Als ik de waarde voor het aantal kinderen in 1 verander, dan wordt dit direct aangepast, ook al staat het op dezelfde pagina.



Merk op dat de grammatica correct is: "You have 1 child".

Nu verander ik de waarde voor het aantal kinderen in 3 en het resultaat wordt direct:

Let op het voorwaardelijke bericht onderaan: "The sum of ages of your first 3 kids is 0.".



Nu voer ik leeftijden in voor mijn 'kinderen', en ik krijg dit scherm, waarin hun leeftijden worden opgeteld:



Nogmaals, de score en het display worden onmiddellijk bijgewerkt terwijl ik de waarden invoeg, zodat je dit kunt gebruiken om een ​​lopend totaal van een beoordelingsscore te laten zien.


Nu verander ik de waarde voor het aantal kinderen in 2 en de pagina wordt:



Merk op dat hoewel ik een waarde van 5.5 had ingevoerd voor het derde kind, het overzicht nu alleen de waarden van de eerste 2 kinderen optelt.

De reden hiervoor is dat de 3e waarde nu irrelevant is, en irrelevante waarden worden actief genegeerd door ExpressionScript.

Als ik het aantal kinderen weer op 3 zou zetten, zou ik de eerder ingevulde waarde van 5.5 weer zien. Dus ik verlies geen informatie die ik op de pagina heb ingevuld.

Als ik echter naar een andere pagina blader, worden alle irrelevante waarden NULLED in de sessie en in de database. Dus, als ik de waarde op 2 zou houden, naar de volgende pagina ga en weer terug ga en vervolgens het aantal kinderen op 3 zet, dan ben je de waarde 5,5 kwijt.


Gegevens invullen en zien dat de gegevens dynamisch op dezelfde pagina worden bijgewerkt

Dit voorbeeld toont het maatwerk.

Voorbeeld downloaden.

Dit is hoe de pagina er in eerste instantie uitziet. Je ziet alleen de vraag in welke stad je woont:



Kijk wat er gebeurd als je een antwoord invult:


Terwijl je antwoordt, wordt de tabel onder aan de pagina bijgewerkt om de antwoordcodes en waarden van je antwoorden weer te geven.


Voorbeeld gebruikelijke foutopsporing

Geneste if-statements (Conditionele logica)

ExpressionScript ondersteunt de functie "if (test, do_if_true, do_if_false)", zodat je voorwaardelijke logica of maatwerk kunt uitvoeren. Deze functie kan worden genest om het equivalent van "if {} else if {} else {}" te doen. Je krijgt een melding bij fouten, haakjes niet gebalanceerd (je mist bijv. een sluithaakje), of dat je extra sluithaakjes hebt. Je moet proberen de haakjes te tellen als je lange geneste if-instructies maakt, deze opslaat, controleren op syntaxisfouten en deze oplossen. Laten we samen het onderstaande voorbeeld bekijken.

Voorbeeld downloaden


Ten eerste, als er niets is ingevoerd, zie je gewoon 'Hello'.



Als je een naam invoert, staat er: "Hello {naam}."



Als je een leeftijd invoert, krijg je een bericht op maat, afhankelijk van of je al dan niet een kind bent in de pre-schoolleeftijd:



School ouder, tiener of volwassen. Hier is een tiener die anoniem wil zijn:



Hier is het logica-bestand van de groep. Zoals je kunt zien in de "if-based" vraag, zijn er geneste if-statements gebaseerd op de leeftijd van de persoon.



Als je een naam invoert, staat er: "Hello {naam}."



Als je over het woord "if" gaat, dat is omgeven door een rood kader, staat er "haakjes niet gebalanceerd". In dit geval moeten er vier haakjes worden gesloten na 'al een volwassene!', maar er zijn er maar drie.

Als je daarentegen een extra rechterhaakje hebt, dan staat dat haakje in een rood vakje:



Wanneer je de vraag bewerkt, ziet de vraag er als volgt uit: