x

Hovedkapitler

  1. LimeSurvey Cloud vs LimeSurvey CE
  2. LimeSurvey Cloud - Hurtig startguide
  3. LimeSurvey CE - Installation
  4. Sådan designes en god undersøgelse (guide)
  5. Kom godt i gang
  6. LimeSurvey konfiguration
  7. Introduktion - Undersøgelser
  8. Se undersøgelsesindstillinger
  9. Se undersøgelsesmenuen
  10. Se undersøgelsens struktur
  11. Introduktion - Spørgsmål
  12. Introduktion - Spørgegrupper
  13. Introduktion - Undersøgelser - Ledelse
  14. Indstillinger for undersøgelsesværktøjslinje
  15. Flersproget undersøgelse
  16. Hurtig startguide - ExpressionScript
  17. Avancerede egenskaber
  18. Generelle FAQ
  19. Fejlfinding
  20. Løsninger
  21. Licens
  22. Versionsændringslog
  23. Plugins - Avanceret
 Actions

ExpressionScript How-tos/da: Difference between revisions

From LimeSurvey Manual

Maren.fritz (talk | contribs)
Created page with "Sådan gør du ExpressionScript"
 
Maren.fritz (talk | contribs)
Created page with "Når du rent faktisk redigerer spørgsmålet, ser spørgsmålet således ud:"
 
(71 intermediate revisions by the same user not shown)
Line 3: Line 3:




=Overview of what has been previously explained=
=Oversigt over det, der tidligere er blevet forklaret=




If you have followed so far the structure of the LimeSurvey manual, it means that you already the [[ExpressionScript - Presentation#Key_Definitions|LimeSurvey terminology]]. Next, we covered expressions and variables in order to learn how to enhance our surveys. In the next part, we moved to the types and meanings of [[ExpressionScript - Presentation#Syntax Highlighting|syntax highlighting]] to learn how to correct syntax errors.  
Hvis du hidtil har fulgt strukturen i LimeSurvey-manualen, betyder det, at du allerede har [[ExpressionScript - Presentation#Key_Definitions|LimeSurvey-terminologien]]. Dernæst dækkede vi udtryk og variabler for at lære at forbedre vores undersøgelser. I den næste del flyttede vi til typerne og betydningerne af [[ExpressionScript - Præsentation#Syntax Highlighting|syntax highlighting]] for at lære, hvordan man retter syntaksfejl.  


With these basic notions covered, we could move towards examples and explaining how expressions work within LimeSurvey.  
Med disse grundlæggende begreber dækket, kunne vi bevæge os hen imod eksempler og forklare, hvordan udtryk fungerer i LimeSurvey.  




=Syntax Highlighting=
=Syntaksfremhævning=




The following screenshots give examples, but do not show the values of the tooltips. A tooltip is an informative box which is displayed whenever you hover the mouse over any bold colored words.
Følgende skærmbilleder giver eksempler, men viser ikke værdierne af værktøjstip. Et værktøjstip er en informativ boks, som vises, når du holder musen hen over ord med fed farve.


Because of this syntax highlighting, it is very easy to compose correct expressions, even the ones that are complicated. Although the LimeSurvey team plans to try to build an Expression Builder GUI, you can use the existing syntax-highlighting to quickly identify and fix typos. You can also use the tooltips to validate the accuracy of your expressions (e.g., confirm you have selected the desired variable(s)).
På grund af denne syntaksfremhævning er det meget nemt at komponere korrekte udtryk, selv dem der er komplicerede. Selvom LimeSurvey-teamet planlægger at forsøge at bygge en Expression Builder GUI, kan du bruge den eksisterende syntaks-fremhævning til hurtigt at identificere og rette stavefejl. Du kan også bruge værktøjstip til at validere nøjagtigheden af dine udtryk (f.eks. bekræfte, at du har valgt den eller de ønskede variabler).


In each of the examples, there are three columns:
I hvert af eksemplerne er der tre kolonner:
#Source - this is the raw text that you would enter into the LimeSurvey question field
#Source - dette er den rå tekst, som du ville indtaste i LimeSurvey-spørgsmålsfeltet
#Pretty Print - this is the syntax-highlighted equivalent of what you entered
#Pretty Print - dette er den syntaks-fremhævede ækvivalent af det, du indtastede
#*Note that Expressions are shown with a tan background, but not surrounded by curly braces in this highlighting.
#*Bemærk, at udtryk vises med en brun baggrund, men ikke omgivet af krøllede klammeparenteser i denne fremhævning.
#*Since EM supports recursive substitution, showing curly braces in the highlighting would cause syntax errors
#*Da EM understøtter rekursiv substitution, vil visning af krøllede klammeparenteser i fremhævningen forårsage syntaksfejl
#Result - this is the output generated when EM processes the source
#Resultat - dette er det output, der genereres, når EM behandler kilden
#*Everything that can be properly substituted is
#*Alt, der kan erstattes korrekt, er
#*Expressions with errors are shown in-line, with syntax highlighting. Errors are surrounded by a red-lined box.
#*Udtryk med fejl vises in-line, med syntaksfremhævning. Fejl er omgivet af en rød-linet boks.




==Proper Syntax==
==Korrekt syntaks==




You may find below examples of proper syntax:
Nedenfor kan du finde eksempler på korrekt syntaks:
#Values: shows that known variables are color coded according to whether are set on the current page. Old-style INSERTANS:xxxx gets its own color-coding style
#Values: viser, at kendte variabler er farvekodede efter, om de er indstillet på den aktuelle side. Gammel stil INSERTANS:xxxx får sin egen farvekodningsstil
#Question Attributes: shows that dot notation can access some properties of questions
#Spørgsmålsattributter: viser, at punktnotation kan få adgang til nogle egenskaber ved spørgsmål
#Math: shows that basic and complex calculations are supported
#Math: viser, at grundlæggende og komplekse beregninger understøttes
#TextProcessing: shows some of the available text-processing functions
#TextProcessing: viser nogle af de tilgængelige tekstbehandlingsfunktioner
#Dates: shows two of the available date-related functions
#Dates: viser to af de tilgængelige datorelaterede funktioner
#Conditional: shows the usage of the if() function. The choices can be nested.
#Conditional: viser brugen af if()-funktionen. Valgene kan indlejres.
#Tailored paragraph: you can completely customize a report based upon prior values
#Skræddersyet afsnit: du kan fuldstændigt tilpasse en rapport baseret på tidligere værdier
#EM processes within strings: shows that it can do substitutions within strings. This example generates a tailored image name.
#EM processer inden for strenge: viser, at den kan foretage substitutioner inden for strenge. Dette eksempel genererer et skræddersyet billednavn.
#EM doesn't process curly braces like these: shows that if the curly braces are escaped, or there is a white space between the expression and the curly braces, ES ignores the expression.
#EM behandler ikke krøllede klammeparenteser som disse: viser, at hvis de krøllede klammeparenteser er escaped, eller der er et mellemrum mellem udtrykket og krøllede klammeparenteser, ignorerer ES udtrykket.




Line 46: Line 46:




==EM Syntax Containing Errors==
==EM-syntaks indeholdende fejl==




Here are examples of common errors when typing ES expressions. Note that the tooltips provide additional information.
Her er eksempler på almindelige fejl ved indtastning af ES-udtryk. Bemærk, at værktøjstippene giver yderligere information.
#Inline Javascript that forgot to add spaces after curly brace
#Inline Javascript, der glemte at tilføje mellemrum efter krøllet klammeparentes
#*Since "document.write" appears right after a curly brace, EM thinks it is an expression, and red-boxes "document" and "write" since they are undefined variable and functions, respectively
#*Da "document.write" vises lige efter en krøllet klammeparentes, tror EM, at det er et udtryk, og rød- boksene "dokument" og "skriv", da de er henholdsvis udefinerede variable og funktioner
#Unknown/Misspelled variables, functions and operators
#Ukendte/Fejlstavede variabler, funktioner og operatorer
#*Here we forgot that we are using the variable name "gender" instead of "sex", but EM catches that error. It also red-boxes '++', since that is not a supported operator.
#*Her har vi glemt, at vi bruger variabelnavnet "køn" i stedet for " sex", men EM fanger den fejl. Det røde også '++', da det ikke er en understøttet operator.
#Warns if use = instead of eq, or perform value assignments
#Advarer hvis brug = i stedet for eq, eller udfør værditildelinger
#*Note that the '=' and '+=' are in red text instead of black. If you hover the mouse over them, you will see warnings that you are assigning a value.
#*Bemærk at '=' og '+=' er i rød tekst i stedet for sort. Hvis du holder musen over dem, vil du se advarsler om, at du tildeler en værdi.
#Wrong number of arguments for functions
#Forkert antal argumenter for funktioner
#*if() takes 3 arguments, but it has been given 4, so hovering over the red-boxed "if" will explain the error and show the supported syntax
#*if() tager 3 argumenter, men den har fået 4, så svæver over den røde boks vil "if" forklare fejlen og vise den understøttede syntaks
#*sum() takes an unlimited number of arguments, but we had a trailing comma before the closing parentheses, so that is red-boxed
#*sum() tager et ubegrænset antal argumenter, men vi havde et afsluttende komma før den afsluttende parentes, så det er rødt
#Mismatched parentheses
#Umatchede parenteser
#*This is one of the most common errors when writing expressions.
#*Dette er en af de mest almindelige fejl ved skrivning af udtryk.
#*This shows two examples of missing closing parentheses, and one example of having one too many closing parentheses.
#*Dette viser to eksempler på manglende lukkeparenteser, og et eksempel på at have én for mange lukkeparenteser.
#Unsuported syntax
#Uunderstøttet syntaks
#*If you use an operator or punctuation that ES does not support, it will red-box it.
#*Hvis du bruger en operator eller tegnsætning, som ES ikke understøtter, vil den rød-bokse den.
#Invalid assignments
#Ugyldige tildelinger
#*Some variables are readWrite and can have their values changed. Others are read-only.
#*Nogle variable er readWrite og kan få deres værdier ændret. Andre er skrivebeskyttede.
#*If you try to change the value of a read-only variable, you can't. EM will red-box the attempt.
#*Hvis du prøver at ændre værdien af en skrivebeskyttet variabel, kan du ikke. EM vil rød-boks forsøget.
#*If you try to assign a value to an equation or a string, you will also get an error
#*Hvis du forsøger at tildele en værdi til en ligning eller en streng, vil du også få en fejl




Line 73: Line 73:




=="Live" examples of Syntax Highlighting with active tooltips==
=="Live" eksempler på syntaksfremhævning med aktive værktøjstip==




<table border="1">
<table border="1">
<tr><th>Source</th><th>Pretty Print</th><th>Result</th></tr><tr><td><b>Here is an example of OK syntax with tooltips</b><br>Hello {if(gender=='M','Mr.','Mrs.')} {surname}, it is now {date('g:i a',time())}. Do you know where your {sum(numPets,numKids)} children and pets are?
<tr><th> Kilde</th><th> Smukt print</th><th> Resultat</th></tr><tr><td> <b>Her er et eksempel på OK-syntaks med værktøjstip</b><br> Hej {if(gender=='M','Mr.','Mrs.')} {efternavn}, det er nu {date('g:i a',time())}. Ved du, hvor dine {sum(numPets,numKids)} børn og kæledyr er?


</td><td><b>Here is an example of OK syntax with tooltips</b><br>Hello <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]: What is your gender (male/female)?; 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">'Mrs.'</span>)</span> <span style="background-color: #eee8aa;"><span title="[java61764X1X1][G:1][Q:20]: What is your last/surname?; value=Smith" style="color: green; font-weight: bold">surname</span></span>, it is now <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>. Do you know where your <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]: How many pets do you have?; value=1" style="color: maroon; font-weight: bold">numPets</span>,<span title="[java61764X1X3][G:2][Q:40]: How many kids do you have?; value=2" style="color: green; font-weight: bold">numKids</span>)</span> children and pets are?
</td><td><b>Her er et eksempel på OK-syntaks med værktøjstip</b><br> Hej <span style="background-color: #eee8aa;">, <span title="Excel-stil if(test,resultat_hvis_sandt,resultat_hvis_falskt); hvis (test, resultat_hvis_sandt, resultat_hvis_falsk)" style="color: blue; font-weight: bold">hvis</span> ( <span title="[java61764X1X5][G:2][Q:110]: Hvad er dit køn (mand/kvinde)?; værdi=M" style="color: green; font-weight: bold">køn</span> == <span title="" style="color: gray">'M'</span> , <span title="" style="color: gray">'Mr.'</span> , <span title="" style="color: gray">'Fru'</span> )</span> <span style="background-color: #eee8aa;"><span title="[java61764X1X1][G:1][Q:20]: Hvad er dit efternavn/efternavn?; værdi=Smith" style="color: green; font-weight: bold">efternavn</span></span> , er det nu <span style="background-color: #eee8aa;"><span title="Formater en lokal dato/tid; strengdato(format [, tidsstempel=tid()])" style="color: blue; font-weight: bold">dato</span> ( <span title="" style="color: gray">'g:i a'</span> , <span title="Returner det aktuelle UNIX-tidsstempel; tal tid()" style="color: blue; font-weight: bold">tid</span> ())</span> . Ved du, hvor din <span style="background-color: #eee8aa;"><span title="Beregn summen af værdier i et array; tal sum(arg1, arg2, ... argN)" style="color: blue; font-weight: bold">sum</span> ( <span title="[java61764X1X4][G:2][Q:50]: Hvor mange kæledyr har du?; værdi=1" style="color: maroon; font-weight: bold">antalPets</span> , <span title="[java61764X1X3][G:2][Q:40]: Hvor mange børn har du?; værdi=2" style="color: green; font-weight: bold">numKids</span> )</span> børn og kæledyr er?


</td><td><b>Here is an example of OK syntax with tooltips</b><br>Hello <span id="LEMtailor_Q_40_1">Mr.</span> <span id="LEMtailor_Q_40_2">Smith</span>, it is now 6:07 am. Do you know where your <span id="LEMtailor_Q_40_4">3</span> children and pets are?
</td><td><b>Her er et eksempel på OK-syntaks med værktøjstip</b><br> Hej <span id="LEMtailor_Q_40_1">Mr.</span> <span id="LEMtailor_Q_40_2">Smith</span> , klokken er nu 06:07. Ved du hvor dine <span id="LEMtailor_Q_40_4">3</span> børn og kæledyr er?
</td></tr>
</td></tr>  
<tr><td><b>Here are common errors so you can see the tooltips</b><br>Variables used before they are declared: {notSetYet}<br>Unknown Function: {iff(numPets&gt;numKids,1,2)}<br>Unknown Variable: {sum(age,num_pets,numKids)}<br>Wrong # parameters: {sprintf()},{if(1,2)},{date()}<br>Assign read-only-vars:{TOKEN:ATTRIBUTE_1+=10},{name='Sally'}<br>Unbalanced parentheses: {pow(3,4},{(pow(3,4)},{pow(3,4))}
<tr><td> <b>Her er almindelige fejl, så du kan se værktøjstip</b><br> Variabler brugt før de erklæres: {notSetYet}<br> Ukendt funktion: {iff(antalPets>numKids,1,2)}<br> Ukendt variabel: {sum(age,num_pets,numKids)}<br> Forkerte # parametre: {sprintf()},{if(1,2)},{date()}<br> Tildel skrivebeskyttede-vars:{TOKEN:ATTRIBUTE_1+=10},{name='Sally'}<br> Ubalancerede parenteser: {pow(3,4},{(pow(3,4)},{pow(3,4))}


</td><td><b>Here are common errors so you can see the tooltips</b><br>Variables used before they are declared: <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]: Who will win the next election?; value=?" style="color: #FF00FF ; font-weight: bold">notSetYet</span></span></span><br>Unknown Function: <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]: How many pets do you have?; value=1" style="color: maroon; font-weight: bold">numPets</span> &gt; <span title="[java61764X1X3][G:2][Q:40]: How many kids do you have?; value=2" style="color: green; font-weight: bold">numKids</span>,1,2)</span><br>Unknown Variable: <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]: How old are you?; value=45" style="color: green; font-weight: bold">age</span>,<span title="Undefined variable" style="border-style: solid; border-width: 2px; border-color: red;"><span title="Undefined variable" style="color: red; font-weight: bold">num_pets</span></span>,<span title="[java61764X1X3][G:2][Q:40]: How many kids do you have?; value=2" style="color: green; font-weight: bold">numKids</span>)</span><br>Wrong # 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>Assign read-only-vars:<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]: What is your first/given name?; 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>Unbalanced parentheses: <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>Her er almindelige fejl, så du kan se værktøjstip</b><br> Variabler brugt før de erklæres: <span style="background-color: #eee8aa;"><span title="Denne variabel deklareres ikke før en senere side; Ikke et gyldigt udtryk" style="border-style: solid; border-width: 2px; border-color: red;"><span title="Denne variabel deklareres ikke før en senere side; Ikke et gyldigt udtryk; [java61764X3X6][G:3][Q:200]: Hvem vinder næste valg?; værdi=?" style="color: #FF00FF ; font-weight: bold">notSetYet</span></span></span><br> Ukendt funktion: <span style="background-color: #eee8aa;"><span title="Udefineret funktion" style="border-style: solid; border-width: 2px; border-color: red;"><span title="Udefineret funktion" style="color: blue; font-weight: bold">iff</span></span> ( <span title="[java61764X1X4][G:2][Q:50]: Hvor mange kæledyr har du?; værdi=1" style="color: maroon; font-weight: bold">numPets</span> > <span title="[java61764X1X3][G:2][Q:40]: Hvor mange børn har du?; værdi=2" style="color: green; font-weight: bold">numBids</span> ,1,2)</span><br> Ukendt variabel: <span style="background-color: #eee8aa;"><span title="Beregn summen af værdier i et array; tal sum(arg1, arg2, ... argN)" style="color: blue; font-weight: bold">sum</span> ( <span title="[java61764X1X2][G:2][Q:30]: Hvor gammel er du?; værdi=45" style="color: green; font-weight: bold">age</span> , <span title="Udefineret variabel" style="border-style: solid; border-width: 2px; border-color: red;"><span title="Udefineret variabel" style="color: red; font-weight: bold">num_pets</span></span> , <span title="[java61764X1X3][G:2][Q:40]: Hvor mange børn har du?; værdi=2" style="color: green; font-weight: bold">numKids</span> )</span><br> Forkerte # parametre: <span style="background-color: #eee8aa;"><span title="Funktionen skal have mindst 1 argument(er); Ikke et gyldigt udtryk" style="border-style: solid; border-width: 2px; border-color: red;"><span title="Funktionen skal have mindst 1 argument(er); Ikke et gyldigt udtryk; Returner en formateret streng; streng sprintf(format, arg1, arg2, ... argN)" style="color: blue; font-weight: bold">sprintf</span></span> ()</span> , <span style="background-color: #eee8aa;"><span title="Funktionen understøtter ikke det antal argumenter: 2. Funktionen understøtter så mange argumenter, hvor -1=ubegrænset: 3; Ikke et gyldigt udtryk" style="border-style: solid; border-width: 2px; border-color: red;"><span title="Funktionen understøtter ikke det antal argumenter: 2. Funktionen understøtter så mange argumenter, hvor -1=ubegrænset: 3; Ikke et gyldigt udtryk; Excel-stil if(test,resultat_hvis_sandt,resultat_hvis_falskt); hvis (test, resultat_hvis_sandt, resultat_hvis_falsk)" style="color: blue; font-weight: bold">if</span></span> (1,2)</span> , <span style="background-color: #eee8aa;"><span title="Funktionen understøtter ikke det antal argumenter: 0. Funktionen understøtter så mange argumenter, hvor -1=ubegrænset: 1,2; Ikke et gyldigt udtryk" style="border-style: solid; border-width: 2px; border-color: red;"><span title="Funktionen understøtter ikke det antal argumenter: 0. Funktionen understøtter så mange argumenter, hvor -1=ubegrænset: 1,2; Ikke et gyldigt udtryk; Formater en lokal dato/tid; strengdato(format [, tidsstempel=tid()])" style="color: blue; font-weight: bold">dato</span></span> ()</span><br> Tildel skrivebeskyttede-vars: <span style="background-color: #eee8aa;"><span title="Værdien af denne variabel kan ikke ændres; Ikke et gyldigt udtryk" style="border-style: solid; border-width: 2px; border-color: red;"><span title="Værdien af denne variabel kan ikke ændres; Ikke et gyldigt udtryk; ; værdi=arbejder" style="color: #996600; font-weight: bold">TOKEN:ATTRIBUTE_1</span></span> <span title="Tildeling af en ny værdi til en variabel" style="color: red; font-weight: bold">+=</span> 10</span> , <span style="background-color: #eee8aa;"><span title="Værdien af denne variabel kan ikke ændres; Ikke et gyldigt udtryk" style="border-style: solid; border-width: 2px; border-color: red;"><span title="Værdien af denne variabel kan ikke ændres; Ikke et gyldigt udtryk; [java61764X1X1][G:1][Q:10]: Hvad er dit fornavn/fornavn?; værdi=Peter" style="color: green; font-weight: bold">navn</span></span> <span title="Tildeling af en ny værdi til en variabel" style="color: red; font-weight: bold">=</span> <span title="" style="color: gray">'Sally'</span></span><br> Ubalancerede parenteser: <span style="background-color: #eee8aa;"><span title="Parentes ikke afbalanceret" style="border-style: solid; border-width: 2px; border-color: red;"><span title="Parentes ikke afbalanceret; Eksponentielt udtryk; tal pow(base, exp)" style="color: blue; font-weight: bold">pow</span></span> (3,4</span> , <span style="background-color: #eee8aa;"><span title="Parentes ikke afbalanceret" style="border-style: solid; border-width: 2px; border-color: red;">(</span> <span title="Eksponentielt udtryk; tal pow(base, exp)" style="color: blue; font-weight: bold">pow</span> (3,4)</span> , <span style="background-color: #eee8aa;"><span title="Eksponentielt udtryk; tal pow(base, exp)" style="color: blue; font-weight: bold">pow</span> (3,4) <span title="Ekstra højre parentes fundet" style="border-style: solid; border-width: 2px; border-color: red;">)</span></span>


</td><td><b>Here are common errors so you can see the tooltips</b><br>Variables used before they are declared: <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]: Who will win the next election?; value=?" style="color: #FF00FF ; font-weight: bold">notSetYet</span></span></span></span><br>Unknown Function: <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]: How many pets do you have?; value=1" style="color: maroon; font-weight: bold">numPets</span> &gt; <span title="[java61764X1X3][G:2][Q:40]: How many kids do you have?; value=2" style="color: green; font-weight: bold">numKids</span>,1,2)</span><br>Unknown Variable: <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]: How old are you?; value=45" style="color: green; font-weight: bold">age</span>,<span title="Undefined variable" style="border-style: solid; border-width: 2px; border-color: red;"><span title="Undefined variable" style="color: red; font-weight: bold">num_pets</span></span>,<span title="[java61764X1X3][G:2][Q:40]: How many kids do you have?; value=2" style="color: green; font-weight: bold">numKids</span>)</span><br>Wrong # 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>Assign read-only-vars:<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]: What is your first/given name?; 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>Unbalanced parentheses: <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>Her er almindelige fejl, så du kan se værktøjstip</b><br> Variabler brugt før de erklæres: <span id="LEMtailor_Q_40_5"><span style="background-color: #eee8aa;"><span title="Denne variabel deklareres ikke før en senere side; Ikke et gyldigt udtryk" style="border-style: solid; border-width: 2px; border-color: red;"><span title="Denne variabel deklareres ikke før en senere side; Ikke et gyldigt udtryk; [java61764X3X6][G:3][Q:200]: Hvem vinder næste valg?; værdi=?" style="color: #FF00FF ; font-weight: bold">notSetYet</span></span></span></span><br> Ukendt funktion: <span style="background-color: #eee8aa;"><span title="Udefineret funktion" style="border-style: solid; border-width: 2px; border-color: red;"><span title="Udefineret funktion" style="color: blue; font-weight: bold">iff</span></span> ( <span title="[java61764X1X4][G:2][Q:50]: Hvor mange kæledyr har du?; værdi=1" style="color: maroon; font-weight: bold">numPets</span> > <span title="[java61764X1X3][G:2][Q:40]: Hvor mange børn har du?; værdi=2" style="color: green; font-weight: bold">numBids</span> ,1,2)</span><br> Ukendt variabel: <span style="background-color: #eee8aa;"><span title="Beregn summen af værdier i et array; tal sum(arg1, arg2, ... argN)" style="color: blue; font-weight: bold">sum</span> ( <span title="[java61764X1X2][G:2][Q:30]: Hvor gammel er du?; værdi=45" style="color: green; font-weight: bold">age</span> , <span title="Udefineret variabel" style="border-style: solid; border-width: 2px; border-color: red;"><span title="Udefineret variabel" style="color: red; font-weight: bold">num_pets</span></span> , <span title="[java61764X1X3][G:2][Q:40]: Hvor mange børn har du?; værdi=2" style="color: green; font-weight: bold">numKids</span> )</span><br> Forkerte # parametre: <span style="background-color: #eee8aa;"><span title="Funktionen skal have mindst 1 argument(er); Ikke et gyldigt udtryk" style="border-style: solid; border-width: 2px; border-color: red;"><span title="Funktionen skal have mindst 1 argument(er); Ikke et gyldigt udtryk; Returner en formateret streng; streng sprintf(format, arg1, arg2, ... argN)" style="color: blue; font-weight: bold">sprintf</span></span> ()</span> , <span style="background-color: #eee8aa;"><span title="Funktionen understøtter ikke det antal argumenter: 2. Funktionen understøtter så mange argumenter, hvor -1=ubegrænset: 3; Ikke et gyldigt udtryk" style="border-style: solid; border-width: 2px; border-color: red;"><span title="Funktionen understøtter ikke det antal argumenter: 2. Funktionen understøtter så mange argumenter, hvor -1=ubegrænset: 3; Ikke et gyldigt udtryk; Excel-stil if(test,resultat_hvis_sandt,resultat_hvis_falskt); hvis (test, resultat_hvis_sandt, resultat_hvis_falsk)" style="color: blue; font-weight: bold">if</span></span> (1,2)</span> , <span style="background-color: #eee8aa;"><span title="Funktionen understøtter ikke det antal argumenter: 0. Funktionen understøtter så mange argumenter, hvor -1=ubegrænset: 1,2; Ikke et gyldigt udtryk" style="border-style: solid; border-width: 2px; border-color: red;"><span title="Funktionen understøtter ikke det antal argumenter: 0. Funktionen understøtter så mange argumenter, hvor -1=ubegrænset: 1,2; Ikke et gyldigt udtryk; Formater en lokal dato/tid; strengdato(format [, tidsstempel=tid()])" style="color: blue; font-weight: bold">dato</span></span> ()</span><br> Tildel skrivebeskyttede-vars: <span style="background-color: #eee8aa;"><span title="Værdien af denne variabel kan ikke ændres; Ikke et gyldigt udtryk" style="border-style: solid; border-width: 2px; border-color: red;"><span title="Værdien af denne variabel kan ikke ændres; Ikke et gyldigt udtryk; ; værdi=arbejder" style="color: #996600; font-weight: bold">TOKEN:ATTRIBUTE_1</span></span> <span title="Tildeling af en ny værdi til en variabel" style="color: red; font-weight: bold">+=</span> 10</span> , <span id="LEMtailor_Q_40_12"><span style="background-color: #eee8aa;"><span title="Værdien af denne variabel kan ikke ændres; Ikke et gyldigt udtryk" style="border-style: solid; border-width: 2px; border-color: red;"><span title="Værdien af denne variabel kan ikke ændres; Ikke et gyldigt udtryk; [java61764X1X1][G:1][Q:10]: Hvad er dit fornavn/fornavn?; værdi=Peter" style="color: green; font-weight: bold">navn</span></span> <span title="Tildeling af en ny værdi til en variabel" style="color: red; font-weight: bold">=</span> <span title="" style="color: gray">'Sally'</span></span></span><br> Ubalancerede parenteser: <span style="background-color: #eee8aa;"><span title="Parentes ikke afbalanceret" style="border-style: solid; border-width: 2px; border-color: red;"><span title="Parentes ikke afbalanceret; Eksponentielt udtryk; tal pow(base, exp)" style="color: blue; font-weight: bold">pow</span></span> (3,4</span> , <span style="background-color: #eee8aa;"><span title="Parentes ikke afbalanceret" style="border-style: solid; border-width: 2px; border-color: red;">(</span> <span title="Eksponentielt udtryk; tal pow(base, exp)" style="color: blue; font-weight: bold">pow</span> (3,4)</span> , <span style="background-color: #eee8aa;"><span title="Eksponentielt udtryk; tal pow(base, exp)" style="color: blue; font-weight: bold">pow</span> (3,4) <span title="Ekstra højre parentes fundet" style="border-style: solid; border-width: 2px; border-color: red;">)</span></span>


</td></tr>
</td></tr>
<tr><td><b>Here is some of the unsupported syntax</b><br>No support for '++', '--', '%',';': {min(++age, --age,age % 2);}<br>Nor '|', '&amp;', '^': {(sum(2 | 3,3 &amp; 4,5 ^ 6)}}<br>Nor arrays: {name[2], name['mine']}
<tr><td> <b>Her er noget af den ikke-understøttede syntaks</b><br> Ingen understøttelse af '++', '--', '%',';': {min(++age, --age,age % 2);}<br> Heller ikke '|', '&', '^': {(sum(2 | 3,3 & 4,5 ^ 6)}}<br> Nor arrays: {navn[2], navn['min']}
</td><td><b>Here is some of the unsupported syntax</b><br>No support for '++', '--', '%',';': <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]: How old are you?; 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]: How old are you?; value=45" style="color: green; font-weight: bold">age</span>,<span title="[java61764X1X2][G:2][Q:30]: How old are you?; 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>Nor '|', '&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>Nor arrays: <span style="background-color: #eee8aa;"><span title="[java61764X1X1][G:1][Q:10]: What is your first/given name?; 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]: What is your first/given name?; 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>Her er noget af den ikke-understøttede syntaks</b><br> Ingen understøttelse af '++', '--', '%',';': <span style="background-color: #eee8aa;"><span title="Find laveste værdi; tal min(arg1, arg2, ... argN)" style="color: blue; font-weight: bold">min</span> ( <span title="Ikke-understøttet syntaks" style="border-style: solid; border-width: 2px; border-color: red;">++</span> <span title="[java61764X1X2][G:2][Q:30]: Hvor gammel er du?; værdi=45" style="color: green; font-weight: bold">alder</span> , <span title="Ikke-understøttet syntaks" style="border-style: solid; border-width: 2px; border-color: red;">--</span> <span title="[java61764X1X2][G:2][Q:30]: Hvor gammel er du?; værdi=45" style="color: green; font-weight: bold">alder</span> , <span title="[java61764X1X2][G:2][Q:30]: Hvor gammel er du?; værdi=45" style="color: green; font-weight: bold">alder</span> <span title="Ikke-understøttet syntaks" style="border-style: solid; border-width: 2px; border-color: red;">%</span> 2) <span title="Ikke-understøttet syntaks" style="border-style: solid; border-width: 2px; border-color: red;">;</span></span><br> Heller ikke '|', '&', '^': <span style="background-color: #eee8aa;">( <span title="Beregn summen af værdier i et array; tal sum(arg1, arg2, ... argN)" style="color: blue; font-weight: bold">sum</span> (2 <span title="Ikke-understøttet syntaks" style="border-style: solid; border-width: 2px; border-color: red;">|</span> 3,3 <span title="Ikke-understøttet syntaks" style="border-style: solid; border-width: 2px; border-color: red;">&</span> 4,5 <span title="Ikke-understøttet syntaks" style="border-style: solid; border-width: 2px; border-color: red;">^</span> 6)</span> }<br> Nor arrays: <span style="background-color: #eee8aa;"><span title="[java61764X1X1][G:1][Q:10]: Hvad er dit fornavn/fornavn?; værdi=Peter" style="color: green; font-weight: bold">navn</span> <span title="Ikke-understøttet syntaks" style="border-style: solid; border-width: 2px; border-color: red;">[</span> 2 <span title="Ikke-understøttet syntaks" style="border-style: solid; border-width: 2px; border-color: red;">]</span> , <span title="[java61764X1X1][G:1][Q:10]: Hvad er dit fornavn/fornavn?; værdi=Peter" style="color: green; font-weight: bold">navn</span> <span title="Ikke-understøttet syntaks" style="border-style: solid; border-width: 2px; border-color: red;">[</span> <span title="" style="color: gray">'min'</span> <span title="Ikke-understøttet syntaks" style="border-style: solid; border-width: 2px; border-color: red;">]</span></span>


</td><td><b>Here is some of the unsupported syntax</b><br>No support for '++', '--', '%',';': <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]: How old are you?; 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]: How old are you?; value=45" style="color: green; font-weight: bold">age</span>,<span title="[java61764X1X2][G:2][Q:30]: How old are you?; 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>Nor '|', '&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>Nor arrays: <span style="background-color: #eee8aa;"><span title="[java61764X1X1][G:1][Q:10]: What is your first/given name?; 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]: What is your first/given name?; 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>Her er noget af den ikke-understøttede syntaks</b><br> Ingen understøttelse af '++', '--', '%',';': <span style="background-color: #eee8aa;"><span title="Find laveste værdi; tal min(arg1, arg2, ... argN)" style="color: blue; font-weight: bold">min</span> ( <span title="Ikke-understøttet syntaks" style="border-style: solid; border-width: 2px; border-color: red;">++</span> <span title="[java61764X1X2][G:2][Q:30]: Hvor gammel er du?; værdi=45" style="color: green; font-weight: bold">alder</span> , <span title="Ikke-understøttet syntaks" style="border-style: solid; border-width: 2px; border-color: red;">--</span> <span title="[java61764X1X2][G:2][Q:30]: Hvor gammel er du?; værdi=45" style="color: green; font-weight: bold">alder</span> , <span title="[java61764X1X2][G:2][Q:30]: Hvor gammel er du?; værdi=45" style="color: green; font-weight: bold">alder</span> <span title="Ikke-understøttet syntaks" style="border-style: solid; border-width: 2px; border-color: red;">%</span> 2) <span title="Ikke-understøttet syntaks" style="border-style: solid; border-width: 2px; border-color: red;">;</span></span><br> Heller ikke '|', '&', '^': <span style="background-color: #eee8aa;">( <span title="Beregn summen af værdier i et array; tal sum(arg1, arg2, ... argN)" style="color: blue; font-weight: bold">sum</span> (2 <span title="Ikke-understøttet syntaks" style="border-style: solid; border-width: 2px; border-color: red;">|</span> 3,3 <span title="Ikke-understøttet syntaks" style="border-style: solid; border-width: 2px; border-color: red;">&</span> 4,5 <span title="Ikke-understøttet syntaks" style="border-style: solid; border-width: 2px; border-color: red;">^</span> 6)</span> }<br> Nor arrays: <span style="background-color: #eee8aa;"><span title="[java61764X1X1][G:1][Q:10]: Hvad er dit fornavn/fornavn?; værdi=Peter" style="color: green; font-weight: bold">navn</span> <span title="Ikke-understøttet syntaks" style="border-style: solid; border-width: 2px; border-color: red;">[</span> 2 <span title="Ikke-understøttet syntaks" style="border-style: solid; border-width: 2px; border-color: red;">]</span> , <span title="[java61764X1X1][G:1][Q:10]: Hvad er dit fornavn/fornavn?; værdi=Peter" style="color: green; font-weight: bold">navn</span> <span title="Ikke-understøttet syntaks" style="border-style: solid; border-width: 2px; border-color: red;">[</span> <span title="" style="color: gray">'min'</span> <span title="Ikke-understøttet syntaks" style="border-style: solid; border-width: 2px; border-color: red;">]</span></span>


</td></tr>
</td></tr>
Line 99: Line 99:




=Tailoring Examples (e.g. extending {INSERTANS:xxx})=
=Skræddersyede eksempler (f.eks. forlængelse af {INSERTANS:xxx})=




=="Dear {Mr}/{Mrs} Smith..."==
=="Kære {Hr.}/{Fru} Smith..."==




Use the if() function to conditionally choose whether to display 'Mr.' or 'Mrs.'.
Brug funktionen if() til at betinget vælge, om der skal vises 'Mr.' eller 'Mrs.'.


The syntax is if(test,do_if_true,do_if_false).
Syntaksen er if(test,do_if_true,do_if_false).


{|
{|
|#||Code||Question||Type
|#||Kode||Spørgsmål||Type
|-
|-
|1||gender||What is your gender?||Gender
|1||køn||Hvad er dit køn?||Køn
|-
|-
|2||example1||Dear {if(gender=='M','Mr.','Mrs.')} Smith, ...||Long free text
|2| |eksempel1||Kære {if(gender=='M','Mr.','Mrs.')} Smith, ...||Lang fritekst
|}
|}


Line 121: Line 121:




As it can be observed below, "Mr" and "Mrs" are tailored to what the respondent selects as answer to question "gender".
Som det kan ses nedenfor, er "Hr." og "Fru" skræddersyet til, hvad respondenten vælger som svar på spørgsmålet "køn".




Line 128: Line 128:




=="Dear {Mr}/{Mrs} Smith..." in invitation email==
=="Kære {Hr.}/{Fru} Smith..." i invitations-e-mail==




You can use the example above in the invitation email using attributes from the token table. Use the if() function to choose whether 'Mr.' or 'Mrs.' should be used in the email.
Du kan bruge eksemplet ovenfor i invitationsmailen ved at bruge attributter fra token-tabellen. Brug funktionen if() til at vælge, om 'Mr.' eller 'Mrs.' skal bruges i e-mailen.




The syntax is "if(test,do_if_true,do_if_false)".
Syntaksen er "if(test,do_if_true,do_if_false)".


{|
{|
|#||attribute||value
|#||attribut||værdi
|-
|-
|1||Last name||Smith
|1||Efternavn||Smith
|-
|-
|2||Email address||test@test.com
|2||E-mailadresse||test@test. com
|-
|-
|3||ATTRIBUTE_2||M
|3||ATTRIBUTE_2||M
Line 147: Line 147:




Text in invitation email:
Tekst i invitationsmail:


<syntaxhighlight lang="php">
<syntaxhighlight lang="php">


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


you have been invited to participate in a survey:
du er blevet inviteret til at deltage i en undersøgelse:


https:/...
https:/...
Line 163: Line 163:




email View:
e-mail visning:




Line 169: Line 169:




=Calculation / Assessment Examples=
=Beregnings-/vurderingseksempler=




==Calculate assessment values at runtime and store the results in the survey data==
==Beregn vurderingsværdier ved kørsel og gem resultaterne i undersøgelsesdataene==




This example uses all of EM's features, including Relevance, Tailoring, and the Equation question type.
Dette eksempel bruger alle EM's funktioner, inklusive relevans, skræddersyning og ligningsspørgsmålstypen.


It also shows that all of them are JavaScript-enabled, so if you have these features on a page, it will dynamically change as people set and change their answers.
Det viser også, at de alle er JavaScript-aktiverede, så hvis du har disse funktioner på en side, vil det dynamisk ændre sig, efterhånden som folk indstiller og ændrer deres svar.


{|
{|
|#||Code||Question||Type||Relevance
|#||Kode||Spørgsmål||Type||Relevans
|-
|-
|1||numKids||How many children do you have?||Numerical input||1
|1||antalBørn||Hvor mange børn har du?||Numerisk input||1
|-
|-
|2||kid1||How old is your first child?||Numerical input||numKids >= 1
|2||kid1||Hvor gammelt er dit første barn?||Numerisk input||numBørn >= 1
|-
|-
|3||kid2||How old is your second child?||Numerical input||numKids >= 2
|3||kid2||Hvor gammel er dit andet barn barn?||Numerisk input||numerisk børn >= 2
|-
|-
|4||kid3||How old is your third child?||Numerical input||numKids >= 3
|4||kid3||Hvor gammelt er dit tredje barn?||Numerisk input||numBørn >= 3
|-
|-
|5||kid4||How old is your fourth child?||Numerical input||numKids >= 4
|5||kid4||Hvor gammelt er dit fjerde barn?||Numerisk input||numBørn >= 4
|-
|-
|6||sumKidAges||{sum(kid1.NAOK,kid2.NAOK,kid3.NAOK,kid4.NAOK)}||Equation||1
|6||sumKidAges||{sum(kid1.NAOK,kid2. NAOK,kid3.NAOK,kid4.NAOK)}||Ligning||1
|-
|-
|7||kidSummary||You said that you have {numKids}. {if(numKids==1,'child','children')}. {if(numKids>1,implode(' ','The sum of ages of your first ',min(numKids,4),' kids is ',sumKidAges,'.'),' ')}||Text display||1
|7||kidSummary||Du sagde, at du har {numKids}. {if(antalKids==1,'child','children')}. {if(numKids>1,implode(' ','Summen af aldre for dine første ',min(antalKids,4),' børn er ',sumKidAges,'.'),' ')}||Tekstvisning| |1
|}
|}




To download this example, please click on the following link: [[Media:Assessments_survey_example.zip|Assessments_survey_example]].
For at downloade dette eksempel skal du klikke på følgende link: [[Media:Assessments_survey_example.zip|Assessments_survey_example]].




You may find below screenshots of representative questions. As you can see, EM syntax-highlights all fields that might contain tailoring. Here, you see examples of syntax-highlighting Relevance, the Equation question type, and substitutions within a question. You can also use substitutions within Help, Group header display, Welcome message, and End message.
Nedenfor kan du finde skærmbilleder af repræsentative spørgsmål. Som du kan se, fremhæver EM-syntaks alle felter, der kan indeholde skræddersyet. Her ser du eksempler på syntaksfremhævende relevans, ligningsspørgsmålstypen og substitutioner i et spørgsmål. Du kan også bruge erstatninger i Hjælp, Gruppehovedvisning, Velkomstbesked og Afslutbesked.


In the next example, since the relevance is {numKids >= 2), the question will only be visible if the respondent reports that she has at least two children.
I det næste eksempel, da relevansen er {numKids >= 2), vil spørgsmålet kun være synligt, hvis respondenten rapporterer, at hun har mindst to børn.




Line 209: Line 209:




Below, you may observe that each variable has the .NAOK suffix attached to it. This is because of how EM supports cascading relevance. If you did not have .NAOK, then the sum would only be computed if the person said she has 4 children (e.g., if all of the variables are relevant). The usage of .NAOK means that we want to compute the sum even if all or some of the variables are irrelevant (e.g., "Not Applicable" (NA) is alright (OK)).
Nedenfor kan du se, at hver variabel har .NAOK-suffikset knyttet til sig. Dette er på grund af, hvordan EM understøtter kaskaderelevans. Hvis du ikke havde .NAOK, ville summen kun blive beregnet, hvis personen sagde, hun har 4 børn (f.eks. hvis alle variablerne er relevante). Brugen af .NAOK betyder, at vi ønsker at beregne summen, selvom alle eller nogle af variablerne er irrelevante (f.eks. "Ikke relevant" (NA) er i orden (OK)).


However, the .NAOK attribute only affects whether variables are passed into EM. If the respondent initially says she has 3 children, and enters ages for each, then changes her mind and says she has 2, we don't want to see the sum of the 3 entered values - since the third child is "not applicable" in our case anymore:
Men .NAOK-attributten påvirker kun, om variabler overføres til EM. Hvis respondenten indledningsvis siger, at hun har 3 børn, og indtaster alder for hver, så ændrer hun mening og siger, at hun har 2, ønsker vi ikke at se summen af de 3 indtastede værdier - da det tredje barn er "ikke relevant" i vores tilfælde længere:




Line 217: Line 217:




Each separate Expression is color coded with a tan background. As you can see, there are three separate Expressions here. The last one contains a message that is conditionally shown only if the person has more than one child.
Hvert særskilt udtryk er farvekodet med en solbrun baggrund. Som du kan se, er der tre separate udtryk her. Den sidste indeholder en besked, der kun vises betinget, hvis personen har mere end ét barn.




Line 223: Line 223:




Now, here are screenshots of the survey in action.
Nu er her skærmbilleder af undersøgelsen i aktion.


When you first visit the page, you see this. Note that is says "You have 0 '''children'''" instead of "You have 0 '''child'''".
Første gang du besøger siden, ser du dette. Bemærk, at der står "Du har 0 '''børn'''" i stedet for "Du har 0 '''barn'''".




Line 231: Line 231:




If I change the value for number of children to 1, the display instantly changes to this, even though it is on the same page:
Hvis jeg ændrer værdien for antal børn til 1, ændres displayet øjeblikkeligt til dette, selvom det er på samme side:




Line 237: Line 237:




Now notice that the grammar is correct: "You have 1 '''child'''".
Bemærk nu, at grammatikken er korrekt: "Du har 1 '''barn'''".


Now I change the value for number of children to 3, and the display instantly changes to this.
Nu ændrer jeg værdien for antal børn til 3, og displayet skifter øjeblikkeligt til dette.


Notice that you now see the conditional message at the bottom:  "The sum of ages of your first 3 kids is 0.".
Bemærk, at du nu ser den betingede besked nederst: "Summen af alderen på dine første 3 børn er 0.".




Line 247: Line 247:




Now I'll enter ages for my imaginary children, and I get this display, summing up their ages:
Nu vil jeg indtaste alder for mine imaginære børn, og jeg får denne visning, der opsummerer deres alder:




Line 253: Line 253:




Again, the score and display updates instantly as I enter the values, so you can use this to show a running total of an Assessment Score.
Igen opdateres scoren og displayet øjeblikkeligt, efterhånden som jeg indtaster værdierne, så du kan bruge dette til at vise en løbende total af en vurderingsscore.




Now, I change the value for the number of children to 2. The display has changed to this:
Nu ændrer jeg værdien for antallet af børn til 2. Displayet er ændret til dette:




Line 262: Line 262:




Notice that although I had entered a value of 5.5 for the third child, the report now only sums the values of my first 2 children.
Bemærk, at selvom jeg havde indtastet en værdi på 5,5 for det tredje barn, opsummerer rapporten nu kun værdierne for mine første 2 børn.


The reason for this is that the 3rd value is now irrelevant, and irrelevant values are actively ignored by EM.
Grunden til dette er, at den 3. værdi nu er irrelevant, og irrelevante værdier ignoreres aktivt af EM.


If I were to change the number of kids back to 3, I would see the value of 5.5 I entered again. So, I don't lose any information I enter on the page.
Hvis jeg skulle ændre antallet af børn tilbage til 3, ville jeg se værdien af 5,5, jeg indtastede igen. Så jeg mister ingen oplysninger, jeg indtaster på siden.


However, if I navigate to the Next or Previous page, all irrelevant values will be NULLed out in the session and in the database. So, if I were to keep the value at 2, go to the next page, and then come back and state that I actually have 3 kids, I would no longer see the age of 5.5.
Men hvis jeg navigerer til næste eller forrige side, vil alle irrelevante værdier blive NULLET i sessionen og i databasen. Så hvis jeg skulle holde værdien på 2, gå til næste side og så vende tilbage og oplyse, at jeg faktisk har 3 børn, ville jeg ikke længere se en alder af 5,5.




==Enter data and see a dynamically changing report of what was entered on the same page==
==Indtast data og se en dynamisk skiftende rapport over, hvad der blev indtastet på samme side==




This example presents the Tailoring process within LimeSurvey.
Dette eksempel præsenterer skræddersyprocessen i LimeSurvey.


To download this example, click on the following link: [[Media:Dynamic_change_of_the_report_when_data_is_entered_on_the_same_page_survey.zip|Dynamic changes survey example]].
For at downloade dette eksempel skal du klikke på følgende link: [[Media:Dynamic_change_of_the_report_when_data_is_entered_on_the_same_page_survey.zip|Dynamiske ændringer undersøgelse eksempel]].


Here is what the page looks like initially. You only see the question asking what city you live in:
Sådan ser siden ud i starten. Du ser kun spørgsmålet om, hvilken by du bor i:




Line 284: Line 284:




Once you start to enter an answer, the tailoring process is also starting:
Når du begynder at indtaste et svar, starter skrædderprocessen også:


<center>[[File:em-on_page_report-usage-2.jpg]]</center>
<center>[[File:em-on_page_report-usage-2.jpg]]</center>




As you enter answers, the table at the bottom of the page is updated to show the answer codes and values of your responses.
Når du indtaster svar, opdateres tabellen nederst på siden, så den viser svarkoderne og værdierne for dine svar.




<center>[[File:em-on_page_report-usage-3.jpg]]</center>
<center>[[File:em-on_page_report-usage-3.jpg]]</center>


=Common Debugging Examples=
=Almindelige fejlfindingseksempler=




==Nested if() Statements (Conditional Logic)==
==Indlejret if()-udsagn (betinget logik)==




EM supports the function "if(test,do_if_true,do_if_false)" so that you can perform conditional logic or tailoring. This function can be nested to do the equivalent of "if { } else if { } else {  }". EM will let you know if the parentheses are not balanced (e.g., you are missing a closing right parenthesis), or if you have any extra right parentheses. You should try to count the parentheses as you compose long nested if statements, save it, check for syntax errors, and fix them if any are found. Let's check together the below example.  
EM understøtter funktionen "if(test,do_if_true,do_if_false)", så du kan udføre betinget logik eller skræddersy. Denne funktion kan indlejres, så den svarer til "if { } else if { } else { }". EM vil fortælle dig, hvis parenteserne ikke er afbalancerede (f.eks. mangler du en afsluttende højre parentes), eller hvis du har nogen ekstra højre parentes. Du bør prøve at tælle parenteserne, mens du komponerer lange indlejrede if-sætninger, gemme dem, kontrollere for syntaksfejl og rette dem, hvis der findes nogen. Lad os sammen tjekke nedenstående eksempel.  


The group of questions used below can be accessed from here: [[Media:Example_tailoring_group11.zip|Tailoring survey example.lsg]]
Gruppen af spørgsmål, der bruges nedenfor, kan tilgås herfra: [[Media:Example_tailoring_group11.zip|Tailoring survey example.lsg]]




First, with nothing entered, you just see "Hello."
For det første, med intet indtastet, ser du bare "Hej".




Line 311: Line 311:




If you enter a name, it says, "Hello {name}."
Hvis du indtaster et navn, står der "Hej {navn}."




Line 317: Line 317:




If you enter an age, you get a tailored message, depending upon whether you are a pre-school-age child or not:
Hvis du indtaster en alder, får du en skræddersyet besked, afhængig af om du er barn i førskolealderen eller ej:




Line 323: Line 323:




School aged, teenager, or adult. Here is a  teenager who wants to be anonymous:
Skolealderen, teenager eller voksen. Her er en teenager, der gerne vil være anonym:




Line 329: Line 329:




Here is the logic file of the group. As you can see in the "if-based" question, there are nested if statements based upon the person's age.
Her er gruppens logikfil. Som du kan se i "hvis-baseret" spørgsmålet, er der indlejrede if-udsagn baseret på personens alder.




Line 335: Line 335:




When you are originally editing this question, it is likely that at some point, you will have the wrong number of parentheses. Here's what happens if you have too few:
Når du oprindeligt redigerer dette spørgsmål, er det sandsynligt, at du på et tidspunkt vil have det forkerte antal parenteser. Her er, hvad der sker, hvis du har for få:




Line 341: Line 341:




If you hover over the word "if", which is surrounded by a red box, it says "Parentheses not balanced". In this case, there should be four closing parentheses after "already an adult!", but there are only three.
Hvis du holder markøren over ordet "hvis", som er omgivet af en rød boks, står der "parenteser ikke afbalanceret". I dette tilfælde skal der være fire afsluttende parenteser efter "allerede voksen!", men der er kun tre.


If, on the other hand, you have an extra right parenthesis, it will be surrounded by a red box, like this:
Hvis du derimod har en ekstra højre parentes, vil den være omgivet af en rød boks, sådan her:




Line 349: Line 349:




When you are actually editing the question, the question looks like this:
Når du rent faktisk redigerer spørgsmålet, ser spørgsmålet således ud:




<center>[[File:em-nested-if-edit-screen.jpg]]</center>
<center>[[File:em-nested-if-edit-screen.jpg]]</center>

Latest revision as of 14:33, 2 January 2024


Oversigt over det, der tidligere er blevet forklaret

Hvis du hidtil har fulgt strukturen i LimeSurvey-manualen, betyder det, at du allerede har LimeSurvey-terminologien. Dernæst dækkede vi udtryk og variabler for at lære at forbedre vores undersøgelser. I den næste del flyttede vi til typerne og betydningerne af syntax highlighting for at lære, hvordan man retter syntaksfejl.

Med disse grundlæggende begreber dækket, kunne vi bevæge os hen imod eksempler og forklare, hvordan udtryk fungerer i LimeSurvey.


Syntaksfremhævning

Følgende skærmbilleder giver eksempler, men viser ikke værdierne af værktøjstip. Et værktøjstip er en informativ boks, som vises, når du holder musen hen over ord med fed farve.

På grund af denne syntaksfremhævning er det meget nemt at komponere korrekte udtryk, selv dem der er komplicerede. Selvom LimeSurvey-teamet planlægger at forsøge at bygge en Expression Builder GUI, kan du bruge den eksisterende syntaks-fremhævning til hurtigt at identificere og rette stavefejl. Du kan også bruge værktøjstip til at validere nøjagtigheden af dine udtryk (f.eks. bekræfte, at du har valgt den eller de ønskede variabler).

I hvert af eksemplerne er der tre kolonner:

  1. Source - dette er den rå tekst, som du ville indtaste i LimeSurvey-spørgsmålsfeltet
  2. Pretty Print - dette er den syntaks-fremhævede ækvivalent af det, du indtastede
    • Bemærk, at udtryk vises med en brun baggrund, men ikke omgivet af krøllede klammeparenteser i denne fremhævning.
    • Da EM understøtter rekursiv substitution, vil visning af krøllede klammeparenteser i fremhævningen forårsage syntaksfejl
  3. Resultat - dette er det output, der genereres, når EM behandler kilden
    • Alt, der kan erstattes korrekt, er
    • Udtryk med fejl vises in-line, med syntaksfremhævning. Fejl er omgivet af en rød-linet boks.


Korrekt syntaks

Nedenfor kan du finde eksempler på korrekt syntaks:

  1. Values: viser, at kendte variabler er farvekodede efter, om de er indstillet på den aktuelle side. Gammel stil INSERTANS:xxxx får sin egen farvekodningsstil
  2. Spørgsmålsattributter: viser, at punktnotation kan få adgang til nogle egenskaber ved spørgsmål
  3. Math: viser, at grundlæggende og komplekse beregninger understøttes
  4. TextProcessing: viser nogle af de tilgængelige tekstbehandlingsfunktioner
  5. Dates: viser to af de tilgængelige datorelaterede funktioner
  6. Conditional: viser brugen af if()-funktionen. Valgene kan indlejres.
  7. Skræddersyet afsnit: du kan fuldstændigt tilpasse en rapport baseret på tidligere værdier
  8. EM processer inden for strenge: viser, at den kan foretage substitutioner inden for strenge. Dette eksempel genererer et skræddersyet billednavn.
  9. EM behandler ikke krøllede klammeparenteser som disse: viser, at hvis de krøllede klammeparenteser er escaped, eller der er et mellemrum mellem udtrykket og krøllede klammeparenteser, ignorerer ES udtrykket.



EM-syntaks indeholdende fejl

Her er eksempler på almindelige fejl ved indtastning af ES-udtryk. Bemærk, at værktøjstippene giver yderligere information.

  1. Inline Javascript, der glemte at tilføje mellemrum efter krøllet klammeparentes
    • Da "document.write" vises lige efter en krøllet klammeparentes, tror EM, at det er et udtryk, og rød- boksene "dokument" og "skriv", da de er henholdsvis udefinerede variable og funktioner
  2. Ukendte/Fejlstavede variabler, funktioner og operatorer
    • Her har vi glemt, at vi bruger variabelnavnet "køn" i stedet for " sex", men EM fanger den fejl. Det røde også '++', da det ikke er en understøttet operator.
  3. Advarer hvis brug = i stedet for eq, eller udfør værditildelinger
    • Bemærk at '=' og '+=' er i rød tekst i stedet for sort. Hvis du holder musen over dem, vil du se advarsler om, at du tildeler en værdi.
  4. Forkert antal argumenter for funktioner
    • if() tager 3 argumenter, men den har fået 4, så svæver over den røde boks vil "if" forklare fejlen og vise den understøttede syntaks
    • sum() tager et ubegrænset antal argumenter, men vi havde et afsluttende komma før den afsluttende parentes, så det er rødt
  5. Umatchede parenteser
    • Dette er en af de mest almindelige fejl ved skrivning af udtryk.
    • Dette viser to eksempler på manglende lukkeparenteser, og et eksempel på at have én for mange lukkeparenteser.
  6. Uunderstøttet syntaks
    • Hvis du bruger en operator eller tegnsætning, som ES ikke understøtter, vil den rød-bokse den.
  7. Ugyldige tildelinger
    • Nogle variable er readWrite og kan få deres værdier ændret. Andre er skrivebeskyttede.
    • Hvis du prøver at ændre værdien af en skrivebeskyttet variabel, kan du ikke. EM vil rød-boks forsøget.
    • Hvis du forsøger at tildele en værdi til en ligning eller en streng, vil du også få en fejl



"Live" eksempler på syntaksfremhævning med aktive værktøjstip

Kilde Smukt print Resultat
Her er et eksempel på OK-syntaks med værktøjstip
Hej {if(gender=='M','Mr.','Mrs.')} {efternavn}, det er nu {date('g:i a',time())}. Ved du, hvor dine {sum(numPets,numKids)} børn og kæledyr er?
Her er et eksempel på OK-syntaks med værktøjstip
Hej , hvis ( køn == 'M' , 'Mr.' , 'Fru' ) efternavn , er det nu dato ( 'g:i a' , tid ()) . Ved du, hvor din sum ( antalPets , numKids ) børn og kæledyr er?
Her er et eksempel på OK-syntaks med værktøjstip
Hej Mr. Smith , klokken er nu 06:07. Ved du hvor dine 3 børn og kæledyr er?
Her er almindelige fejl, så du kan se værktøjstip
Variabler brugt før de erklæres: {notSetYet}
Ukendt funktion: {iff(antalPets>numKids,1,2)}
Ukendt variabel: {sum(age,num_pets,numKids)}
Forkerte # parametre: {sprintf()},{if(1,2)},{date()}
Tildel skrivebeskyttede-vars:{TOKEN:ATTRIBUTE_1+=10},{name='Sally'}
Ubalancerede parenteser: {pow(3,4},{(pow(3,4)},{pow(3,4))}
Her er almindelige fejl, så du kan se værktøjstip
Variabler brugt før de erklæres: notSetYet
Ukendt funktion: iff ( numPets > numBids ,1,2)
Ukendt variabel: sum ( age , num_pets , numKids )
Forkerte # parametre: sprintf () , if (1,2) , dato ()
Tildel skrivebeskyttede-vars: TOKEN:ATTRIBUTE_1 += 10 , navn = 'Sally'
Ubalancerede parenteser: pow (3,4 , ( pow (3,4) , pow (3,4) )
Her er almindelige fejl, så du kan se værktøjstip
Variabler brugt før de erklæres: notSetYet
Ukendt funktion: iff ( numPets > numBids ,1,2)
Ukendt variabel: sum ( age , num_pets , numKids )
Forkerte # parametre: sprintf () , if (1,2) , dato ()
Tildel skrivebeskyttede-vars: TOKEN:ATTRIBUTE_1 += 10 , navn = 'Sally'
Ubalancerede parenteser: pow (3,4 , ( pow (3,4) , pow (3,4) )
Her er noget af den ikke-understøttede syntaks
Ingen understøttelse af '++', '--', '%',';': {min(++age, --age,age % 2);}
Heller ikke '|', '&', '^': {(sum(2 | 3,3 & 4,5 ^ 6)}}
Nor arrays: {navn[2], navn['min']}
Her er noget af den ikke-understøttede syntaks
Ingen understøttelse af '++', '--', '%',';': min ( ++ alder , -- alder , alder % 2) ;
Heller ikke '|', '&', '^': ( sum (2 | 3,3 & 4,5 ^ 6) }
Nor arrays: navn [ 2 ] , navn [ 'min' ]
Her er noget af den ikke-understøttede syntaks
Ingen understøttelse af '++', '--', '%',';': min ( ++ alder , -- alder , alder % 2) ;
Heller ikke '|', '&', '^': ( sum (2 | 3,3 & 4,5 ^ 6) }
Nor arrays: navn [ 2 ] , navn [ 'min' ]


Skræddersyede eksempler (f.eks. forlængelse af {INSERTANS:xxx})

"Kære {Hr.}/{Fru} Smith..."

Brug funktionen if() til at betinget vælge, om der skal vises 'Mr.' eller 'Mrs.'.

Syntaksen er if(test,do_if_true,do_if_false).

# Kode Spørgsmål Type
1 køn Hvad er dit køn? Køn
|eksempel1 Kære {if(gender=='M','Mr.','Mrs.')} Smith, ... Lang fritekst



Som det kan ses nedenfor, er "Hr." og "Fru" skræddersyet til, hvad respondenten vælger som svar på spørgsmålet "køn".



"Kære {Hr.}/{Fru} Smith..." i invitations-e-mail

Du kan bruge eksemplet ovenfor i invitationsmailen ved at bruge attributter fra token-tabellen. Brug funktionen if() til at vælge, om 'Mr.' eller 'Mrs.' skal bruges i e-mailen.


Syntaksen er "if(test,do_if_true,do_if_false)".

# attribut værdi
1 Efternavn Smith
2 E-mailadresse test@test. com
3 ATTRIBUTE_2 M


Tekst i invitationsmail:

Kære {if(ATTRIBUTE_2=='M','Mr','Mrs')} {LASTNAME},

du er blevet inviteret til at deltage i en undersøgelse:

https:/...



e-mail visning:



Beregnings-/vurderingseksempler

Beregn vurderingsværdier ved kørsel og gem resultaterne i undersøgelsesdataene

Dette eksempel bruger alle EM's funktioner, inklusive relevans, skræddersyning og ligningsspørgsmålstypen.

Det viser også, at de alle er JavaScript-aktiverede, så hvis du har disse funktioner på en side, vil det dynamisk ændre sig, efterhånden som folk indstiller og ændrer deres svar.

# Kode Spørgsmål Type Relevans
1 antalBørn Hvor mange børn har du? Numerisk input 1
2 kid1 Hvor gammelt er dit første barn? Numerisk input numBørn >= 1
3 kid2 Hvor gammel er dit andet barn barn? Numerisk input numerisk børn >= 2
4 kid3 Hvor gammelt er dit tredje barn? Numerisk input numBørn >= 3
5 kid4 Hvor gammelt er dit fjerde barn? Numerisk input numBørn >= 4
6 sumKidAges {sum(kid1.NAOK,kid2. NAOK,kid3.NAOK,kid4.NAOK)} Ligning 1
7 kidSummary Du sagde, at du har {numKids}. {if(antalKids==1,'child','children')}. {if(numKids>1,implode(' ','Summen af aldre for dine første ',min(antalKids,4),' børn er ',sumKidAges,'.'),' ')} |1


For at downloade dette eksempel skal du klikke på følgende link: Assessments_survey_example.


Nedenfor kan du finde skærmbilleder af repræsentative spørgsmål. Som du kan se, fremhæver EM-syntaks alle felter, der kan indeholde skræddersyet. Her ser du eksempler på syntaksfremhævende relevans, ligningsspørgsmålstypen og substitutioner i et spørgsmål. Du kan også bruge erstatninger i Hjælp, Gruppehovedvisning, Velkomstbesked og Afslutbesked.

I det næste eksempel, da relevansen er {numKids >= 2), vil spørgsmålet kun være synligt, hvis respondenten rapporterer, at hun har mindst to børn.



Nedenfor kan du se, at hver variabel har .NAOK-suffikset knyttet til sig. Dette er på grund af, hvordan EM understøtter kaskaderelevans. Hvis du ikke havde .NAOK, ville summen kun blive beregnet, hvis personen sagde, hun har 4 børn (f.eks. hvis alle variablerne er relevante). Brugen af .NAOK betyder, at vi ønsker at beregne summen, selvom alle eller nogle af variablerne er irrelevante (f.eks. "Ikke relevant" (NA) er i orden (OK)).

Men .NAOK-attributten påvirker kun, om variabler overføres til EM. Hvis respondenten indledningsvis siger, at hun har 3 børn, og indtaster alder for hver, så ændrer hun mening og siger, at hun har 2, ønsker vi ikke at se summen af de 3 indtastede værdier - da det tredje barn er "ikke relevant" i vores tilfælde længere:



Hvert særskilt udtryk er farvekodet med en solbrun baggrund. Som du kan se, er der tre separate udtryk her. Den sidste indeholder en besked, der kun vises betinget, hvis personen har mere end ét barn.



Nu er her skærmbilleder af undersøgelsen i aktion.

Første gang du besøger siden, ser du dette. Bemærk, at der står "Du har 0 børn" i stedet for "Du har 0 barn".



Hvis jeg ændrer værdien for antal børn til 1, ændres displayet øjeblikkeligt til dette, selvom det er på samme side:



Bemærk nu, at grammatikken er korrekt: "Du har 1 barn".

Nu ændrer jeg værdien for antal børn til 3, og displayet skifter øjeblikkeligt til dette.

Bemærk, at du nu ser den betingede besked nederst: "Summen af alderen på dine første 3 børn er 0.".



Nu vil jeg indtaste alder for mine imaginære børn, og jeg får denne visning, der opsummerer deres alder:



Igen opdateres scoren og displayet øjeblikkeligt, efterhånden som jeg indtaster værdierne, så du kan bruge dette til at vise en løbende total af en vurderingsscore.


Nu ændrer jeg værdien for antallet af børn til 2. Displayet er ændret til dette:



Bemærk, at selvom jeg havde indtastet en værdi på 5,5 for det tredje barn, opsummerer rapporten nu kun værdierne for mine første 2 børn.

Grunden til dette er, at den 3. værdi nu er irrelevant, og irrelevante værdier ignoreres aktivt af EM.

Hvis jeg skulle ændre antallet af børn tilbage til 3, ville jeg se værdien af 5,5, jeg indtastede igen. Så jeg mister ingen oplysninger, jeg indtaster på siden.

Men hvis jeg navigerer til næste eller forrige side, vil alle irrelevante værdier blive NULLET i sessionen og i databasen. Så hvis jeg skulle holde værdien på 2, gå til næste side og så vende tilbage og oplyse, at jeg faktisk har 3 børn, ville jeg ikke længere se en alder af 5,5.


Indtast data og se en dynamisk skiftende rapport over, hvad der blev indtastet på samme side

Dette eksempel præsenterer skræddersyprocessen i LimeSurvey.

For at downloade dette eksempel skal du klikke på følgende link: Dynamiske ændringer undersøgelse eksempel.

Sådan ser siden ud i starten. Du ser kun spørgsmålet om, hvilken by du bor i:



Når du begynder at indtaste et svar, starter skrædderprocessen også:


Når du indtaster svar, opdateres tabellen nederst på siden, så den viser svarkoderne og værdierne for dine svar.


Almindelige fejlfindingseksempler

Indlejret if()-udsagn (betinget logik)

EM understøtter funktionen "if(test,do_if_true,do_if_false)", så du kan udføre betinget logik eller skræddersy. Denne funktion kan indlejres, så den svarer til "if { } else if { } else { }". EM vil fortælle dig, hvis parenteserne ikke er afbalancerede (f.eks. mangler du en afsluttende højre parentes), eller hvis du har nogen ekstra højre parentes. Du bør prøve at tælle parenteserne, mens du komponerer lange indlejrede if-sætninger, gemme dem, kontrollere for syntaksfejl og rette dem, hvis der findes nogen. Lad os sammen tjekke nedenstående eksempel.

Gruppen af spørgsmål, der bruges nedenfor, kan tilgås herfra: Tailoring survey example.lsg


For det første, med intet indtastet, ser du bare "Hej".



Hvis du indtaster et navn, står der "Hej {navn}."



Hvis du indtaster en alder, får du en skræddersyet besked, afhængig af om du er barn i førskolealderen eller ej:



Skolealderen, teenager eller voksen. Her er en teenager, der gerne vil være anonym:



Her er gruppens logikfil. Som du kan se i "hvis-baseret" spørgsmålet, er der indlejrede if-udsagn baseret på personens alder.



Når du oprindeligt redigerer dette spørgsmål, er det sandsynligt, at du på et tidspunkt vil have det forkerte antal parenteser. Her er, hvad der sker, hvis du har for få:



Hvis du holder markøren over ordet "hvis", som er omgivet af en rød boks, står der "parenteser ikke afbalanceret". I dette tilfælde skal der være fire afsluttende parenteser efter "allerede voksen!", men der er kun tre.

Hvis du derimod har en ekstra højre parentes, vil den være omgivet af en rød boks, sådan her:



Når du rent faktisk redigerer spørgsmålet, ser spørgsmålet således ud: