Actions

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

From LimeSurvey Manual

(Created page with "ExpressionScript Engine - Kurzanleitung")
 
No edit summary
 
(88 intermediate revisions by 2 users not shown)
Line 3: Line 3:




=Quick start guide=
=Kurzanleitung=




Within [https://www.limesurvey.org LimeSurvey], you can further customize your surveys via the usage of the ExpressionScript (short: ES).
In [https://www.limesurvey.org LimeSurvey] können Sie Ihre Umfragen über die Verwendung von ExpressionScript (kurz: ES) weiter anpassen.
Sidenote: "ExpressionScript was named Expression Manager (EM) in earlier version. If you read Expression Manager somewhere, it is just the old name of ES."
Sidenote: "ExpressionScript wurde in früheren Versionen Expression Manager (EM) genannt. Wenn Sie Expression Manager irgendwo lesen, ist es nur der alte Name von ES."


ES can be used to specify the following:
Mit ES kann Folgendes angegeben werden:


# '''Navigation/Branching''' - allows a respondent's answers to change the order in which the questions are displayed;
# '''Navigation/Verzweigung''' - ermöglicht es den Antworten eines Befragten, die Reihenfolge zu ändern, in der die Fragen angezeigt werden;
# '''Tailoring/Piping''' - helps you phrase the question (such as referring to prior answers, or conjugating sentences based upon the age or gender of your subjects) or how to generate custom reports (like assessment scores or tailored advice);
# '''Tailoring/Piping''' - hilft Ihnen bei der Formulierung der Frage (z. B. Bezugnahme auf frühere Antworten oder Konjugation von Sätzen auf der Grundlage des Alters oder Geschlechts Ihrer Probanden) oder bei der Erstellung benutzerdefinierter Berichte (z. B. Bewertungsergebnisse oder maßgeschneiderte Ratschläge);
# '''Validation''' - ensures that answers pass certain criteria, like min and max values or a certain input pattern.
# '''Validierung''' - stellt sicher, dass die Antworten bestimmte Kriterien erfüllen, wie Min- und Max-Werte oder ein bestimmtes Eingabemuster.


ES provides an intuitive way to specify the logic for each of those features. Nearly anything that you can write as a standard mathematical equation is a valid expression.  
ES bietet eine intuitive Möglichkeit, die Logik für jede dieser Funktionen anzugeben. Fast alles, was Sie als mathematische Standardgleichung schreiben können, ist ein gültiger Ausdruck.  


ES currently provides access to 70 functions and it can be easily extended to support more. It also lets you access you
ES bietet derzeit Zugriff auf 70 Funktionen und kann problemlos erweitert werden, um weitere zu unterstützen. Außerdem können Sie damit auf Ihre
variables using human-readable variable names (rather than [[SGQA_identifier|SGQA names]]).
Variablen zugreifen, indem Sie für Menschen lesbare Variablennamen verwenden (anstelle von [[SGQA_identifier|SGQA-Namen]]).


The upcoming sections show the main places where the ES is used.
Die nächsten Abschnitte zeigen die wichtigsten Einsatzorte des ES.




==Relevance (Controlling Navigation/Branching)==
==Relevanz (Steuerung der Navigation/Verzweigung)==




Some surveys use "Goto Logic", such that if you answer Question1 with option C, you are redirected to Question5. This approach is very limited since it is hard to validate it. Moreover, it easily breaks when you have to reorder questions. On the other hand, ES uses [https://en.wikipedia.org/wiki/Boolean_algebra Boolean relevance equations] to specify all the conditions under which a question might be valid. If the question is relevant, then the question is shown, otherwise, it is not applicable, and the value "NULL" is stored in the database.  
Einige Umfragen verwenden die „Gehe zu-Logik“, sodass Sie zu Frage 5 weitergeleitet werden, wenn Sie Frage 1 mit Option C beantworten. Dieser Ansatz ist sehr begrenzt, da er schwer zu validieren ist. Außerdem geht es leicht kaputt, wenn Sie Fragen neu anordnen müssen. Andererseits verwendet ES [https://en.wikipedia.org/wiki/Boolean_algebra Boolesche Relevanzgleichungen], um alle Bedingungen anzugeben, unter denen eine Frage gültig sein könnte. Wenn die Frage relevant ist, wird die Frage angezeigt, andernfalls ist sie nicht anwendbar und der Wert „NULL“ wird in der Datenbank gespeichert.  


<div class='simplebox'> '''Note:''' This is similar to what can be done via the [[Setting conditions|Conditions editor]], but ES lets you easily specify much more complex and powerful criteria (and lets you use the variable name rather than SGQA identifiers).</div>
<div class='simplebox'>'''Hinweis:''' Dies ähnelt dem, was über den [[Bedingungen festlegen|Bedingungseditor]] erfolgen kann, mit ES können Sie jedoch ganz einfach viel komplexere und leistungsfähigere Kriterien angeben (und den Variablennamen anstelle von SGQA-Kennungen verwenden).</div>




Line 34: Line 34:




To better understand the relevance concept, let's focus on the following survey which computes the Body Mass Index (BMI) of survey respondents. To download it, click on the following link: [[Media:ES_survey_-_Cohabs.zip|Body Mass Index survey example]].
Um das Relevanzkonzept besser zu verstehen, konzentrieren wir uns auf die folgende Umfrage, die den Body-Mass-Index (BMI) der Umfrageteilnehmer berechnet. Um es herunterzuladen, klicken Sie auf den folgenden Link: [[Media:LS3_em_tailoring.zip|Beispiel für eine Body-Mass-Index-Umfrage]].


The relevance equation is shown below in the '''Relevance''' column after the variable name. The relevance values of weight, weight_units, height, and height_units are all 1 (default value), meaning that those questions are always displayed. However, the relevance for BMI is {!is_empty(height) and !is_empty(weight)}, which means that BMI will only be computed if the subject enters a value for both height and weight (thereby avoiding the risk of getting a zero error). Also, question "Report" is only shown if the respondent answers all four main questions (height, heightunits, weight, weightunits).
Die Relevanzgleichung wird unten in der Spalte „Relevanz“ nach dem Variablennamen angezeigt. Die Relevanzwerte von „weight“, „weight_units“, „height“ und „height_units“ sind alle 1 (Standardwert), was bedeutet, dass diese Fragen immer angezeigt werden. Die Relevanz für den BMI beträgt jedoch {!is_empty(height) und !is_empty(weight)}, was bedeutet, dass der BMI nur berechnet wird, wenn der Proband einen Wert sowohl für Größe als auch für Gewicht eingibt (wodurch das Risiko eines Nullfehlers vermieden wird). Außerdem wird die Frage „Bericht“ nur angezeigt, wenn der Befragte alle vier Hauptfragen (Größe, Höheneinheiten, Gewicht, Gewichtseinheiten) beantwortet.




Line 42: Line 42:




<div class="simplebox"> [[File:help.png]] '''Note:''' The above image comes from the [[Show logic file|survey logic file]] which allows you to look for syntax errors before activating the survey.</div>
<div class="simplebox">[[File:help.png]] '''Hinweis:''' Das obige Bild stammt aus der [[Logikdatei anzeigen|Umfragelogikdatei]], mit der Sie vor der Aktivierung der Umfrage nach Syntaxfehlern suchen können.</div>




Relevance is shown and editable when:
Die Relevanz wird angezeigt und kann bearbeitet werden, wenn:
*you wish to view/edit question-level relevance
*Sie die Relevanz auf Fragenebene anzeigen/bearbeiten möchten
*you wish to view/edit group-level relevance
*Sie die Relevanz auf Gruppenebene anzeigen/bearbeiten möchten




===Viewing / Editing Question-Level Relevance===
===Anzeigen/Bearbeiten der Relevanz auf Fragenebene===




This equation computes the Body Mass Index (BMI). It is only asked if the person enters their height and weight.
Diese Gleichung berechnet den Body-Mass-Index (BMI). Es wird nur abgefragt, ob die Person ihre Größe und ihr Gewicht eingibt.




Line 59: Line 59:




This is the edit screen for the "BMI" question.
Dies ist der Bearbeitungsbildschirm für die Frage „BMI“.




Line 65: Line 65:




Note that you do not use the curly braces when you enter a relevance equation.
Beachten Sie, dass Sie bei der Eingabe einer Relevanzgleichung keine geschweiften Klammern verwenden.




===Viewing / Editing Group-Level Relevance===
===Anzeigen/Bearbeiten der Gruppenebenenrelevanz===




Let's focus now on another example - a simple census survey. To download it, click on the following link: [[Media:ES survey - Cohabs.zip|Census survey example]].  
Konzentrieren wir uns nun auf ein anderes Beispiel – eine einfache Volkszählungsumfrage. Um es herunterzuladen, klicken Sie auf den folgenden Link: [[Media:LS3_group_relevance.zip|Beispiel für eine Volkszählungsumfrage]].  


The first page asks how many people live with you and stores that in the "cohabs" variable. This page is only shown if you have more than one cohabitant (it is shown for the second person cohabitating with you). Also, p2name, p2age. p2sum are displayed only if the question before each of them contains a response.
Auf der ersten Seite wird abgefragt, wie viele Personen bei Ihnen wohnen, und dies wird in der Variable „cohabs“ gespeichert. Diese Seite wird nur angezeigt, wenn Sie mehr als einen Mitbewohner haben (sie wird für die zweite Person angezeigt, die mit Ihnen zusammenlebt). Außerdem werden p2name, p2age und p2sum nur dann angezeigt, wenn die Frage vor jeder dieser Fragen eine Antwort enthält.




Line 79: Line 79:




So, the group also has question-level relevance criteria, such that some questions only appear if you answered certain questions before them (e.g., p2age is displayed if p2name was answered). ES combines the Group and Question-level relevance for you. '''Questions in a group are only asked if the group as a whole is relevant. Then, only the subset of questions within the group that are relevant are asked.'''
Daher verfügt die Gruppe auch über Relevanzkriterien auf Fragenebene, sodass einige Fragen nur angezeigt werden, wenn Sie zuvor bestimmte Fragen beantwortet haben (z. B. wird p2age angezeigt, wenn p2name beantwortet wurde). ES vereint für Sie die Relevanz auf Gruppen- und Frageebene. „Fragen in einer Gruppe werden nur gestellt, wenn die Gruppe als Ganzes relevant ist.“ Dann wird nur die Teilmenge der Fragen innerhalb der Gruppe gestellt, die relevant sind.


Here is the screenshot for editing the group-level relevance of ''Cohabitant 2'':
Hier ist der Screenshot zum Bearbeiten der Gruppenebenenrelevanz von „Cohabitant 2“:




Line 87: Line 87:




Note that you do not use the curly braces when you enter a relevance equation.
Beachten Sie, dass Sie bei der Eingabe einer Relevanzgleichung keine geschweiften Klammern verwenden.
 


==Tailoring/Piping==
==Tailoring/Piping==




ES lets you easily do simple and complex conditional tailoring. Sometimes you just need a simple substitution, like saying, "You said you purchased <nowiki>[</nowiki>Product]. What did you like best about it?". Sometimes you need conditional substitution like "<nowiki>[</nowiki>Mr./Mrs.] <nowiki>[</nowiki>LastName], would you be willing to complete our survey?". In this case, you want to use "Mr. or Mrs." based on the person's gender. Other times you need even more complex substitution (such as based upon a mathematical computation). ES supports each of these types of tailoring/piping.
Mit EM können Sie einfach und komplex das bedingte Anpassen Ihrer Fragen durchführen. Manchmal brauchen Sie nur eine einfache Ersetzung, zum Beispiel: "Sie haben angegeben, dass Sie <nowiki>[</nowiki>Produkt] gekauft haben. Was hat Ihnen am besten gefallen?" Manchmal brauchen Sie eine bedingte Ersetzung wie "<nowiki>[</nowiki>Herr/Frau] <nowiki>[</nowiki>NachName], wären Sie bereit, unsere Umfrage auszufüllen? ". In diesem Fall möchten Sie Herrn oder Frau basierend auf dem Geschlecht der Person verwenden. In anderen Fällen benötigen Sie eine noch komplexere Substitution (zum Beispiel basierend auf einer mathematischen Berechnung). EM unterstützt jede dieser Arten von Anpassung/Ersetzung.




===Conditional Equations===
===Bedingungsgleichungen===




The Body Mass Index example shows the ability to compute a person's BMI, even while letting them enter their height and weight in two different units (cms vs inches and kgs vs lbs):
Das Beispiel des Body-Mass-Index zeigt die Möglichkeit, den BMI einer Person zu berechnen, auch wenn sie ihre Größe und ihr Gewicht in zwei verschiedenen Einheiten (cm vs. Inches und kg vs. lbs) eingeben kann:




Line 105: Line 104:




In this case, weightkg is {if(weightunits == "kg", weight, weight * 0.453592)}. This "if()" function means that if the subject enters the weight using kilograms, use that value, otherwise multiply the entered value (pounds is the alternative) by 0.453592 to convert it to kilograms. The heightm variable uses a similar approach to compute the person's height in meters (height in cms/100), even if he has entered his height in inches (1 meter=3.28084 inches).
In diesem Fall ist Gewicht kg {if(weightunits == "kg", Gewicht, Gewicht * 0,453592)}. Diese „if()“-Funktion bedeutet, dass, wenn der Proband das Gewicht in Kilogramm eingibt, dieser Wert verwendet wird, und andernfalls wird der eingegebene Wert (Pfund ist die Alternative) mit 0,453592 multipliziert, um ihn in Kilogramm umzurechnen. Die Variable heightm verwendet einen ähnlichen Ansatz, um die Größe der Person in Metern (Größe in cm/100) zu berechnen, auch wenn sie ihre Größe in Zoll (1 Meter = 3,28084 Zoll) eingegeben hat.


BMI is computed as: {weightkg / (heightm * heightm)}.
Der BMI wird wie folgt berechnet: {Gewichtkg / (Höhem * Körpergrößem)}.


Lastly, the report conditionally tailors the message for the subject, telling her what he entered. (e.g., "You said you are 2 meters tall and weight 70 kg.")
Schließlich passt der Bericht die Nachricht bedingt an den Betreffenden an, indem er ihm mitteilt, was er eingegeben hat. (z. B. "Sie haben angegeben, dass Sie 2 m groß sind und 70 kg wiegen").


In the below image, weightstatus uses nested "if()" statements to categorize the person as underweight to severely obese. You can see its equation by checking its logic:
Im folgenden Bild verwendet Weightstatus verschachtelte „if()“-Anweisungen, um die Person als untergewichtig bis stark fettleibig zu kategorisieren. Sie können die Gleichung sehen, indem Sie ihre Logik überprüfen:




Line 117: Line 116:




From the edit window for this question, you can see two things:
Im Bearbeitungsfenster für diese Frage können Sie zwei Dinge sehen:
#Tailoring must surround expressions with curly braces
#Tailoring muss Ausdrücke mit geschweiften Klammern umgeben
#Expressions can span multiple lines if, as in this case, you want to make it easier to read the nested conditional logic.
#Ausdrücke können sich über mehrere Zeilen erstrecken, wenn Sie, wie in diesem Fall, die verschachtelte bedingte Logik leichter lesbar machen wollen.




Line 125: Line 124:




===Tailored Questions, Answers, and Reports===
===Maßgeschneiderte Fragen, Antworten und Berichte===




<div class="simplebox">[[File:help.png]] '''Note:''' Dynamic tailoring may not work if answer options are made available in select boxes on the same question page. This results from the fact that tailoring inserts a <nowiki><span></nowiki> tag which is not valid inside select options.</div>
<div class="simplebox">[[File:help.png]] '''Hinweis:''' Die dynamische Anpassung funktioniert möglicherweise nicht, wenn Antwortoptionen in Auswahlfeldern auf derselben Fragenseite verfügbar gemacht werden. Dies ist darauf zurückzuführen, dass das Tailoring einen <nowiki><span></nowiki>-Tag einfügt, der innerhalb von Auswahloptionen nicht zulässig ist.</div>


The BMI report looks like this:
Der BMI-Bericht sieht so aus:




Line 136: Line 135:




Here is the edit window for the same question.
Hier ist das Bearbeitungsfenster für dieselbe Frage.




Line 142: Line 141:




Anything within curly braces is treated as an expression, being syntax-highlighted (color coded) in the prior image. If you have any typos (such as misspelled or undefined variable names or functions), ES would show an error. In our below example:
Alles in geschweiften Klammern wird als Ausdruck behandelt und im vorherigen Bild syntaktisch hervorgehoben (farblich gekennzeichnet). Wenn Sie Tippfehler haben (z. B. falsch geschriebene oder undefinierte Variablennamen oder Funktionen), zeigt ES einen Fehler an. In unserem folgenden Beispiel:
* heightunit.shown is an undefined variable name (it is actually heightunits.shown) and
* heightunit.shown ist ein undefinierter Variablenname (eigentlich heißt heightunits.shown) und
* "rnd()" is an undefined function (the proper function name is "round()").  
* „rnd()“ ist eine undefinierte Funktion (der richtige Funktionsname ist „round()).  


In both cases, the errors are located within a red box to make it easier to spot and fix them.
In beiden Fällen werden die Fehler in einem roten Kästchen angezeigt, um das Erkennen und Beheben zu erleichtern.




Line 152: Line 151:




You can also see that you can quickly create complex reports, such as a table of entered values or tailored advice.
Sie sehen auch, dass Sie schnell komplexe Berichte erstellen können, beispielsweise eine Tabelle mit eingegebenen Werten oder maßgeschneiderte Ratschläge.


Please remember that all tailoring must surround expressions with curly braces so that LimeSurvey knows which parts of the question are free text and which should be parsed by the ExpressionScript engine.
Bitte denken Sie daran, dass alle Anpassungen Ausdrücke mit geschweiften Klammern umgeben müssen, damit LimeSurvey weiß, welche Teile der Frage Freitext sind und welche von der ExpressionScript-Engine analysiert werden sollen.




==Validation==
==Validierung==




ES controls how most of the advanced question options work. These control aspects like min/max numbers of answers, min/max individual values, min/max sum values, and checking that entered values match specified string patterns. Any value in one of those fields is considered an expression, so you can have min/max criteria with complex conditional relationships to other questions.
ES steuert, wie die meisten erweiterten Frageoptionen funktionieren. Diese steuern Aspekte wie die minimale/maximale Anzahl von Antworten, die minimalen/maximalen Einzelwerte, die minimalen/maximalen Summenwerte und die Überprüfung, ob eingegebene Werte mit bestimmten Zeichenfolgenmustern übereinstimmen. Jeder Wert in einem dieser Felder wird als Ausdruck betrachtet, sodass Sie Min/Max-Kriterien mit komplexen bedingten Beziehungen zu anderen Fragen haben können.


In all of these cases, since the advanced question attribute is always considered an expression, you do not use curly braces when specifying it.
Da das erweiterte Frageattribut in all diesen Fällen immer als Ausdruck betrachtet wird, verwenden Sie bei der Angabe keine geschweiften Klammern.


The [[ExpressionScript sample surveys|sample surveys]] page shows many working examples containing a variety of validation expressions.
Die Seite [[ExpressionScript-Beispielumfragen|Beispielumfragen]] zeigt viele Arbeitsbeispiele mit verschiedenen Validierungsausdrücken.


=Expression Manager - presentation=
=ExpressionScript - Präsentation=




To find out more about the Expression Manager and how you can use different expressions to enhance your survey, please click on the following [https://manual.limesurvey.org/Expression_Manager_-_presentation link].
Um mehr über ExpressionScript zu erfahren und wie Sie verschiedene Ausdrücke zur Verbesserung Ihrer Umfrage verwenden können, klicken Sie bitte auf den folgenden Link [https://manual.limesurvey.org/ExpressionScript_-_Presentation].

Latest revision as of 09:37, 12 March 2024


Kurzanleitung

In LimeSurvey können Sie Ihre Umfragen über die Verwendung von ExpressionScript (kurz: ES) weiter anpassen. Sidenote: "ExpressionScript wurde in früheren Versionen Expression Manager (EM) genannt. Wenn Sie Expression Manager irgendwo lesen, ist es nur der alte Name von ES."

Mit ES kann Folgendes angegeben werden:

  1. Navigation/Verzweigung - ermöglicht es den Antworten eines Befragten, die Reihenfolge zu ändern, in der die Fragen angezeigt werden;
  2. Tailoring/Piping - hilft Ihnen bei der Formulierung der Frage (z. B. Bezugnahme auf frühere Antworten oder Konjugation von Sätzen auf der Grundlage des Alters oder Geschlechts Ihrer Probanden) oder bei der Erstellung benutzerdefinierter Berichte (z. B. Bewertungsergebnisse oder maßgeschneiderte Ratschläge);
  3. Validierung - stellt sicher, dass die Antworten bestimmte Kriterien erfüllen, wie Min- und Max-Werte oder ein bestimmtes Eingabemuster.

ES bietet eine intuitive Möglichkeit, die Logik für jede dieser Funktionen anzugeben. Fast alles, was Sie als mathematische Standardgleichung schreiben können, ist ein gültiger Ausdruck.

ES bietet derzeit Zugriff auf 70 Funktionen und kann problemlos erweitert werden, um weitere zu unterstützen. Außerdem können Sie damit auf Ihre Variablen zugreifen, indem Sie für Menschen lesbare Variablennamen verwenden (anstelle von SGQA-Namen).

Die nächsten Abschnitte zeigen die wichtigsten Einsatzorte des ES.


Relevanz (Steuerung der Navigation/Verzweigung)

Einige Umfragen verwenden die „Gehe zu-Logik“, sodass Sie zu Frage 5 weitergeleitet werden, wenn Sie Frage 1 mit Option C beantworten. Dieser Ansatz ist sehr begrenzt, da er schwer zu validieren ist. Außerdem geht es leicht kaputt, wenn Sie Fragen neu anordnen müssen. Andererseits verwendet ES Boolesche Relevanzgleichungen, um alle Bedingungen anzugeben, unter denen eine Frage gültig sein könnte. Wenn die Frage relevant ist, wird die Frage angezeigt, andernfalls ist sie nicht anwendbar und der Wert „NULL“ wird in der Datenbank gespeichert.

Hinweis: Dies ähnelt dem, was über den Bedingungseditor erfolgen kann, mit ES können Sie jedoch ganz einfach viel komplexere und leistungsfähigere Kriterien angeben (und den Variablennamen anstelle von SGQA-Kennungen verwenden).




Um das Relevanzkonzept besser zu verstehen, konzentrieren wir uns auf die folgende Umfrage, die den Body-Mass-Index (BMI) der Umfrageteilnehmer berechnet. Um es herunterzuladen, klicken Sie auf den folgenden Link: Beispiel für eine Body-Mass-Index-Umfrage.

Die Relevanzgleichung wird unten in der Spalte „Relevanz“ nach dem Variablennamen angezeigt. Die Relevanzwerte von „weight“, „weight_units“, „height“ und „height_units“ sind alle 1 (Standardwert), was bedeutet, dass diese Fragen immer angezeigt werden. Die Relevanz für den BMI beträgt jedoch {!is_empty(height) und !is_empty(weight)}, was bedeutet, dass der BMI nur berechnet wird, wenn der Proband einen Wert sowohl für Größe als auch für Gewicht eingibt (wodurch das Risiko eines Nullfehlers vermieden wird). Außerdem wird die Frage „Bericht“ nur angezeigt, wenn der Befragte alle vier Hauptfragen (Größe, Höheneinheiten, Gewicht, Gewichtseinheiten) beantwortet.



Hinweis: Das obige Bild stammt aus der Umfragelogikdatei, mit der Sie vor der Aktivierung der Umfrage nach Syntaxfehlern suchen können.


Die Relevanz wird angezeigt und kann bearbeitet werden, wenn:

  • Sie die Relevanz auf Fragenebene anzeigen/bearbeiten möchten
  • Sie die Relevanz auf Gruppenebene anzeigen/bearbeiten möchten


Anzeigen/Bearbeiten der Relevanz auf Fragenebene

Diese Gleichung berechnet den Body-Mass-Index (BMI). Es wird nur abgefragt, ob die Person ihre Größe und ihr Gewicht eingibt.



Dies ist der Bearbeitungsbildschirm für die Frage „BMI“.



Beachten Sie, dass Sie bei der Eingabe einer Relevanzgleichung keine geschweiften Klammern verwenden.


Anzeigen/Bearbeiten der Gruppenebenenrelevanz

Konzentrieren wir uns nun auf ein anderes Beispiel – eine einfache Volkszählungsumfrage. Um es herunterzuladen, klicken Sie auf den folgenden Link: Beispiel für eine Volkszählungsumfrage.

Auf der ersten Seite wird abgefragt, wie viele Personen bei Ihnen wohnen, und dies wird in der Variable „cohabs“ gespeichert. Diese Seite wird nur angezeigt, wenn Sie mehr als einen Mitbewohner haben (sie wird für die zweite Person angezeigt, die mit Ihnen zusammenlebt). Außerdem werden p2name, p2age und p2sum nur dann angezeigt, wenn die Frage vor jeder dieser Fragen eine Antwort enthält.



Daher verfügt die Gruppe auch über Relevanzkriterien auf Fragenebene, sodass einige Fragen nur angezeigt werden, wenn Sie zuvor bestimmte Fragen beantwortet haben (z. B. wird p2age angezeigt, wenn p2name beantwortet wurde). ES vereint für Sie die Relevanz auf Gruppen- und Frageebene. „Fragen in einer Gruppe werden nur gestellt, wenn die Gruppe als Ganzes relevant ist.“ Dann wird nur die Teilmenge der Fragen innerhalb der Gruppe gestellt, die relevant sind.“

Hier ist der Screenshot zum Bearbeiten der Gruppenebenenrelevanz von „Cohabitant 2“:



Beachten Sie, dass Sie bei der Eingabe einer Relevanzgleichung keine geschweiften Klammern verwenden.

Tailoring/Piping

Mit EM können Sie einfach und komplex das bedingte Anpassen Ihrer Fragen durchführen. Manchmal brauchen Sie nur eine einfache Ersetzung, zum Beispiel: "Sie haben angegeben, dass Sie [Produkt] gekauft haben. Was hat Ihnen am besten gefallen?" Manchmal brauchen Sie eine bedingte Ersetzung wie "[Herr/Frau] [NachName], wären Sie bereit, unsere Umfrage auszufüllen? ". In diesem Fall möchten Sie Herrn oder Frau basierend auf dem Geschlecht der Person verwenden. In anderen Fällen benötigen Sie eine noch komplexere Substitution (zum Beispiel basierend auf einer mathematischen Berechnung). EM unterstützt jede dieser Arten von Anpassung/Ersetzung.


Bedingungsgleichungen

Das Beispiel des Body-Mass-Index zeigt die Möglichkeit, den BMI einer Person zu berechnen, auch wenn sie ihre Größe und ihr Gewicht in zwei verschiedenen Einheiten (cm vs. Inches und kg vs. lbs) eingeben kann:



In diesem Fall ist Gewicht kg {if(weightunits == "kg", Gewicht, Gewicht * 0,453592)}. Diese „if()“-Funktion bedeutet, dass, wenn der Proband das Gewicht in Kilogramm eingibt, dieser Wert verwendet wird, und andernfalls wird der eingegebene Wert (Pfund ist die Alternative) mit 0,453592 multipliziert, um ihn in Kilogramm umzurechnen. Die Variable heightm verwendet einen ähnlichen Ansatz, um die Größe der Person in Metern (Größe in cm/100) zu berechnen, auch wenn sie ihre Größe in Zoll (1 Meter = 3,28084 Zoll) eingegeben hat.

Der BMI wird wie folgt berechnet: {Gewichtkg / (Höhem * Körpergrößem)}.

Schließlich passt der Bericht die Nachricht bedingt an den Betreffenden an, indem er ihm mitteilt, was er eingegeben hat. (z. B. "Sie haben angegeben, dass Sie 2 m groß sind und 70 kg wiegen").

Im folgenden Bild verwendet Weightstatus verschachtelte „if()“-Anweisungen, um die Person als untergewichtig bis stark fettleibig zu kategorisieren. Sie können die Gleichung sehen, indem Sie ihre Logik überprüfen:



Im Bearbeitungsfenster für diese Frage können Sie zwei Dinge sehen:

  1. Tailoring muss Ausdrücke mit geschweiften Klammern umgeben
  2. Ausdrücke können sich über mehrere Zeilen erstrecken, wenn Sie, wie in diesem Fall, die verschachtelte bedingte Logik leichter lesbar machen wollen.



Maßgeschneiderte Fragen, Antworten und Berichte

Hinweis: Die dynamische Anpassung funktioniert möglicherweise nicht, wenn Antwortoptionen in Auswahlfeldern auf derselben Fragenseite verfügbar gemacht werden. Dies ist darauf zurückzuführen, dass das Tailoring einen <span>-Tag einfügt, der innerhalb von Auswahloptionen nicht zulässig ist.

Der BMI-Bericht sieht so aus:



Hier ist das Bearbeitungsfenster für dieselbe Frage.



Alles in geschweiften Klammern wird als Ausdruck behandelt und im vorherigen Bild syntaktisch hervorgehoben (farblich gekennzeichnet). Wenn Sie Tippfehler haben (z. B. falsch geschriebene oder undefinierte Variablennamen oder Funktionen), zeigt ES einen Fehler an. In unserem folgenden Beispiel:

  • heightunit.shown ist ein undefinierter Variablenname (eigentlich heißt heightunits.shown) und
  • „rnd()“ ist eine undefinierte Funktion (der richtige Funktionsname ist „round()“).

In beiden Fällen werden die Fehler in einem roten Kästchen angezeigt, um das Erkennen und Beheben zu erleichtern.



Sie sehen auch, dass Sie schnell komplexe Berichte erstellen können, beispielsweise eine Tabelle mit eingegebenen Werten oder maßgeschneiderte Ratschläge.

Bitte denken Sie daran, dass alle Anpassungen Ausdrücke mit geschweiften Klammern umgeben müssen, damit LimeSurvey weiß, welche Teile der Frage Freitext sind und welche von der ExpressionScript-Engine analysiert werden sollen.


Validierung

ES steuert, wie die meisten erweiterten Frageoptionen funktionieren. Diese steuern Aspekte wie die minimale/maximale Anzahl von Antworten, die minimalen/maximalen Einzelwerte, die minimalen/maximalen Summenwerte und die Überprüfung, ob eingegebene Werte mit bestimmten Zeichenfolgenmustern übereinstimmen. Jeder Wert in einem dieser Felder wird als Ausdruck betrachtet, sodass Sie Min/Max-Kriterien mit komplexen bedingten Beziehungen zu anderen Fragen haben können.

Da das erweiterte Frageattribut in all diesen Fällen immer als Ausdruck betrachtet wird, verwenden Sie bei der Angabe keine geschweiften Klammern.

Die Seite Beispielumfragen zeigt viele Arbeitsbeispiele mit verschiedenen Validierungsausdrücken.

ExpressionScript - Präsentation

Um mehr über ExpressionScript zu erfahren und wie Sie verschiedene Ausdrücke zur Verbesserung Ihrer Umfrage verwenden können, klicken Sie bitte auf den folgenden Link [1].