x

Hauptkapitel

  1. LimeSurvey Cloud oder LimeSurvey CE?
  2. LimeSurvey Cloud - Schnellstartanleitung
  3. LimeSurvey CE - Installation
  4. Wie man eine gute Umfrage gestaltet (Leitfaden)
  5. Erste Schritte
  6. LimeSurvey-Konfiguration
  7. Einführung - Umfragen
  8. Umfrageeinstellungen anzeigen
  9. Umfragemenü anzeigen
  10. Umfragestruktur anzeigen
  11. Einführung - Fragen/Fragetypen
  12. Einführung - Fragegruppen
  13. Einführung - Umfragen - Management
  14. Optionen der Umfrage-Symbolleiste
  15. Mehrsprachige Umfrage
  16. Kurzanleitung - ExpressionScript
  17. Erweiterte Funktionen
  18. Allgemeine FAQ - Häufig gestellte Fragen
  19. Fehlerbehebung
  20. Tipps und Tricks
  21. Lizenzbestimmungen
  22. Änderungshistorie
  23. Plugins - Erweitert
 Actions

ExpressionScript How-tos/de: Difference between revisions

From LimeSurvey Manual

Maren.fritz (talk | contribs)
Created page with "ExpressionScript-Anleitungen"
 
Maren.fritz (talk | contribs)
No edit summary
 
(140 intermediate revisions by the same user not shown)
Line 3: Line 3:




=Overview of what has been previously explained=
=Überblick über das bisher Erklärte=




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.  
Wenn Sie bisher der Struktur des LimeSurvey-Handbuchs gefolgt sind, bedeutet das, dass Sie bereits die [[ExpressionScript - Presentation#Key_Definitions|LimeSurvey-Terminologie]] kennen. Als Nächstes haben wir uns mit Ausdrücken und Variablen befasst, um zu erfahren, wie wir unsere Umfragen verbessern können. Im nächsten Teil sind wir zu den Typen und Bedeutungen von [[ExpressionScript - Presentation#Syntax Highlighting|Syntax-Highlighting]] übergegangen, um zu erfahren, wie man Syntaxfehler korrigiert.  


With these basic notions covered, we could move towards examples and explaining how expressions work within LimeSurvey.  
Nachdem diese Grundbegriffe abgedeckt sind, können wir uns Beispielen zuwenden und erklären, wie Ausdrücke in LimeSurvey funktionieren.  




=Syntax Highlighting=
=Syntaxhervorhebung=




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.
Die folgenden Screenshots geben Beispiele, zeigen jedoch nicht die Werte der Tooltips. Ein Tooltip ist ein informatives Feld, das immer dann angezeigt wird, wenn Sie mit der Maus über fett gefärbte Wörter fahren.


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)).
Aufgrund dieser Syntaxhervorhebung ist es sehr einfach, korrekte Ausdrücke zu verfassen, selbst wenn diese kompliziert sind. Obwohl das LimeSurvey-Team den Versuch plant, eine Expression Builder-GUI zu erstellen, können Sie die vorhandene Syntaxhervorhebung verwenden, um Tippfehler schnell zu erkennen und zu beheben. Sie können die Tooltips auch verwenden, um die Genauigkeit Ihrer Ausdrücke zu überprüfen (z. B. um zu bestätigen, dass Sie die gewünschte(n) Variable(n) ausgewählt haben).


In each of the examples, there are three columns:
In jedem der Beispiele gibt es drei Spalten:
#Source - this is the raw text that you would enter into the LimeSurvey question field
#Quelle – das ist der Rohtext, den Sie in das Fragefeld von LimeSurvey eingeben würden
#Pretty Print - this is the syntax-highlighted equivalent of what you entered
#Pretty Print – das ist das syntaxhervorgehobene Äquivalent dessen, was Sie eingegeben haben
#*Note that Expressions are shown with a tan background, but not surrounded by curly braces in this highlighting.
#*Beachten Sie, dass Ausdrücke in dieser Hervorhebung mit einem braunen Hintergrund, aber nicht von geschweiften Klammern umgeben angezeigt werden.
#*Since EM supports recursive substitution, showing curly braces in the highlighting would cause syntax errors
#*Da EM rekursive Substitution unterstützt, würde die Anzeige von geschweiften Klammern in der Hervorhebung zu Syntaxfehlern führen.
#Result - this is the output generated when EM processes the source
#Ergebnis – Dies ist die Ausgabe, die generiert wird, wenn EM die Quelle verarbeitet
#*Everything that can be properly substituted is
#*Alles, was ordnungsgemäß ersetzt werden kann, ist
#*Expressions with errors are shown in-line, with syntax highlighting. Errors are surrounded by a red-lined box.
#*Fehlerhafte Ausdrücke werden inline mit Syntaxhervorhebung angezeigt. Fehler werden von einem rot umrandeten Kästchen umgeben.




==Proper Syntax==
==Richtige Syntax==




You may find below examples of proper syntax:
Nachfolgend finden Sie Beispiele für die richtige Syntax:
#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: zeigt an, dass bekannte Variablen farblich gekennzeichnet sind, je nachdem, ob sie auf der aktuellen Seite festgelegt sind. INSERTANS im alten Stil:xxxx erhält seinen eigenen Farbcodierungsstil
#Question Attributes: shows that dot notation can access some properties of questions
#Question Attributes: zeigt, dass die Punktnotation auf einige Eigenschaften von Fragen zugreifen kann
#Math: shows that basic and complex calculations are supported
#Math: zeigt, dass grundlegende und komplexe Berechnungen unterstützt werden
#TextProcessing: shows some of the available text-processing functions
#TextProcessing: zeigt einige der verfügbaren Textverarbeitungsfunktionen
#Dates: shows two of the available date-related functions
#Dates: zeigt zwei der verfügbaren datumsbezogenen Funktionen
#Conditional: shows the usage of the if() function. The choices can be nested.
#Conditional: zeigt die Verwendung der if()-Funktion. Die Auswahlmöglichkeiten können verschachtelt werden
#Tailored paragraph: you can completely customize a report based upon prior values
#Maßgeschneiderter Absatz: Sie können einen Bericht basierend auf vorherigen Werten vollständig anpassen
#EM processes within strings: shows that it can do substitutions within strings. This example generates a tailored image name.
#EM verarbeitet innerhalb von Zeichenfolgen: Zeigt, dass es Ersetzungen innerhalb von Zeichenfolgen durchführen kann. Dieses Beispiel generiert einen maßgeschneiderten Bildnamen
#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 verarbeitet keine geschweiften Klammern wie diese: Zeigt, dass ES den Ausdruck ignoriert, wenn die geschweiften Klammern maskiert sind oder ein Leerzeichen zwischen dem Ausdruck und den geschweiften Klammern steht




Line 46: Line 46:




==EM Syntax Containing Errors==
==EM-Syntax mit Fehlern==




Here are examples of common errors when typing ES expressions. Note that the tooltips provide additional information.
Hier finden Sie Beispiele für häufige Fehler beim Eingeben von ES-Ausdrücken. Beachten Sie, dass die Tooltips zusätzliche Informationen liefern.
#Inline Javascript that forgot to add spaces after curly brace
#Inline-Javascript, das vergessen hat, nach der geschweiften Klammer Leerzeichen einzufügen
#*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“ direkt nach einer geschweiften Klammer erscheint, geht EM davon aus, dass es sich um einen Ausdruck handelt, und rot- Felder „Dokument“ und „Schreiben“, da es sich um undefinierte Variablen bzw. Funktionen handelt.
#Unknown/Misspelled variables, functions and operators
#Unbekannte/falsch geschriebene Variablen, Funktionen und Operatoren
#*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.
#*Hier haben wir vergessen, dass wir den Variablennamen „Geschlecht“ anstelle von „“ verwenden. Sex“, aber EM fängt diesen Fehler ab. Außerdem wird „++“ rot markiert, da dies kein unterstützter Operator ist.
#Warns if use = instead of eq, or perform value assignments
#Warnt, wenn = anstelle von eq verwendet oder Wertzuweisungen durchgeführt werden
#*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.
#*Beachten Sie, dass „=“ und „+=“ sind in roter Schrift statt in schwarzer Schrift. Wenn Sie mit der Maus darüber fahren, werden Warnungen angezeigt, die darauf hinweisen, dass Sie einen Wert zuweisen.
#Wrong number of arguments for functions
#Falsche Anzahl von Argumenten für Funktionen
#*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() benötigt 3 Argumente, aber es wurden 4 angegeben, also bewegen Sie den Mauszeiger über dem rot umrahmten „if“ wird der Fehler erklärt und die unterstützte Syntax angezeigt.
#*sum() takes an unlimited number of arguments, but we had a trailing comma before the closing parentheses, so that is red-boxed
#*sum() akzeptiert eine unbegrenzte Anzahl von Argumenten, aber wir hatten ein abschließendes Komma vor den schließenden Klammern, also ist das rot umrahmt.
#Mismatched parentheses
#Nicht übereinstimmende Klammern
#*This is one of the most common errors when writing expressions.
#*Dies ist einer der häufigsten Fehler beim Schreiben von Ausdrücken.
#*This shows two examples of missing closing parentheses, and one example of having one too many closing parentheses.
#*Dies zeigt zwei Beispiele für fehlende schließende Klammern und ein Beispiel für eine zu viele schließende Klammern.
#Unsuported syntax
#Nicht unterstützte Syntax
#*If you use an operator or punctuation that ES does not support, it will red-box it.
#*Wenn Sie einen Operator oder ein Satzzeichen verwenden, das ES nicht unterstützt, wird es mit einem roten Rahmen versehen.
#Invalid assignments
#Ungültige Zuweisungen
#*Some variables are readWrite and can have their values changed. Others are read-only.
#*Einige Variablen sind schreib- und lesbar und ihre Werte können geändert werden. Andere sind schreibgeschützt.
#*If you try to change the value of a read-only variable, you can't. EM will red-box the attempt.
#*Wenn Sie versuchen, den Wert einer schreibgeschützten Variablen zu ändern, ist dies nicht möglich. EM markiert den Versuch mit einem roten Kästchen.
#*If you try to assign a value to an equation or a string, you will also get an error
#*Wenn Sie versuchen, einer Gleichung oder einer Zeichenfolge einen Wert zuzuweisen, erhalten Sie ebenfalls eine Fehlermeldung.




Line 73: Line 73:




=="Live" examples of Syntax Highlighting with active tooltips==
=="Live"-Beispiele für Syntaxhervorhebung mit aktiven Tooltips==




<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> Quelle</th><th> Hübscher Druck</th><th> Ergebnis</th></tr><tr><td> <b>Hier ist ein Beispiel für die OK-Syntax mit Tooltips</b><br> Hallo {if(gender=='M','Mr.','Mrs.')} {surname}, es ist jetzt {date('g:i a',time())}. Wissen Sie, wo Ihre {sum(numPets,numKids)} Kinder und Haustiere sind?


</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>Hier ist ein Beispiel für die OK-Syntax mit Tooltips</b><br> Hallo <span style="background-color: #eee8aa;">, <span title="if(test,result_if_true,result_if_false); im Excel-Stil; if(test,result_if_true,result_if_false)" style="color: blue; font-weight: bold">wenn</span> ( <span title="[java61764X1X5][G:2][Q:110]: Welches Geschlecht haben Sie (männlich/weiblich)?; Wert=M" style="color: green; font-weight: bold">Geschlecht</span> == <span title="" style="color: gray">'M'</span> , <span title="" style="color: gray">'Herr'</span> , <span title="" style="color: gray">'Frau'</span> )</span> <span style="background-color: #eee8aa;"><span title="[java61764X1X1][G:1][Q:20]: Wie ist Ihr Nachname/Nachname?; Wert=Smith" style="color: green; font-weight: bold">Nachname</span></span> , ist es jetzt <span style="background-color: #eee8aa;"><span title="Formatieren Sie ein lokales Datum/eine lokale Uhrzeit. string date(format [, timestamp=time()])" style="color: blue; font-weight: bold">Datum</span> ( <span title="" style="color: gray">'g:i a'</span> , <span title="Aktuellen UNIX-Zeitstempel zurückgeben; Zahl time()" style="color: blue; font-weight: bold">Zeit</span> ())</span> . Wissen Sie, wo sich Ihre <span style="background-color: #eee8aa;"><span title="Berechnen Sie die Summe der Werte in einem Array. Zahlensumme(arg1, arg2, ... argN)" style="color: blue; font-weight: bold">sum</span> ( <span title="[java61764X1X4][G:2][Q:50]: Wie viele Haustiere hast du?; Wert=1" style="color: maroon; font-weight: bold">numPets</span> , <span title="[java61764X1X3][G:2][F:40]: Wie viele Kinder haben Sie?; Wert=2" style="color: green; font-weight: bold">numKids</span> )</span> Kinder und Haustiere befinden?


</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>Hier ist ein Beispiel für die OK-Syntax mit Tooltips</b><br> Hallo <span id="LEMtailor_Q_40_1">Herr</span> <span id="LEMtailor_Q_40_2">Smith</span> , es ist jetzt 6:07 Uhr. Wissen Sie, wo Ihre <span id="LEMtailor_Q_40_4">3</span> Kinder und Haustiere sind?
</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>Hier sind häufige Fehler aufgeführt, damit Sie die Tooltips sehen können</b><br> Variablen, die vor ihrer Deklaration verwendet werden: {notSetYet}<br> Unbekannte Funktion: {iff(numPets>numKids,1,2)}<br> Unbekannte Variable: {sum(age,num_pets,numKids)}<br> Falsche # Parameter: {sprintf()},{if(1,2)},{date()}<br> Weisen Sie schreibgeschützte Variablen zu:{TOKEN:ATTRIBUTE_1+=10},{name='Sally'}<br> Unsymmetrische Klammern: {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>Hier sind häufige Fehler aufgeführt, damit Sie die Tooltips sehen können</b><br> Variablen, die vor ihrer Deklaration verwendet werden: <span style="background-color: #eee8aa;"><span title="Diese Variable wird erst auf einer späteren Seite deklariert; Kein gültiger Ausdruck" style="border-style: solid; border-width: 2px; border-color: red;"><span title="Diese Variable wird erst auf einer späteren Seite deklariert; Kein gültiger Ausdruck; [java61764X3X6][G:3][Q:200]: Wer wird die nächste Wahl gewinnen?; Wert=?" style="color: #FF00FF ; font-weight: bold">notSetYet</span></span></span><br> Unbekannte Funktion: <span style="background-color: #eee8aa;"><span title="Undefinierte Funktion" style="border-style: solid; border-width: 2px; border-color: red;"><span title="Undefinierte Funktion" style="color: blue; font-weight: bold">iff</span></span> ( <span title="[java61764X1X4][G:2][Q:50]: Wie viele Haustiere hast du?; Wert=1" style="color: maroon; font-weight: bold">numPets</span> > <span title="[java61764X1X3][G:2][F:40]: Wie viele Kinder haben Sie?; Wert=2" style="color: green; font-weight: bold">numKids</span> ,1,2)</span><br> Unbekannte Variable: <span style="background-color: #eee8aa;"><span title="Berechnen Sie die Summe der Werte in einem Array. Zahlensumme(arg1, arg2, ... argN)" style="color: blue; font-weight: bold">sum</span> ( <span title="[java61764X1X2][G:2][F:30]: Wie alt bist du?; Wert=45" style="color: green; font-weight: bold">age</span> , <span title="undefinierte Variable" style="border-style: solid; border-width: 2px; border-color: red;"><span title="undefinierte Variable" style="color: red; font-weight: bold">num_pets</span></span> , <span title="[java61764X1X3][G:2][F:40]: Wie viele Kinder haben Sie?; Wert=2" style="color: green; font-weight: bold">numKids</span> )</span><br> Falsche # Parameter: <span style="background-color: #eee8aa;"><span title="Funktion muss mindestens 1 Argument(e) haben; Kein gültiger Ausdruck" style="border-style: solid; border-width: 2px; border-color: red;"><span title="Funktion muss mindestens 1 Argument(e) haben; Kein gültiger Ausdruck; Gibt eine formatierte Zeichenfolge zurück. string sprintf(format, arg1, arg2, ... argN)" style="color: blue; font-weight: bold">sprintf</span></span> ()</span> , <span style="background-color: #eee8aa;"><span title="Die Funktion unterstützt diese Anzahl an Argumenten nicht: 2. Die Funktion unterstützt diese viele Argumente, wobei -1=unbegrenzt: 3; Kein gültiger Ausdruck" style="border-style: solid; border-width: 2px; border-color: red;"><span title="Die Funktion unterstützt diese Anzahl an Argumenten nicht: 2. Die Funktion unterstützt diese viele Argumente, wobei -1=unbegrenzt: 3; Kein gültiger Ausdruck; if(test,result_if_true,result_if_false); im Excel-Stil; 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="Die Funktion unterstützt diese Anzahl an Argumenten nicht: 0. Die Funktion unterstützt diese viele Argumente, wobei -1=unbegrenzt: 1,2; Kein gültiger Ausdruck" style="border-style: solid; border-width: 2px; border-color: red;"><span title="Die Funktion unterstützt diese Anzahl an Argumenten nicht: 0. Die Funktion unterstützt diese viele Argumente, wobei -1=unbegrenzt: 1,2; Kein gültiger Ausdruck; Formatieren Sie ein lokales Datum/eine lokale Uhrzeit. string date(format [, timestamp=time()])" style="color: blue; font-weight: bold">date</span></span> ()</span><br> Weisen Sie schreibgeschützte Variablen zu: <span style="background-color: #eee8aa;"><span title="Der Wert dieser Variablen kann nicht geändert werden; Kein gültiger Ausdruck" style="border-style: solid; border-width: 2px; border-color: red;"><span title="Der Wert dieser Variablen kann nicht geändert werden; Kein gültiger Ausdruck; ; Wert=Arbeiter" style="color: #996600; font-weight: bold">TOKEN:ATTRIBUTE_1</span></span> <span title="Einer Variablen einen neuen Wert zuweisen" style="color: red; font-weight: bold">+=</span> 10</span> , <span style="background-color: #eee8aa;"><span title="Der Wert dieser Variablen kann nicht geändert werden; Kein gültiger Ausdruck" style="border-style: solid; border-width: 2px; border-color: red;"><span title="Der Wert dieser Variablen kann nicht geändert werden; Kein gültiger Ausdruck; [java61764X1X1][G:1][Q:10]: Wie lautet Ihr Vor-/Vorname?; Wert=Peter" style="color: green; font-weight: bold">name</span></span> <span title="Einer Variablen einen neuen Wert zuweisen" style="color: red; font-weight: bold">=</span> <span title="" style="color: gray">'Sally'</span></span><br> Unsymmetrische Klammern: <span style="background-color: #eee8aa;"><span title="Klammern nicht ausgeglichen" style="border-style: solid; border-width: 2px; border-color: red;"><span title="Klammern nicht ausgeglichen; Exponentieller Ausdruck; Zahl pow(Basis, Exp)" style="color: blue; font-weight: bold">pow</span></span> (3,4</span> , <span style="background-color: #eee8aa;"><span title="Klammern nicht ausgeglichen" style="border-style: solid; border-width: 2px; border-color: red;">(</span> <span title="Exponentieller Ausdruck; Zahl pow(Basis, Exp)" style="color: blue; font-weight: bold">pow</span> (3,4)</span> , <span style="background-color: #eee8aa;"><span title="Exponentieller Ausdruck; Zahl pow(Basis, Exp)" style="color: blue; font-weight: bold">pow</span> (3,4) <span title="Zusätzliche rechte Klammern erkannt" 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>Hier sind häufige Fehler aufgeführt, damit Sie die Tooltips sehen können</b><br> Variablen, die vor ihrer Deklaration verwendet werden: <span id="LEMtailor_Q_40_5"><span style="background-color: #eee8aa;"><span title="Diese Variable wird erst auf einer späteren Seite deklariert; Kein gültiger Ausdruck" style="border-style: solid; border-width: 2px; border-color: red;"><span title="Diese Variable wird erst auf einer späteren Seite deklariert; Kein gültiger Ausdruck; [java61764X3X6][G:3][Q:200]: Wer wird die nächste Wahl gewinnen?; Wert=?" style="color: #FF00FF ; font-weight: bold">notSetYet</span></span></span></span><br> Unbekannte Funktion: <span style="background-color: #eee8aa;"><span title="Undefinierte Funktion" style="border-style: solid; border-width: 2px; border-color: red;"><span title="Undefinierte Funktion" style="color: blue; font-weight: bold">iff</span></span> ( <span title="[java61764X1X4][G:2][Q:50]: Wie viele Haustiere hast du?; Wert=1" style="color: maroon; font-weight: bold">numPets</span> > <span title="[java61764X1X3][G:2][F:40]: Wie viele Kinder haben Sie?; Wert=2" style="color: green; font-weight: bold">numKids</span> ,1,2)</span><br> Unbekannte Variable: <span style="background-color: #eee8aa;"><span title="Berechnen Sie die Summe der Werte in einem Array. Zahlensumme(arg1, arg2, ... argN)" style="color: blue; font-weight: bold">sum</span> ( <span title="[java61764X1X2][G:2][F:30]: Wie alt bist du?; Wert=45" style="color: green; font-weight: bold">age</span> , <span title="undefinierte Variable" style="border-style: solid; border-width: 2px; border-color: red;"><span title="undefinierte Variable" style="color: red; font-weight: bold">num_pets</span></span> , <span title="[java61764X1X3][G:2][F:40]: Wie viele Kinder haben Sie?; Wert=2" style="color: green; font-weight: bold">numKids</span> )</span><br> Falsche # Parameter: <span style="background-color: #eee8aa;"><span title="Funktion muss mindestens 1 Argument(e) haben; Kein gültiger Ausdruck" style="border-style: solid; border-width: 2px; border-color: red;"><span title="Funktion muss mindestens 1 Argument(e) haben; Kein gültiger Ausdruck; Gibt eine formatierte Zeichenfolge zurück; string sprintf(format, arg1, arg2, ... argN)" style="color: blue; font-weight: bold">sprintf</span></span> ()</span> , <span style="background-color: #eee8aa;"><span title="Die Funktion unterstützt diese Anzahl an Argumenten nicht: 2. Die Funktion unterstützt diese viele Argumente, wobei -1=unbegrenzt: 3; Kein gültiger Ausdruck" style="border-style: solid; border-width: 2px; border-color: red;"><span title="Die Funktion unterstützt diese Anzahl an Argumenten nicht: 2. Die Funktion unterstützt diese viele Argumente, wobei -1=unbegrenzt: 3; Kein gültiger Ausdruck; if(test,result_if_true,result_if_false); im Excel-Stil; 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="Die Funktion unterstützt diese Anzahl an Argumenten nicht: 0. Die Funktion unterstützt diese viele Argumente, wobei -1=unbegrenzt: 1,2; Kein gültiger Ausdruck" style="border-style: solid; border-width: 2px; border-color: red;"><span title="Die Funktion unterstützt diese Anzahl an Argumenten nicht: 0. Die Funktion unterstützt diese viele Argumente, wobei -1=unbegrenzt: 1,2; Kein gültiger Ausdruck; Formatieren Sie ein lokales Datum/eine lokale Uhrzeit. string date(format [, timestamp=time()])" style="color: blue; font-weight: bold">date</span></span> ()</span><br> Weisen Sie schreibgeschützte Variablen zu: <span style="background-color: #eee8aa;"><span title="Der Wert dieser Variablen kann nicht geändert werden; Kein gültiger Ausdruck" style="border-style: solid; border-width: 2px; border-color: red;"><span title="Der Wert dieser Variablen kann nicht geändert werden; Kein gültiger Ausdruck; ; Wert=Arbeiter" style="color: #996600; font-weight: bold">TOKEN:ATTRIBUTE_1</span></span> <span title="Einer Variablen einen neuen Wert zuweisen" style="color: red; font-weight: bold">+=</span> 10</span> , <span id="LEMtailor_Q_40_12"><span style="background-color: #eee8aa;"><span title="Der Wert dieser Variablen kann nicht geändert werden; Kein gültiger Ausdruck" style="border-style: solid; border-width: 2px; border-color: red;"><span title="Der Wert dieser Variablen kann nicht geändert werden; Kein gültiger Ausdruck; [java61764X1X1][G:1][Q:10]: Wie lautet Ihr Vor-/Vorname?; Wert=Peter" style="color: green; font-weight: bold">name</span></span> <span title="Einer Variablen einen neuen Wert zuweisen" style="color: red; font-weight: bold">=</span> <span title="" style="color: gray">'Sally'</span></span></span><br> Unsymmetrische Klammern: <span style="background-color: #eee8aa;"><span title="Klammern nicht ausgeglichen" style="border-style: solid; border-width: 2px; border-color: red;"><span title="Klammern nicht ausgeglichen; Exponentieller Ausdruck; Zahl pow(Basis, Exp)" style="color: blue; font-weight: bold">pow</span></span> (3,4</span> , <span style="background-color: #eee8aa;"><span title="Klammern nicht ausgeglichen" style="border-style: solid; border-width: 2px; border-color: red;">(</span> <span title="Exponentieller Ausdruck; Zahl pow(Basis, Exp)" style="color: blue; font-weight: bold">pow</span> (3,4)</span> , <span style="background-color: #eee8aa;"><span title="Exponentieller Ausdruck; Zahl pow(Basis, Exp)" style="color: blue; font-weight: bold">pow</span> (3,4) <span title="Zusätzliche rechte Klammern erkannt" 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>Hier sind einige der nicht unterstützten Syntax</b><br> Keine Unterstützung für '++', '--', '%',';': {min(++age, --age,age % 2);}<br> Noch '|', '&', '^': {(sum(2 | 3,3 & 4,5 ^ 6)}}<br> Noch Arrays: {name[2], name['mine']}
</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>Hier sind einige der nicht unterstützten Syntax</b><br> Keine Unterstützung für '++', '--', '%',';': <span style="background-color: #eee8aa;"><span title="Finden Sie den niedrigsten Wert; Zahl min(arg1, arg2, ... argN)" style="color: blue; font-weight: bold">min</span> ( <span title="Nicht unterstützte Syntax" style="border-style: solid; border-width: 2px; border-color: red;">++</span> <span title="[java61764X1X2][G:2][F:30]: Wie alt bist du?; Wert=45" style="color: green; font-weight: bold">age</span> , <span title="Nicht unterstützte Syntax" style="border-style: solid; border-width: 2px; border-color: red;">--</span> <span title="[java61764X1X2][G:2][F:30]: Wie alt bist du?; Wert=45" style="color: green; font-weight: bold">age</span> , <span title="[java61764X1X2][G:2][F:30]: Wie alt bist du?; Wert=45" style="color: green; font-weight: bold">age</span> <span title="Nicht unterstützte Syntax" style="border-style: solid; border-width: 2px; border-color: red;">%</span> 2) <span title="Nicht unterstützte Syntax" style="border-style: solid; border-width: 2px; border-color: red;">;</span></span><br> Noch '|', '&', '^': <span style="background-color: #eee8aa;">( <span title="Berechnen Sie die Summe der Werte in einem Array. Zahlensumme(arg1, arg2, ... argN)" style="color: blue; font-weight: bold">Summe</span> (2 <span title="Nicht unterstützte Syntax" style="border-style: solid; border-width: 2px; border-color: red;">|</span> 3,3 <span title="Nicht unterstützte Syntax" style="border-style: solid; border-width: 2px; border-color: red;">&</span> 4,5 <span title="Nicht unterstützte Syntax" style="border-style: solid; border-width: 2px; border-color: red;">^</span> 6)</span> }<br> Noch Arrays: <span style="background-color: #eee8aa;"><span title="[java61764X1X1][G:1][Q:10]: Wie lautet Ihr Vor-/Vorname?; Wert=Peter" style="color: green; font-weight: bold">name</span> <span title="Nicht unterstützte Syntax" style="border-style: solid; border-width: 2px; border-color: red;">[</span> 2 <span title="Nicht unterstützte Syntax" style="border-style: solid; border-width: 2px; border-color: red;">]</span> , <span title="[java61764X1X1][G:1][Q:10]: Wie lautet Ihr Vor-/Vorname?; Wert=Peter" style="color: green; font-weight: bold">name</span> <span title="Nicht unterstützte Syntax" style="border-style: solid; border-width: 2px; border-color: red;">[</span> <span title="" style="color: gray">'mine'</span> <span title="Nicht unterstützte Syntax" 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>Hier sind einige der nicht unterstützten Syntax</b><br> Keine Unterstützung für '++', '--', '%',';': <span style="background-color: #eee8aa;"><span title="Finden Sie den niedrigsten Wert; Zahl min(arg1, arg2, ... argN)" style="color: blue; font-weight: bold">min</span> ( <span title="Nicht unterstützte Syntax" style="border-style: solid; border-width: 2px; border-color: red;">++</span> <span title="[java61764X1X2][G:2][F:30]: Wie alt bist du?; Wert=45" style="color: green; font-weight: bold">age</span> , <span title="Nicht unterstützte Syntax" style="border-style: solid; border-width: 2px; border-color: red;">--</span> <span title="[java61764X1X2][G:2][F:30]: Wie alt bist du?; Wert=45" style="color: green; font-weight: bold">age</span> , <span title="[java61764X1X2][G:2][F:30]: Wie alt bist du?; Wert=45" style="color: green; font-weight: bold">age</span> <span title="Nicht unterstützte Syntax" style="border-style: solid; border-width: 2px; border-color: red;">%</span> 2) <span title="Nicht unterstützte Syntax" style="border-style: solid; border-width: 2px; border-color: red;">;</span></span><br> Noch '|', '&', '^': <span style="background-color: #eee8aa;">( <span title="Berechnen Sie die Summe der Werte in einem Array. Zahlensumme(arg1, arg2, ... argN)" style="color: blue; font-weight: bold">Summe</span> (2 <span title="Nicht unterstützte Syntax" style="border-style: solid; border-width: 2px; border-color: red;">|</span> 3,3 <span title="Nicht unterstützte Syntax" style="border-style: solid; border-width: 2px; border-color: red;">&</span> 4,5 <span title="Nicht unterstützte Syntax" style="border-style: solid; border-width: 2px; border-color: red;">^</span> 6)</span> }<br> Noch Arrays: <span style="background-color: #eee8aa;"><span title="[java61764X1X1][G:1][Q:10]: Wie lautet Ihr Vor-/Vorname?; Wert=Peter" style="color: green; font-weight: bold">name</span> <span title="Nicht unterstützte Syntax" style="border-style: solid; border-width: 2px; border-color: red;">[</span> 2 <span title="Nicht unterstützte Syntax" style="border-style: solid; border-width: 2px; border-color: red;">]</span> , <span title="[java61764X1X1][G:1][Q:10]: Wie lautet Ihr Vor-/Vorname?; Wert=Peter" style="color: green; font-weight: bold">name</span> <span title="Nicht unterstützte Syntax" style="border-style: solid; border-width: 2px; border-color: red;">[</span> <span title="" style="color: gray">'mine'</span> <span title="Nicht unterstützte Syntax" 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})=
=Anpassungsbeispiele (z. B. Erweitern von {INSERTANS:xxx})=




=="Dear {Mr}/{Mrs} Smith..."==
=="Sehr geehrter {Herr}/{Frau} Smith..."==




Use the if() function to conditionally choose whether to display 'Mr.' or 'Mrs.'.
Verwenden Sie die Funktion if(), um zu entscheiden, ob 'Herr' oder 'Frau' angezeigt werden soll.


The syntax is if(test,do_if_true,do_if_false).
Die Syntax lautet if(test,do_if_true,do_if_false).


{|
{|
|#||Code||Question||Type
|#||Code||Frage||Typ
|-
|-
|1||gender||What is your gender?||Gender
|1||Geschlecht||Was ist Ihr Geschlecht?||Geschlecht
|-
|-
|2||example1||Dear {if(gender=='M','Mr.','Mrs.')} Smith, ...||Long free text
|2||Beispiel1||Lieber {if(gender=='Herr','Frau')} Smith, ...||Langer Freitext
|}
|}


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".
Wie weiter unten zu sehen ist, sind „Herr“ und „Frau“ auf das zugeschnitten, was der Befragte als Antwort auf die Frage „Geschlecht“ auswählt.




Line 128: Line 128:




=="Dear {Mr}/{Mrs} Smith..." in invitation email==
=="Sehr geehrter {Herr}/{Frau} Smith..." in der Einladungs-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.
Sie können das obige Beispiel in der Einladungs-E-Mail mit Attributen aus der Token-Tabelle verwenden. Verwenden Sie die if()-Funktion, um auszuwählen, ob "Herr" oder "Frau" in der E-Mail verwendet werden soll.




The syntax is "if(test,do_if_true,do_if_false)".
Die Syntax lautet „if(test,do_if_true,do_if_false).


{|
{|
|#||attribute||value
|#||Attribut||Wert
|-
|-
|1||Last name||Smith
|1||Nachname||Smith
|-
|-
|2||Email address||test@test.com
|2||E-Mail-Adresse||test@test. com
|-
|-
|3||ATTRIBUTE_2||M
|3||ATTRIBUTE_2||M
Line 147: Line 147:




Text in invitation email:
Text in der Einladungs-E-Mail:


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


Dear {if(ATTRIBUTE_2=='M','Mr','Mrs')} {LASTNAME},
Lieber {if(ATTRIBUTE_2=='Herr','Frau')} {NACHNAME},


you have been invited to participate in a survey:
Sie wurden zur Teilnahme an einer Umfrage eingeladen:


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




email View:
E-Mail anzeigen:




Line 169: Line 169:




=Calculation / Assessment Examples=
=Berechnungs-/Bewertungsbeispiele=




==Calculate assessment values at runtime and store the results in the survey data==
==Bewertungswerte zur Laufzeit berechnen und die Ergebnisse in den Umfragedaten speichern==




This example uses all of EM's features, including Relevance, Tailoring, and the Equation question type.
In diesem Beispiel werden alle Funktionen von EM verwendet, einschließlich Relevanz, Tailoring und dem Fragetyp „Gleichung“.


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.
Es zeigt auch, dass sie alle JavaScript-fähig sind. Wenn Sie also diese Funktionen auf einer Seite haben, ändert sich diese dynamisch, wenn die Leute ihre Antworten festlegen und ändern.


{|
{|
|#||Code||Question||Type||Relevance
|#||Code||Frage||Typ||Relevanz
|-
|-
|1||numKids||How many children do you have?||Numerical input||1
|1||numKids||Wie viele Kinder haben Sie?||Numerische Eingabe||1
|-
|-
|2||kid1||How old is your first child?||Numerical input||numKids >= 1
|2||kid1||Wie alt ist Ihr erstes Kind?||Numerische Eingabe||numKids >= 1
|-
|-
|3||kid2||How old is your second child?||Numerical input||numKids >= 2
|3||kid2||Wie alt ist Ihr zweites Kind?||Numerische Eingabe||numKids >= 2
|-
|-
|4||kid3||How old is your third child?||Numerical input||numKids >= 3
|4||kid3||Wie alt ist Ihr drittes Kind?||Numerische Eingabe||numKids >= 3
|-
|-
|5||kid4||How old is your fourth child?||Numerical input||numKids >= 4
|5||kid4||Wie alt ist Ihr viertes Kind?||Numerische Eingabe||numKids >= 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)}||Gleichung||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||Sie sagten, dass Sie {numKids} haben. {if(numKids==1,'child','children')}. {if(numKids>1,implode(' ','Die Summe des Alters Ihrer ersten ',min(numKids,4),' Kinder ist ',sumKidAges,'.'),' ')}||Textanzeige| |1
|}
|}




To download this example, please click on the following link: [[Media:Assessments_survey_example.zip|Assessments_survey_example]].
Um dieses Beispiel herunterzuladen, klicken Sie bitte auf den folgenden 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.
Nachfolgend finden Sie Screenshots repräsentativer Fragen. Wie Sie sehen, hebt die EM-Syntax alle Felder hervor, die möglicherweise Tailoring enthalten. Hier sehen Sie Beispiele für die Syntaxhervorhebung der Relevanz, den Fragetyp „Gleichung“ und Ersetzungen innerhalb einer Frage. Sie können Ersetzungen auch in der Hilfe, in der Gruppenkopfanzeige, in der Willkommensnachricht und in der Endnachricht verwenden.


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.
Im nächsten Beispiel ist die Frage nur dann sichtbar, wenn die Relevanz {numKids >= 2) ist, wenn die Befragte angibt, dass sie mindestens zwei Kinder hat.




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)).
Unten sehen Sie möglicherweise, dass an jede Variable das Suffix .NAOK angehängt ist. Dies liegt daran, wie EM kaskadierende Relevanz unterstützt. Wenn Sie nicht über .NAOK verfügen, wird die Summe nur berechnet, wenn die Person angibt, dass sie 4 Kinder hat (z. B. wenn alle Variablen relevant sind). Die Verwendung von .NAOK bedeutet, dass wir die Summe auch dann berechnen möchten, wenn alle oder einige der Variablen irrelevant sind (z. B. „Nicht anwendbar“ (NA) ist in Ordnung (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:
Das Attribut .NAOK wirkt sich jedoch nur darauf aus, ob Variablen an EM übergeben werden. Wenn die befragte Person zunächst sagt, dass sie drei Kinder hat, und für jedes Kind das Alter eingibt, dann aber ihre Meinung ändert und sagt, dass sie zwei Kinder hat, wollen wir die Summe der drei eingegebenen Werte nicht sehen - da das dritte Kind in unserem Fall "nicht mehr zutreffend" ist:




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.
Jeder einzelne Ausdruck ist farblich gekennzeichnet und hat einen braunen Hintergrund. Wie Sie sehen, gibt es hier drei separate Ausdrücke. Die letzte enthält eine Nachricht, die nur bedingt angezeigt wird, wenn die Person mehr als ein Kind hat.




Line 223: Line 223:




Now, here are screenshots of the survey in action.
Hier sind Screenshots der Umfrage in Aktion.


When you first visit the page, you see this. Note that is says "You have 0 '''children'''" instead of "You have 0 '''child'''".
Wenn Sie die Seite zum ersten Mal besuchen, sehen Sie dies. Beachten Sie, dass es heißt "Sie haben 0 '''Kinder'''" statt "Sie haben 0 '''Kind'''".




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:
Wenn ich den Wert für die Anzahl der Kinder auf 1 ändere, ändert sich die Anzeige sofort wie folgt, obwohl sie sich auf derselben Seite befindet:




Line 237: Line 237:




Now notice that the grammar is correct: "You have 1 '''child'''".
Beachten Sie nun, dass die Grammatik korrekt ist: „Sie haben 1 '''Kind'''.


Now I change the value for number of children to 3, and the display instantly changes to this.
Jetzt ändere ich den Wert für die Anzahl der Kinder auf 3 und die Anzeige wechselt sofort zu diesem Wert.


Notice that you now see the conditional message at the bottom:  "The sum of ages of your first 3 kids is 0.".
Beachten Sie, dass unten nun die bedingte Meldung angezeigt wird: „Das Gesamtalter Ihrer ersten drei Kinder beträgt 0.




Line 247: Line 247:




Now I'll enter ages for my imaginary children, and I get this display, summing up their ages:
Jetzt gebe ich das Alter meiner imaginären Kinder ein und erhalte folgende Anzeige, in der ihr Alter zusammengefasst ist:




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.
Auch hier werden die Punktzahl und die Anzeige sofort aktualisiert, wenn ich die Werte eingebe, sodass Sie damit eine laufende Summe einer Bewertungspunktzahl anzeigen können.




Now, I change the value for the number of children to 2. The display has changed to this:
Jetzt ändere ich den Wert für die Anzahl der Kinder auf 2. Die Anzeige hat sich wie folgt geändert:




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.
Beachten Sie, dass, obwohl ich für das dritte Kind einen Wert von 5,5 eingegeben hatte, der Bericht jetzt nur noch die Werte meiner ersten beiden Kinder summiert.


The reason for this is that the 3rd value is now irrelevant, and irrelevant values are actively ignored by EM.
Der Grund dafür ist, dass der 3. Wert nun irrelevant ist und irrelevante Werte von EM aktiv ignoriert werden.


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.
Wenn ich die Anzahl der Kinder wieder auf 3 ändern würde, würde ich den von mir eingegebenen Wert von 5,5 erneut sehen. So verliere ich keine Informationen, die ich auf der Seite eingebe.


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.
Wenn ich jedoch zur nächsten oder vorherigen Seite navigiere, werden alle irrelevanten Werte in der Sitzung und in der Datenbank auf NULL gesetzt. Wenn ich also den Wert bei 2 belassen würde, auf die nächste Seite gehen und dann zurückkommen und angeben würde, dass ich tatsächlich 3 Kinder habe, würde ich das Alter von 5,5 nicht mehr sehen.




==Enter data and see a dynamically changing report of what was entered on the same page==
==Geben Sie Daten ein und sehen Sie sich einen sich dynamisch ändernden Bericht darüber an, was auf derselben Seite eingegeben wurde==




This example presents the Tailoring process within LimeSurvey.
Dieses Beispiel stellt den Tailoring-Prozess innerhalb von LimeSurvey vor.


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]].
Um dieses Beispiel herunterzuladen, klicken Sie auf den folgenden Link: [[Media:Dynamic_change_of_the_report_when_data_is_entered_on_the_same_page_survey.zip|Beispiel für eine Umfrage zu dynamischen Änderungen]].


Here is what the page looks like initially. You only see the question asking what city you live in:
So sieht die Seite zunächst aus. Sie sehen nur die Frage, in welcher Stadt Sie leben:




Line 284: Line 284:




Once you start to enter an answer, the tailoring process is also starting:
Sobald Sie mit der Eingabe einer Antwort beginnen, beginnt auch der Anpassungsprozess:


<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.
Wenn Sie Antworten eingeben, wird die Tabelle unten auf der Seite aktualisiert und zeigt die Antwortcodes und Werte Ihrer Antworten an.




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


=Common Debugging Examples=
=Allgemeine Debugging-Beispiele=




==Nested if() Statements (Conditional Logic)==
==Verschachtelte if()-Anweisungen (bedingte 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 unterstützt die Funktion „if(test,do_if_true,do_if_false)“, sodass Sie bedingte Logik oder Anpassungen durchführen können. Diese Funktion kann verschachtelt werden, um das Äquivalent von „if { } else if { } else { }“ auszuführen. EM informiert Sie, wenn die Klammern nicht ausgeglichen sind (z. B. wenn Ihnen eine schließende rechte Klammer fehlt) oder wenn Sie zusätzliche rechte Klammern haben. Sie sollten versuchen, die Klammern zu zählen, während Sie lange verschachtelte if-Anweisungen verfassen, sie speichern, auf Syntaxfehler prüfen und diese gegebenenfalls beheben. Schauen wir uns gemeinsam das folgende Beispiel an.  


The group of questions used below can be accessed from here: [[Media:Example_tailoring_group11.zip|Tailoring survey example.lsg]]
Auf die unten verwendete Fragengruppe kann hier zugegriffen werden: [[Media:Example_tailoring_group11.zip|Tailoring-Umfrage example.lsg]]




First, with nothing entered, you just see "Hello."
Wenn Sie nichts eingegeben haben, sehen Sie zunächst nur „Hallo“.




Line 311: Line 311:




If you enter a name, it says, "Hello {name}."
Wenn Sie einen Namen eingeben, heißt es: „Hallo {Name}.




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:
Wenn Sie ein Alter eingeben, erhalten Sie eine individuelle Nachricht, je nachdem, ob Sie ein Kind im Vorschulalter sind oder nicht:




Line 323: Line 323:




School aged, teenager, or adult. Here is a  teenager who wants to be anonymous:
Schulalter, Teenager oder Erwachsener. Hier ist ein Teenager, der anonym bleiben möchte:




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.
Hier ist die Logikdatei der Gruppe. Wie Sie in der „Wenn-basierten“ Frage sehen können, gibt es verschachtelte Wenn-Anweisungen, die auf dem Alter der Person basieren.




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:
Wenn Sie diese Frage ursprünglich bearbeiten, ist es wahrscheinlich, dass Sie irgendwann die falsche Anzahl an Klammern haben. Folgendes passiert, wenn Sie zu wenig davon haben:




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.
Wenn Sie mit der Maus über das Wort „if“ fahren, das von einem roten Kästchen umgeben ist, heißt es „Klammern nicht ausgeglichen“. In diesem Fall sollten nach „schon ein Erwachsener!“ vier schließende Klammern stehen, es sind aber nur drei.


If, on the other hand, you have an extra right parenthesis, it will be surrounded by a red box, like this:
Wenn Sie hingegen eine zusätzliche rechte Klammer haben, wird diese von einem roten Kästchen umgeben, etwa so:




Line 349: Line 349:




When you are actually editing the question, the question looks like this:
Wenn Sie die Frage tatsächlich bearbeiten, sieht die Frage folgendermaßen aus:




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

Latest revision as of 09:09, 20 March 2024


Überblick über das bisher Erklärte

Wenn Sie bisher der Struktur des LimeSurvey-Handbuchs gefolgt sind, bedeutet das, dass Sie bereits die LimeSurvey-Terminologie kennen. Als Nächstes haben wir uns mit Ausdrücken und Variablen befasst, um zu erfahren, wie wir unsere Umfragen verbessern können. Im nächsten Teil sind wir zu den Typen und Bedeutungen von Syntax-Highlighting übergegangen, um zu erfahren, wie man Syntaxfehler korrigiert.

Nachdem diese Grundbegriffe abgedeckt sind, können wir uns Beispielen zuwenden und erklären, wie Ausdrücke in LimeSurvey funktionieren.


Syntaxhervorhebung

Die folgenden Screenshots geben Beispiele, zeigen jedoch nicht die Werte der Tooltips. Ein Tooltip ist ein informatives Feld, das immer dann angezeigt wird, wenn Sie mit der Maus über fett gefärbte Wörter fahren.

Aufgrund dieser Syntaxhervorhebung ist es sehr einfach, korrekte Ausdrücke zu verfassen, selbst wenn diese kompliziert sind. Obwohl das LimeSurvey-Team den Versuch plant, eine Expression Builder-GUI zu erstellen, können Sie die vorhandene Syntaxhervorhebung verwenden, um Tippfehler schnell zu erkennen und zu beheben. Sie können die Tooltips auch verwenden, um die Genauigkeit Ihrer Ausdrücke zu überprüfen (z. B. um zu bestätigen, dass Sie die gewünschte(n) Variable(n) ausgewählt haben).

In jedem der Beispiele gibt es drei Spalten:

  1. Quelle – das ist der Rohtext, den Sie in das Fragefeld von LimeSurvey eingeben würden
  2. Pretty Print – das ist das syntaxhervorgehobene Äquivalent dessen, was Sie eingegeben haben
    • Beachten Sie, dass Ausdrücke in dieser Hervorhebung mit einem braunen Hintergrund, aber nicht von geschweiften Klammern umgeben angezeigt werden.
    • Da EM rekursive Substitution unterstützt, würde die Anzeige von geschweiften Klammern in der Hervorhebung zu Syntaxfehlern führen.
  3. Ergebnis – Dies ist die Ausgabe, die generiert wird, wenn EM die Quelle verarbeitet
    • Alles, was ordnungsgemäß ersetzt werden kann, ist
    • Fehlerhafte Ausdrücke werden inline mit Syntaxhervorhebung angezeigt. Fehler werden von einem rot umrandeten Kästchen umgeben.


Richtige Syntax

Nachfolgend finden Sie Beispiele für die richtige Syntax:

  1. Values: zeigt an, dass bekannte Variablen farblich gekennzeichnet sind, je nachdem, ob sie auf der aktuellen Seite festgelegt sind. INSERTANS im alten Stil:xxxx erhält seinen eigenen Farbcodierungsstil
  2. Question Attributes: zeigt, dass die Punktnotation auf einige Eigenschaften von Fragen zugreifen kann
  3. Math: zeigt, dass grundlegende und komplexe Berechnungen unterstützt werden
  4. TextProcessing: zeigt einige der verfügbaren Textverarbeitungsfunktionen
  5. Dates: zeigt zwei der verfügbaren datumsbezogenen Funktionen
  6. Conditional: zeigt die Verwendung der if()-Funktion. Die Auswahlmöglichkeiten können verschachtelt werden
  7. Maßgeschneiderter Absatz: Sie können einen Bericht basierend auf vorherigen Werten vollständig anpassen
  8. EM verarbeitet innerhalb von Zeichenfolgen: Zeigt, dass es Ersetzungen innerhalb von Zeichenfolgen durchführen kann. Dieses Beispiel generiert einen maßgeschneiderten Bildnamen
  9. EM verarbeitet keine geschweiften Klammern wie diese: Zeigt, dass ES den Ausdruck ignoriert, wenn die geschweiften Klammern maskiert sind oder ein Leerzeichen zwischen dem Ausdruck und den geschweiften Klammern steht



EM-Syntax mit Fehlern

Hier finden Sie Beispiele für häufige Fehler beim Eingeben von ES-Ausdrücken. Beachten Sie, dass die Tooltips zusätzliche Informationen liefern.

  1. Inline-Javascript, das vergessen hat, nach der geschweiften Klammer Leerzeichen einzufügen
    • Da „document.write“ direkt nach einer geschweiften Klammer erscheint, geht EM davon aus, dass es sich um einen Ausdruck handelt, und rot- Felder „Dokument“ und „Schreiben“, da es sich um undefinierte Variablen bzw. Funktionen handelt.
  2. Unbekannte/falsch geschriebene Variablen, Funktionen und Operatoren
    • Hier haben wir vergessen, dass wir den Variablennamen „Geschlecht“ anstelle von „“ verwenden. Sex“, aber EM fängt diesen Fehler ab. Außerdem wird „++“ rot markiert, da dies kein unterstützter Operator ist.
  3. Warnt, wenn = anstelle von eq verwendet oder Wertzuweisungen durchgeführt werden
    • Beachten Sie, dass „=“ und „+=“ sind in roter Schrift statt in schwarzer Schrift. Wenn Sie mit der Maus darüber fahren, werden Warnungen angezeigt, die darauf hinweisen, dass Sie einen Wert zuweisen.
  4. Falsche Anzahl von Argumenten für Funktionen
    • if() benötigt 3 Argumente, aber es wurden 4 angegeben, also bewegen Sie den Mauszeiger über dem rot umrahmten „if“ wird der Fehler erklärt und die unterstützte Syntax angezeigt.
    • sum() akzeptiert eine unbegrenzte Anzahl von Argumenten, aber wir hatten ein abschließendes Komma vor den schließenden Klammern, also ist das rot umrahmt.
  5. Nicht übereinstimmende Klammern
    • Dies ist einer der häufigsten Fehler beim Schreiben von Ausdrücken.
    • Dies zeigt zwei Beispiele für fehlende schließende Klammern und ein Beispiel für eine zu viele schließende Klammern.
  6. Nicht unterstützte Syntax
    • Wenn Sie einen Operator oder ein Satzzeichen verwenden, das ES nicht unterstützt, wird es mit einem roten Rahmen versehen.
  7. Ungültige Zuweisungen
    • Einige Variablen sind schreib- und lesbar und ihre Werte können geändert werden. Andere sind schreibgeschützt.
    • Wenn Sie versuchen, den Wert einer schreibgeschützten Variablen zu ändern, ist dies nicht möglich. EM markiert den Versuch mit einem roten Kästchen.
    • Wenn Sie versuchen, einer Gleichung oder einer Zeichenfolge einen Wert zuzuweisen, erhalten Sie ebenfalls eine Fehlermeldung.



"Live"-Beispiele für Syntaxhervorhebung mit aktiven Tooltips

Quelle Hübscher Druck Ergebnis
Hier ist ein Beispiel für die OK-Syntax mit Tooltips
Hallo {if(gender=='M','Mr.','Mrs.')} {surname}, es ist jetzt {date('g:i a',time())}. Wissen Sie, wo Ihre {sum(numPets,numKids)} Kinder und Haustiere sind?
Hier ist ein Beispiel für die OK-Syntax mit Tooltips
Hallo , wenn ( Geschlecht == 'M' , 'Herr' , 'Frau' ) Nachname , ist es jetzt Datum ( 'g:i a' , Zeit ()) . Wissen Sie, wo sich Ihre sum ( numPets , numKids ) Kinder und Haustiere befinden?
Hier ist ein Beispiel für die OK-Syntax mit Tooltips
Hallo Herr Smith , es ist jetzt 6:07 Uhr. Wissen Sie, wo Ihre 3 Kinder und Haustiere sind?
Hier sind häufige Fehler aufgeführt, damit Sie die Tooltips sehen können
Variablen, die vor ihrer Deklaration verwendet werden: {notSetYet}
Unbekannte Funktion: {iff(numPets>numKids,1,2)}
Unbekannte Variable: {sum(age,num_pets,numKids)}
Falsche # Parameter: {sprintf()},{if(1,2)},{date()}
Weisen Sie schreibgeschützte Variablen zu:{TOKEN:ATTRIBUTE_1+=10},{name='Sally'}
Unsymmetrische Klammern: {pow(3,4},{(pow(3,4)},{pow(3,4))}
Hier sind häufige Fehler aufgeführt, damit Sie die Tooltips sehen können
Variablen, die vor ihrer Deklaration verwendet werden: notSetYet
Unbekannte Funktion: iff ( numPets > numKids ,1,2)
Unbekannte Variable: sum ( age , num_pets , numKids )
Falsche # Parameter: sprintf () , if (1,2) , date ()
Weisen Sie schreibgeschützte Variablen zu: TOKEN:ATTRIBUTE_1 += 10 , name = 'Sally'
Unsymmetrische Klammern: pow (3,4 , ( pow (3,4) , pow (3,4) )
Hier sind häufige Fehler aufgeführt, damit Sie die Tooltips sehen können
Variablen, die vor ihrer Deklaration verwendet werden: notSetYet
Unbekannte Funktion: iff ( numPets > numKids ,1,2)
Unbekannte Variable: sum ( age , num_pets , numKids )
Falsche # Parameter: sprintf () , if (1,2) , date ()
Weisen Sie schreibgeschützte Variablen zu: TOKEN:ATTRIBUTE_1 += 10 , name = 'Sally'
Unsymmetrische Klammern: pow (3,4 , ( pow (3,4) , pow (3,4) )
Hier sind einige der nicht unterstützten Syntax
Keine Unterstützung für '++', '--', '%',';': {min(++age, --age,age % 2);}
Noch '|', '&', '^': {(sum(2 | 3,3 & 4,5 ^ 6)}}
Noch Arrays: {name[2], name['mine']}
Hier sind einige der nicht unterstützten Syntax
Keine Unterstützung für '++', '--', '%',';': min ( ++ age , -- age , age % 2) ;
Noch '|', '&', '^': ( Summe (2 | 3,3 & 4,5 ^ 6) }
Noch Arrays: name [ 2 ] , name [ 'mine' ]
Hier sind einige der nicht unterstützten Syntax
Keine Unterstützung für '++', '--', '%',';': min ( ++ age , -- age , age % 2) ;
Noch '|', '&', '^': ( Summe (2 | 3,3 & 4,5 ^ 6) }
Noch Arrays: name [ 2 ] , name [ 'mine' ]


Anpassungsbeispiele (z. B. Erweitern von {INSERTANS:xxx})

"Sehr geehrter {Herr}/{Frau} Smith..."

Verwenden Sie die Funktion if(), um zu entscheiden, ob 'Herr' oder 'Frau' angezeigt werden soll.

Die Syntax lautet if(test,do_if_true,do_if_false).

# Code Frage Typ
1 Geschlecht Was ist Ihr Geschlecht? Geschlecht
2 Beispiel1 Lieber {if(gender=='Herr','Frau')} Smith, ... Langer Freitext



Wie weiter unten zu sehen ist, sind „Herr“ und „Frau“ auf das zugeschnitten, was der Befragte als Antwort auf die Frage „Geschlecht“ auswählt.



"Sehr geehrter {Herr}/{Frau} Smith..." in der Einladungs-E-Mail

Sie können das obige Beispiel in der Einladungs-E-Mail mit Attributen aus der Token-Tabelle verwenden. Verwenden Sie die if()-Funktion, um auszuwählen, ob "Herr" oder "Frau" in der E-Mail verwendet werden soll.


Die Syntax lautet „if(test,do_if_true,do_if_false)“.

# Attribut Wert
1 Nachname Smith
2 E-Mail-Adresse test@test. com
3 ATTRIBUTE_2 M


Text in der Einladungs-E-Mail:

Lieber {if(ATTRIBUTE_2=='Herr','Frau')} {NACHNAME},

Sie wurden zur Teilnahme an einer Umfrage eingeladen:

https:/...



E-Mail anzeigen:



Berechnungs-/Bewertungsbeispiele

Bewertungswerte zur Laufzeit berechnen und die Ergebnisse in den Umfragedaten speichern

In diesem Beispiel werden alle Funktionen von EM verwendet, einschließlich Relevanz, Tailoring und dem Fragetyp „Gleichung“.

Es zeigt auch, dass sie alle JavaScript-fähig sind. Wenn Sie also diese Funktionen auf einer Seite haben, ändert sich diese dynamisch, wenn die Leute ihre Antworten festlegen und ändern.

# Code Frage Typ Relevanz
1 numKids Wie viele Kinder haben Sie? Numerische Eingabe 1
2 kid1 Wie alt ist Ihr erstes Kind? Numerische Eingabe numKids >= 1
3 kid2 Wie alt ist Ihr zweites Kind? Numerische Eingabe numKids >= 2
4 kid3 Wie alt ist Ihr drittes Kind? Numerische Eingabe numKids >= 3
5 kid4 Wie alt ist Ihr viertes Kind? Numerische Eingabe numKids >= 4
6 sumKidAges {sum(kid1.NAOK,kid2. NAOK,kid3.NAOK,kid4.NAOK)} Gleichung 1
7 kidSummary Sie sagten, dass Sie {numKids} haben. {if(numKids==1,'child','children')}. {if(numKids>1,implode(' ','Die Summe des Alters Ihrer ersten ',min(numKids,4),' Kinder ist ',sumKidAges,'.'),' ')} |1


Um dieses Beispiel herunterzuladen, klicken Sie bitte auf den folgenden Link: Assessments_survey_example.


Nachfolgend finden Sie Screenshots repräsentativer Fragen. Wie Sie sehen, hebt die EM-Syntax alle Felder hervor, die möglicherweise Tailoring enthalten. Hier sehen Sie Beispiele für die Syntaxhervorhebung der Relevanz, den Fragetyp „Gleichung“ und Ersetzungen innerhalb einer Frage. Sie können Ersetzungen auch in der Hilfe, in der Gruppenkopfanzeige, in der Willkommensnachricht und in der Endnachricht verwenden.

Im nächsten Beispiel ist die Frage nur dann sichtbar, wenn die Relevanz {numKids >= 2) ist, wenn die Befragte angibt, dass sie mindestens zwei Kinder hat.



Unten sehen Sie möglicherweise, dass an jede Variable das Suffix .NAOK angehängt ist. Dies liegt daran, wie EM kaskadierende Relevanz unterstützt. Wenn Sie nicht über .NAOK verfügen, wird die Summe nur berechnet, wenn die Person angibt, dass sie 4 Kinder hat (z. B. wenn alle Variablen relevant sind). Die Verwendung von .NAOK bedeutet, dass wir die Summe auch dann berechnen möchten, wenn alle oder einige der Variablen irrelevant sind (z. B. „Nicht anwendbar“ (NA) ist in Ordnung (OK)).

Das Attribut .NAOK wirkt sich jedoch nur darauf aus, ob Variablen an EM übergeben werden. Wenn die befragte Person zunächst sagt, dass sie drei Kinder hat, und für jedes Kind das Alter eingibt, dann aber ihre Meinung ändert und sagt, dass sie zwei Kinder hat, wollen wir die Summe der drei eingegebenen Werte nicht sehen - da das dritte Kind in unserem Fall "nicht mehr zutreffend" ist:



Jeder einzelne Ausdruck ist farblich gekennzeichnet und hat einen braunen Hintergrund. Wie Sie sehen, gibt es hier drei separate Ausdrücke. Die letzte enthält eine Nachricht, die nur bedingt angezeigt wird, wenn die Person mehr als ein Kind hat.



Hier sind Screenshots der Umfrage in Aktion.

Wenn Sie die Seite zum ersten Mal besuchen, sehen Sie dies. Beachten Sie, dass es heißt "Sie haben 0 Kinder" statt "Sie haben 0 Kind".



Wenn ich den Wert für die Anzahl der Kinder auf 1 ändere, ändert sich die Anzeige sofort wie folgt, obwohl sie sich auf derselben Seite befindet:



Beachten Sie nun, dass die Grammatik korrekt ist: „Sie haben 1 Kind.

Jetzt ändere ich den Wert für die Anzahl der Kinder auf 3 und die Anzeige wechselt sofort zu diesem Wert.

Beachten Sie, dass unten nun die bedingte Meldung angezeigt wird: „Das Gesamtalter Ihrer ersten drei Kinder beträgt 0.“



Jetzt gebe ich das Alter meiner imaginären Kinder ein und erhalte folgende Anzeige, in der ihr Alter zusammengefasst ist:



Auch hier werden die Punktzahl und die Anzeige sofort aktualisiert, wenn ich die Werte eingebe, sodass Sie damit eine laufende Summe einer Bewertungspunktzahl anzeigen können.


Jetzt ändere ich den Wert für die Anzahl der Kinder auf 2. Die Anzeige hat sich wie folgt geändert:



Beachten Sie, dass, obwohl ich für das dritte Kind einen Wert von 5,5 eingegeben hatte, der Bericht jetzt nur noch die Werte meiner ersten beiden Kinder summiert.

Der Grund dafür ist, dass der 3. Wert nun irrelevant ist und irrelevante Werte von EM aktiv ignoriert werden.

Wenn ich die Anzahl der Kinder wieder auf 3 ändern würde, würde ich den von mir eingegebenen Wert von 5,5 erneut sehen. So verliere ich keine Informationen, die ich auf der Seite eingebe.

Wenn ich jedoch zur nächsten oder vorherigen Seite navigiere, werden alle irrelevanten Werte in der Sitzung und in der Datenbank auf NULL gesetzt. Wenn ich also den Wert bei 2 belassen würde, auf die nächste Seite gehen und dann zurückkommen und angeben würde, dass ich tatsächlich 3 Kinder habe, würde ich das Alter von 5,5 nicht mehr sehen.


Geben Sie Daten ein und sehen Sie sich einen sich dynamisch ändernden Bericht darüber an, was auf derselben Seite eingegeben wurde

Dieses Beispiel stellt den Tailoring-Prozess innerhalb von LimeSurvey vor.

Um dieses Beispiel herunterzuladen, klicken Sie auf den folgenden Link: Beispiel für eine Umfrage zu dynamischen Änderungen.

So sieht die Seite zunächst aus. Sie sehen nur die Frage, in welcher Stadt Sie leben:



Sobald Sie mit der Eingabe einer Antwort beginnen, beginnt auch der Anpassungsprozess:


Wenn Sie Antworten eingeben, wird die Tabelle unten auf der Seite aktualisiert und zeigt die Antwortcodes und Werte Ihrer Antworten an.


Allgemeine Debugging-Beispiele

Verschachtelte if()-Anweisungen (bedingte Logik)

EM unterstützt die Funktion „if(test,do_if_true,do_if_false)“, sodass Sie bedingte Logik oder Anpassungen durchführen können. Diese Funktion kann verschachtelt werden, um das Äquivalent von „if { } else if { } else { }“ auszuführen. EM informiert Sie, wenn die Klammern nicht ausgeglichen sind (z. B. wenn Ihnen eine schließende rechte Klammer fehlt) oder wenn Sie zusätzliche rechte Klammern haben. Sie sollten versuchen, die Klammern zu zählen, während Sie lange verschachtelte if-Anweisungen verfassen, sie speichern, auf Syntaxfehler prüfen und diese gegebenenfalls beheben. Schauen wir uns gemeinsam das folgende Beispiel an.

Auf die unten verwendete Fragengruppe kann hier zugegriffen werden: Tailoring-Umfrage example.lsg


Wenn Sie nichts eingegeben haben, sehen Sie zunächst nur „Hallo“.



Wenn Sie einen Namen eingeben, heißt es: „Hallo {Name}.“



Wenn Sie ein Alter eingeben, erhalten Sie eine individuelle Nachricht, je nachdem, ob Sie ein Kind im Vorschulalter sind oder nicht:



Schulalter, Teenager oder Erwachsener. Hier ist ein Teenager, der anonym bleiben möchte:



Hier ist die Logikdatei der Gruppe. Wie Sie in der „Wenn-basierten“ Frage sehen können, gibt es verschachtelte Wenn-Anweisungen, die auf dem Alter der Person basieren.



Wenn Sie diese Frage ursprünglich bearbeiten, ist es wahrscheinlich, dass Sie irgendwann die falsche Anzahl an Klammern haben. Folgendes passiert, wenn Sie zu wenig davon haben:



Wenn Sie mit der Maus über das Wort „if“ fahren, das von einem roten Kästchen umgeben ist, heißt es „Klammern nicht ausgeglichen“. In diesem Fall sollten nach „schon ein Erwachsener!“ vier schließende Klammern stehen, es sind aber nur drei.

Wenn Sie hingegen eine zusätzliche rechte Klammer haben, wird diese von einem roten Kästchen umgeben, etwa so:



Wenn Sie die Frage tatsächlich bearbeiten, sieht die Frage folgendermaßen aus: