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 sample surveys/de: Difference between revisions

From LimeSurvey Manual

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




=Introduction=
=Einleitung=




The best way to learn how to use the ExpressionScript is to play with working examples and modify them to your needs.
Der beste Weg, den Umgang mit ExpressionScript zu erlernen, besteht darin, mit Arbeitsbeispielen herumzuspielen und sie an Ihre Bedürfnisse anzupassen.


You may find below a set of sample surveys to demonstrate (and test) how the EM can be used to enhance your survey. These surveys can be found in the distribution's /docs/demosurveys folder.  
Nachfolgend finden Sie eine Reihe von Beispielumfragen, um zu demonstrieren (und zu testen), wie das EM zur Verbesserung Ihrer Umfrage verwendet werden kann. Diese Umfragen finden Sie im Ordner /docs/demosurveys der Distribution.  




=Relevance, Tailoring and Equations=
=Relevanz, Tailoring und Gleichungen=




==Overview==
==Übersicht==




The following example computes the BMI (Body Mass Index) of each respondent. See below the features that are demonstrated within this example.
Das folgende Beispiel berechnet den BMI (Body-Mass-Index) jedes Befragten. Unten sehen Sie die Funktionen, die in diesem Beispiel demonstriert werden.


==EM Features Demonstrated==
==EM-Funktionen demonstriert==
   
   


#'''Relevance''' - support for powerful conditional logic;
#'''Relevanz''' - Unterstützung für leistungsstarke bedingte Logik;
#'''Piping / Tailoring''' - offers the ability to pipe or tailor answers and question metadata;
#'''Piping / Tailoring''' - bietet die Möglichkeit, Antworten und Fragemetadaten weiterzuleiten oder anzupassen;
#'''Dynamic Tailoring''' - note that reports are changed on the page as you answer questions.
#'''Dynamic Tailoring''' - beachten Sie, dass Berichte auf der Seite geändert werden, wenn Sie Fragen beantworten;
#'''Micro-Tailoring''' - conditional tailoring within sentences and reports using if() statements
#'''Micro-Tailoring''' - bedingtes Anpassen innerhalb von Sätzen und Berichten mithilfe von if()-Anweisungen;
#'''Equations''' - a new [[Question type - Equation|question type]] that lets you do calculations and store the results in the database, even if the calculation is hidden
#'''Gleichungen''' - ein neuer [[Fragentyp - Gleichung |Fragetyp]], mit dem Sie Berechnungen durchführen und die Ergebnisse in der Datenbank speichern können, auch wenn die Berechnung ausgeblendet ist;
#'''Conditional Validation''' - validation criteria, such as the minimum allowable value, can be conditional - e.g., based upon equations.
#'''Bedingte Validierung''' – Validierungskriterien, wie z. B. der minimal zulässige Wert, können bedingt sein – z. B. basierend auf Gleichungen.




Line 34: Line 34:




This example computes the Body Mass Index, a calculation of your weight and height to determine whether you are underweight, normal weight, overweight, or obese. Note that initially, all you see are the four mandatory questions:
In diesem Beispiel wird der Body-Mass-Index berechnet, eine Berechnung Ihres Gewichts und Ihrer Größe, um festzustellen, ob Sie untergewichtig, normalgewichtig, übergewichtig oder fettleibig sind. Beachten Sie, dass zunächst nur die vier Pflichtfragen angezeigt werden:




Line 40: Line 40:




Once you enter your information (and you get to choose whether to use metric or non-metric units), you see a tailored report that summarizes what you entered, telling you your weight status:
Sobald Sie Ihre Informationen eingegeben haben (und wählen können, ob Sie metrische oder nicht metrische Einheiten verwenden möchten), wird ein maßgeschneiderter Bericht angezeigt, der Ihre Eingaben zusammenfasst und Ihnen Ihren Gewichtsstatus mitteilt:




Line 46: Line 46:




Here is a different example, using non-metric units to show how the result changes dynamically:  
Hier ist ein anderes Beispiel, bei dem nichtmetrische Einheiten verwendet werden, um zu zeigen, wie sich das Ergebnis dynamisch ändert:  




Line 52: Line 52:




There are hidden [[Question type - Equation|Equation-type questions]] at the internal level that converts the data to metric (if needed), storing the metric height, weight, BMI, and weight status in the database without needing custom JavaScript.
Auf der internen Ebene gibt es versteckte [[Fragentyp – Gleichung|Fragen vom Typ Gleichung]], die die Daten bei Bedarf in Metriken umwandeln und die Metrikgröße, das Gewicht, den BMI und den Gewichtsstatus in der Datenbank speichern, ohne dass benutzerdefiniertes JavaScript erforderlich ist.


You can see in the next set of examples how you can use mathematical and other functions within tailored reports. This is how the page looks like before you enter any data. There is conditional logic to show blank cells if no (or non-numeric) data is entered, rather than showing "NaN" or "Divide by Zero".
In der nächsten Reihe von Beispielen sehen Sie, wie Sie mathematische und andere Funktionen in maßgeschneiderten Berichten verwenden können. So sieht die Seite aus, bevor Sie Daten eingeben. Es gibt eine bedingte Logik, um leere Zellen anzuzeigen, wenn keine (oder nicht numerischen) Daten eingegeben werden, anstatt „NaN“ oder „Durch Null dividieren“ anzuzeigen.




Line 60: Line 60:




As numbers are entered, the on-page report changes to show the computation being performed, and its result.
Wenn Zahlen eingegeben werden, ändert sich der Bericht auf der Seite und zeigt die durchgeführte Berechnung und ihr Ergebnis an.




Line 66: Line 66:




There are many other examples in this sample survey. For example, the below screenshot shows one of the dozens of ways you can fill out the Dynamic Relevance page. As the help text notes, try different ages, and especially illogical combinations of responses to see the amusing messages generated at the bottom. Also note that if you say that you have more than one child, the message will say "I hope you enjoy playing with your X children", rather than saying "I hope you enjoy playing with your child". This shows how you can easily micro-tailor sentences to make them match the gender and/or number of your subjects. You can even easily conjugate verbs and decline nouns based upon gender and number.
In dieser Beispielbefragung gibt es viele weitere Beispiele. Der folgende Screenshot zeigt beispielsweise eine von Dutzenden Möglichkeiten, wie Sie die Seite „Dynamische Relevanz“ ausfüllen können. Probieren Sie, wie im Hilfetext vermerkt, verschiedene Altersgruppen und vor allem unlogische Kombinationen von Antworten aus, um die amüsanten Meldungen zu sehen, die unten generiert werden. Beachten Sie außerdem, dass, wenn Sie angeben, dass Sie mehr als ein Kind haben, in der Nachricht „Ich hoffe, dass Ihnen das Spielen mit Ihren Dies zeigt, wie Sie Sätze ganz einfach mikrozuschneiden können, um sie an das Geschlecht und/oder die Anzahl Ihrer Probanden anzupassen. Sie können sogar Verben einfach konjugieren und Substantive basierend auf Geschlecht und Numerus deklinieren.




Line 75: Line 75:




To access the survey sample, please click on the following link: [[Media:LS3_em_tailoring.zip|LS3_em_tailoring.zip]].
Um auf das Umfragebeispiel zuzugreifen, klicken Sie bitte auf den folgenden Link: [[Medien:LS3_em_tailoring.zip|LS3_em_tailoring.zip]].


=Sample Census=
=Beispielzählung=




==Overview==
==Übersicht==




This is a census example that asks how many people are in your household.
Dies ist ein Volkszählungsbeispiel, bei dem gefragt wird, wie viele Personen in Ihrem Haushalt leben.


It demonstrates how group-level relevance can make it easier to implement a "loop" of questions. After creating the group for Person 1, I exported the group. Since I used qcode variable names like p1_name instead of the SGQA code, I could use a text editor to quickly edit and re-import the group several times (e.g., it took about 10 seconds to edit and re-import each repeating group, ensuring that all variables had unique variables names and that the group-level logic was correct).
Es zeigt, wie die Relevanz auf Gruppenebene die Implementierung einer „Schleife“ von Fragen erleichtern kann. Nachdem ich die Gruppe für Person 1 erstellt hatte, exportierte ich die Gruppe. Da ich Qcode-Variablennamen wie p1_name anstelle des SGQA-Codes verwendet habe, konnte ich einen Texteditor verwenden, um die Gruppe mehrmals schnell zu bearbeiten und erneut zu importieren (z. B. dauerte das Bearbeiten und erneute Importieren jeder Wiederholungsgruppe etwa 10 Sekunden, um sicherzustellen, dass alle Variablen eindeutige Variablennamen hatten und die Logik auf Gruppenebene korrekt war).


You can also the [[Copy question|copy question]] feature, but it won't be as fast as the option suggested above.
Sie können auch die Funktion [[Frage kopieren|Frage kopieren]] verwenden, diese ist jedoch nicht so schnell wie die oben vorgeschlagene Option.


This also shows how you can prevent the Finished message from appearing until the survey is truly finished (e.g., when all needed groups are completed).
Dies zeigt auch, wie Sie verhindern können, dass die Meldung „Fertig“ angezeigt wird, bis die Umfrage wirklich abgeschlossen ist (z. B. wenn alle benötigten Gruppen abgeschlossen sind).




==EM Features Demonstrated==
==EM-Funktionen demonstriert==




#'''Group-level relevance''' - The follow-up groups (Person 1-5) only show for up to the number of cohabitants specified;
#'''Relevanz auf Gruppenebene''' - Die Folgegruppen (Person 1-5) werden nur für die angegebene Anzahl von Mitbewohnern angezeigt;
#'''Tailoring''' - The final report summarizes the demographic data for each cohabitant;
#'''Anpassung''' - Der Abschlussbericht fasst die demografischen Daten für jeden Mitbewohner zusammen;
#'''Progressive question display''' - Whether in group or all-in-one mode, subsequent questions only show as soon as the preceding ones are answered.
#'''Progressive Fragenanzeige''' - Ob im Gruppen- oder All-in-One-Modus, nachfolgende Fragen werden erst angezeigt, sobald die vorherigen beantwortet wurden.




Line 103: Line 103:




The survey generates a tailored report showing the demographics of the specified number of cohabitants:
Die Umfrage generiert einen maßgeschneiderten Bericht, der die demografischen Daten der angegebenen Anzahl von Mitbewohnern zeigt:




Line 109: Line 109:




If you switch to question-at-a-time mode, you see that the index tailors the questions. Since the user said that the person is a woman, it asks "What is her name". And since we answered "Mary", the next question says "How old is Mary"?
Wenn Sie in den Modus „Fragen nacheinander“ wechseln, sehen Sie, dass der Index die Fragen individuell anpasst. Da der Benutzer angibt, dass es sich bei der Person um eine Frau handelt, fragt er: „Wie heißt sie?“. Und da wir mit „Mary“ geantwortet haben, lautet die nächste Frage: „Wie alt ist Mary?




Line 115: Line 115:




==Download==
==Herunterladen==




To download the survey sample, click here: [[Media:LS3_group_relevance.zip|LS3_group_relevance.zip]].
Um das Umfragebeispiel herunterzuladen, klicken Sie hier: [[Media:LS3_group_relevance.zip|LS3_group_relevance.zip]].




=Cascading Array Filters=
=Kaskadierende Array-Filter=




==Overview==
==Übersicht==




This survey is based on the design of a survey courtesy of Joy Lane Research, LLC.  
Diese Umfrage basiert auf dem Design einer Umfrage mit freundlicher Genehmigung von Joy Lane Research, LLC.  




Line 133: Line 133:




In the following, note that:
Beachten Sie im Folgenden Folgendes:
*Q02 only shows the set of products checked in Q01 (by using array_filter)
*Q02 zeigt nur die in Q01 überprüfte Produktgruppe (mithilfe von array_filter)
*Q02 also shows "Another product", the text entered into the "Other electronic" field in Q01
*Q02 zeigt auch „Ein anderes Produkt“ an, den Text, der in das Feld „Andere elektronische Produkte“ in Q01 eingegeben wurde
*Q04 only shows products from Q02 that were checked (so the array filter cascades)
*Q04 zeigt nur Produkte aus Q02 an, die überprüft wurden (damit der Array-Filter kaskadiert)
*Q05 only shows products from Q02 that were not checked in Q02 (using a cascaded array_filter_exclude)
*Q05 zeigt nur Produkte aus Q02 an, die in Q02 nicht überprüft wurden (mithilfe eines kaskadierten array_filter_exclude)




Line 146: Line 146:




==Download==
==Herunterladen==




Click on the following link to download the above example: [[Media:ls2_cascading_array_filter.lss|LS2_cascading_array_filter survey example]].
Klicken Sie auf den folgenden Link, um das obige Beispiel herunterzuladen: [[Media:ls2_cascading_array_filter.lss|LS2_cascading_array_filter-Umfragebeispiel]].




=Piping/Tailoring Using All Question Types and Attributes=
=Piping/Anpassung unter Verwendung aller Fragetypen und Attribute=




==Overview==
==Übersicht==




If you are confused about how to name your variables (SGQA vs Qcodes), you are not alone. Although the main documentation describes [[ExpressionScript - Presentation#Access to Variables|how to compose Qcode variable names]], nothing beats seeing it in a working demo. This survey shows how you can access question attributes and responses using the ExpressionScript.
Wenn Sie nicht wissen, wie Sie Ihre Variablen benennen sollen (SGQA vs. Qcodes), sind Sie nicht allein. Obwohl in der Hauptdokumentation beschrieben wird, [[ExpressionScript - Presentation#Access to Variables|wie man Qcode-Variablennamen erstellt]], gibt es nichts Besseres, als es in einer funktionierenden Demo zu sehen. Diese Umfrage zeigt, wie Sie mit ExpressionScript auf Frageattribute und Antworten zugreifen können.




{{Note|For this example, we recommend turning off the built-in HTML editor (or converting it to the pop-up mode) when editing this survey. It can take a minute or more for the HTML editor to render the large HTML reports in edit mode.}}
{{Hinweis|Für dieses Beispiel empfehlen wir, den integrierten HTML-Editor auszuschalten (oder ihn in den Popup-Modus zu konvertieren), wenn Sie diese Umfrage bearbeiten. Es kann eine Minute oder länger dauern, bis der HTML-Editor die großen HTML-Berichte im Bearbeitungsmodus rendert.}}




==Content==
==Inhalt==




*Examples of every question type
*Beispiele für jeden Fragetyp
*All questions types that can use "other" are included so that you can see how that affects variable naming
*Alle Fragetypen, die „andere“ verwenden können, sind enthalten, damit Sie sehen können, wie sich dies auf die Variablenbenennung auswirkt
*Default values for all the question types that accepts defaults
*Standardwerte für alle Fragetypen, die Standardwerte akzeptieren
*Tailoring - On- and off-page reports showing all 16 available EM dot notation suffixes.
*Anpassung - On-Page- und Off-Page-Berichte mit allen 16 verfügbaren EM-Punktnotationssuffixen
*These reports show all of the currently entered data (so show you how you could generate your own printable reports for users in lieu of the print-answers screen)
*Diese Berichte zeigen alle aktuell eingegebenen Daten (zeigen Ihnen also, wie Sie anstelle der Druckberichte Ihre eigenen druckbaren Berichte auf dem Antwortbildschirm für Benutzer erstellen können)
*Proper Qcode and SGQA naming of all variables
*Korrekte Qcode- und SGQA-Benennung aller Variablen




Line 178: Line 178:




This is a huge survey, so we chose not to include screen shots. Instead, please download and play with it.
Da es sich um eine umfangreiche Umfrage handelt, haben wir uns entschieden, keine Screenshots beizufügen. Bitte laden Sie es stattdessen herunter und spielen Sie damit.




Line 184: Line 184:




Click on the following link to download the survey: [[Media:ls2_EM_question_attributes.lss|LS3_EM_question_attributes.lss]]
Klicken Sie auf den folgenden Link, um die Umfrage herunterzuladen: [[Media:ls2_EM_question_attributes.lss|LS3_EM_question_attributes.lss]]


=Traditional validation, re-envisioned=
=Traditionelle Validierung, neu konzipiert=




==Overview==
==Übersicht==




This demonstrates all the validation types that make use of expressions and how they affect each of the question types that support validation. In many cases, the validation tips start hidden and only appear if a question fails validation criteria (thus also disappearing once the question passes the validation criteria).  
Dies zeigt alle Validierungstypen, die Ausdrücke verwenden, und wie sie sich auf die einzelnen Fragetypen auswirken, die die Validierung unterstützen. In vielen Fällen werden die Validierungstipps ausgeblendet und nur dann angezeigt, wenn eine Frage die Validierungskriterien nicht erfüllt (sie verschwinden also auch, sobald die Frage die Validierungskriterien erfüllt).  




==Validation Types Demonstrated==
==Validierungstypen demonstriert==




#[[QS:Min_num_value_n|min_num_value_n]] - minimum value for an answer
#[[QS:Min_num_value_n|min_num_value_n]] – Mindestwert für eine Antwort
#[[QS:Max_num_value_n|max_num_value_n]] - max value for an answer
#[[QS:Max_num_value_n|max_num_value_n]] – Höchstwert für eine Antwort
#[[QS:Min_answers|min_answers]] - minimum number of answers required
#[[QS:Min_answers|min_answers]] – Minimum Anzahl der erforderlichen Antworten
#[[QS:Max_answers|max_answers]] maximum number of answers allowed
#[[QS:Max_answers|max_answers]] Maximale Anzahl zulässiger Antworten
#[[QS:Multiflexible_min|multiflexible_min]] - minimum value allowed for an answer (for multiflexi numbers question type)
#[[QS:Multiflexible_min|multiflexible_min]] – zulässiger Mindestwert für eine Antwort (für Fragetyp „Multiflexi-Zahlen“)
#[[QS:Multiflexible_max|multiflexible_max]] - maximum value allowed for an answer (for multiflexi numbers question type)
#[[QS:Multiflexible_max|multiflexible_max]] – maximal zulässiger Wert für eine Antwort (für Multiflexi-Zahlen-Fragetyp)
#[[QS:Min_num_value|min_num_value]] - minimum allowed sum across all answers for the question
#[[QS:Min_num_value|min_num_value]] – minimal zulässige Summe über alle Antworten für die Frage
#[[QS:Max_num_value|max_num_value]] - maximum allowed sum across all answers for the question
#[[QS:Max_num_value|max_num_value]] – maximal zulässige Summe aller Antworten für die Frage
#[[QS:Equals_num_value|equals_num_value]] - the sum across all answers for the question must equal this value
#[[QS:Equals_num_value|equals_num_value]] – die Summe aller Antworten für die Frage muss diesem Wert entsprechen
#[[QS:Preg_validation|validation]] - this is the regular expression validation for the question - it can apply to individual cells
#[[QS:Preg_validation|validation]] – Dies ist die reguläre Ausdrucksvalidierung für die Frage – sie kann auf einzelne Zellen angewendet werden




Line 213: Line 213:




Using new CSS styles, each validation type shows up a separate tip. If they are shown, they can be hidden via the hide_tip option. The default option is to show them with red font if the question fails the validation criteria, and green if it passes them:
Bei Verwendung neuer CSS-Stile wird für jeden Validierungstyp ein eigener Tipp angezeigt. Wenn sie angezeigt werden, können sie über die Option hide_tip ausgeblendet werden. Die Standardoption besteht darin, sie in roter Schrift anzuzeigen, wenn die Frage die Validierungskriterien nicht erfüllt, und in grüner Schrift, wenn sie diese erfüllt:




Line 219: Line 219:




A user cannot submit a page with validation errors. He will be immediately warned if he entered wrong information:
Ein Benutzer kann keine Seite mit Validierungsfehlern einreichen. Er wird sofort gewarnt, wenn er falsche Informationen eingegeben hat:




Line 225: Line 225:




Validation can be applied to individual cells within an array, such as in this example where regular expression validations ensure that each entry is a properly formatted US phone number including area code.
Die Validierung kann auf einzelne Zellen innerhalb eines Arrays angewendet werden, wie in diesem Beispiel, wo die Validierung regulärer Ausdrücke sicherstellt, dass es sich bei jedem Eintrag um eine ordnungsgemäß formatierte US-Telefonnummer einschließlich Ortsvorwahl handelt.




Line 231: Line 231:




==Download==
==Herunterladen==




To download the above example, click on the following link: [[Media:LS3_Validation_tests.zip|LS3_Validation_tests.zip]].
Um das obige Beispiel herunterzuladen, klicken Sie auf den folgenden Link: [[Media:LS3_Validation_tests.zip|LS3_Validation_tests.zip]].




=Validation Equations=
=Validierungsgleichungen=




==Overview==
==Übersicht==




Sometimes you need custom validation that cannot be achieved using the traditional min/max criteria. For this, you will need to use the em_validation_q and em_validation_sq options which let you construct complex validation equations at the question and subquestion level, respectively.  
Manchmal benötigen Sie eine benutzerdefinierte Validierung, die mit den herkömmlichen Min/Max-Kriterien nicht erreicht werden kann. Dazu müssen Sie die Optionen em_validation_q und em_validation_sq verwenden, mit denen Sie komplexe Validierungsgleichungen auf Fragen- bzw. Unterfragenebene erstellen können.  




{{Note|At the subquestion level, we also introduce the "this" variable to make it easy to validate each cell in an array without needing to know its variable name. For more details about it, click here.}}
{{Hinweis|Auf Unterfrageebene führen wir auch die Variable „this“ ein, um die Validierung jeder Zelle in einem Array zu erleichtern, ohne dass der Variablenname bekannt sein muss. Weitere Informationen dazu finden Sie hier.}}




==EM Features Demonstrated==
==EM-Funktionen demonstriert==




#[[QS:Em_validation_q|em_validation_q]] - this is an equation that determines whether the whole question is valid
#[[QS:Em_validation_q|em_validation_q]] – Dies ist eine Gleichung, die bestimmt, ob die gesamte Frage gültig ist
#[[QS:Em_validation_q_tip|em_validation_q_tip]] - this is the message to show if the question fails em_validation_q criteria
#[[QS:Em_validation_q_tip|em_validation_q_tip]] – Dies ist die Meldung, die angezeigt wird, wenn die Frage die em_validation_q-Kriterien nicht erfüllt
#[[QS:Em_validation_sq|em_validation_sq]] - this is the equation that determines whether each subquestion (array cell) is valid
#[[QS:Em_validation_sq|em_validation_sq]] – Dies ist die Gleichung, die bestimmt, ob jede Unterfrage (Array-Zelle) gültig ist
#[[QS:Em_validation_sq_tip|em_validation_sq_tip]] - this is the message to show if any of the subquestions is invalid.
#[[QS:Em_validation_sq_tip|em_validation_sq_tip]] – Dies ist die Meldung, die angezeigt werden soll wenn eine der Unterfragen ungültig ist.


In general, when em_validation_sq is used, if any cell is invalid, the background color for that cell turns red to indicate that there is an error.
Wenn em_validation_sq verwendet wird und eine Zelle ungültig ist, wird die Hintergrundfarbe dieser Zelle im Allgemeinen rot, um anzuzeigen, dass ein Fehler vorliegt.




Line 266: Line 266:




This question ensures that you enter the ages of your children in descending order by applying this validation equation:
Diese Frage stellt sicher, dass Sie das Alter Ihrer Kinder in absteigender Reihenfolge eingeben, indem Sie diese Validierungsgleichung anwenden:


<syntaxhighlight lang="php">q1_sq1 >= q1_sq2 && q1_sq2 >= q1_sq3 && q1_sq3 >= q1_sq4</syntaxhighlight>
<syntaxhighlight lang="php">q1_sq1 >= q1_sq2 && q1_sq2 >= q1_sq3 && q1_sq3 >= q1_sq4</syntaxhighlight>
Line 277: Line 277:




In the below example, the validation ensures that no more than 3 questions are answered on any given row by applying this validation equation:
Im folgenden Beispiel stellt die Validierung sicher, dass nicht mehr als drei Fragen in einer bestimmten Zeile beantwortet werden, indem diese Validierungsgleichung angewendet wird:


<syntaxhighlight lang="php">(sum(Test_A_1, Test_A_2, Test_A_3, Test_A_4, Test_A_5) <= 3) && (sum(Test_B_1, Test_B_2, Test_B_3, Test_B_4, Test_B_5) <= 3) && (sum(Test_C_1, Test_C_2, Test_C_3, Test_C_4, Test_C_5) <= 3)</syntaxhighlight>
<syntaxhighlight lang="php">(sum(Test_A_1, Test_A_2, Test_A_3, Test_A_4, Test_A_5) <= 3) && (sum(Test_B_1, Test_B_2, Test_B_3, Test_B_4, Test_B_5) <= 3) && (sum(Test_C_1, Test_C_2, Test_C_3, Test_C_4, Test_C_5) < = 3)</syntaxhighlight>


You can also write this as follows, LimeSurvey automatically converting it at run-time to the above-listed expression.
Sie können dies auch wie folgt schreiben: LimeSurvey konvertiert es zur Laufzeit automatisch in den oben aufgeführten Ausdruck.


<syntaxhighlight lang="php">(sum(self.sq_A) <= 3) && (sum(self.sq_B) <= 3) && (sum(self.sq_C) <= 3)</syntaxhighlight>
<syntaxhighlight lang="php">(sum(self.sq_A) <= 3) && (sum(self.sq_B) <= 3) && (sum(self.sq_C) <= 3)</syntaxhighlight>
Line 289: Line 289:




==Download==
==Herunterladen==




To download the survey sample used in the above examples, click on the following link: [[Media:ls2_test_em_sq_validation.lss|ls2_test_em_sq_validation.lss]].
Um das in den obigen Beispielen verwendete Umfragebeispiel herunterzuladen, klicken Sie auf den folgenden Link: [[Media:ls2_test_em_sq_validation.lss|ls2_test_em_sq_validation.lss]].




=Subquestion relevance=
=Relevanz der Unterfrage=




==Overview==
==Übersicht==




This shows how array_filter and validation criteria can interact. For validations that apply to sums, only relevant (visible) values are considered.
Dies zeigt, wie array_filter und Validierungskriterien interagieren können. Bei Validierungen, die sich auf Summen beziehen, werden nur relevante (sichtbare) Werte berücksichtigt.




==EM Features Demonstrated==
==EM-Funktionen demonstriert==




#[[QS:Array_filter|array_filter]]
#[[QS:Array_filter|array_filter]]
#[[QS:Array filter exclude|array_filter_exclude]]
#[[QS:Array-Filter ausschließen|array_filter_exclude]]
#[[QS:Min_num_value|min_num_value]]
#[[QS:Min_num_value|min_num_value]]
#[[QS:Max num value|max_num_value]]
#[[QS:Maximalwert| max_num_value]]
#[[QS:equals_num_value|equals_num_value]]
#[[QS:equals_num_value|equals_num_value]]


It also shows dynamic reporting of the numbers of questions answered in the core questions.
Es zeigt auch eine dynamische Berichterstattung über die Anzahl der in den Kernfragen beantworteten Fragen.




Line 319: Line 319:




Changing the number of visible rows dynamically changes the sum. Marking a subquestion as being irrelevant doesn't clear its value. Rather, if it is irrelevant, its values don't contribute to any equation.
Durch Ändern der Anzahl der sichtbaren Zeilen wird die Summe dynamisch geändert. Durch das Markieren einer Unterfrage als irrelevant wird ihr Wert nicht gelöscht. Wenn es vielmehr irrelevant ist, tragen seine Werte zu keiner Gleichung bei.




Line 325: Line 325:




Note what happens when we check the "Fifth subquestion" for the first question '''"Which rows should appear below"'''. Note that the sum for the second "Enter some numbers" question is now 5. Even though subquestion 5 for that question still has the value 14 (e.g., if you un-check the fifth subquestion, you will see the value of 14 again), that value does not contribute to the sum since it is currently irrelevant. All irrelevant data is cleared (NULLed in the database) on submit, but it stays available on the page in case users want or need to change their minds about answers.
Beachten Sie, was passiert, wenn wir die „Fünfte Unterfrage“ für die erste Frage „Welche Zeilen sollen unten angezeigt werden“ überprüfen. Beachten Sie, dass die Summe für die zweite Frage „Geben Sie einige Zahlen ein“ jetzt 5 beträgt. Auch wenn Unterfrage 5 für diese Frage immer noch den Wert 14 hat (z. B. wenn Sie das Häkchen bei der fünften Unterfrage entfernen, sehen Sie wieder den Wert 14), trägt dieser Wert nicht zur Summe bei, da er derzeit irrelevant ist. Alle irrelevanten Daten werden bei der Übermittlung gelöscht (in der Datenbank auf NULL gesetzt), bleiben aber auf der Seite verfügbar, falls Benutzer ihre Meinung zu den Antworten ändern möchten oder müssen.




Line 331: Line 331:




==Download==
==Herunterladen==




To download our example, click here: [[Media:ls2_subquestion_relevance.lss|ls2_subquestion_relevance.lss]].
Um unser Beispiel herunterzuladen, klicken Sie hier: [[Media:ls2_subquestion_relevance.lss|ls2_subquestion_relevance.lss]].




=Using Comma as Radix Separator (Decimal Point)=
=Komma als Basistrennzeichen (Dezimalpunkt) verwenden=




==Overview==
==Übersicht==




The ExpressionScript ensures that only valid numbers can be entered into numeric fields. If you enter an invalid number, you will be warned that something is wrong (e.g., in the case of the fruity theme, the whole question is "red-ed").
Das ExpressionScript stellt sicher, dass nur gültige Zahlen in numerische Felder eingegeben werden können. Wenn Sie eine ungültige Zahl eingeben, werden Sie gewarnt, dass etwas nicht stimmt (z. B. wird im Fall des fruity themes die gesamte Frage „rot markiert“).


Note that the numeric values are always converted to using a period as the radix separator within the database. In this way, the statistical analyses will work appropriately.
Beachten Sie, dass die numerischen Werte in der Datenbank immer so konvertiert werden, dass ein Punkt als Basistrennzeichen verwendet wird. Auf diese Weise funktionieren die statistischen Analysen ordnungsgemäß.


To change the radix separator, access the [[Text elements]] options located under the [[Survey_settings|Settings]] tab, and look for the [[Text_elements#Survey_text_elements_panel|decimal mark]] functionality.   
Um das Basistrennzeichen zu ändern, greifen Sie auf die Optionen [[Textelemente]] auf der Registerkarte [[Umfrageeinstellungen|Einstellungen]] zu und suchen Sie nach der Funktionalität [[Textelements#Survey_text_elements_panel|Dezimalzeichen]].   




{{Note|For more information on what a radix separator is, click [https://en.wikipedia.org/wiki/Radix_point|here].}}
{{Hinweis|Für weitere Informationen darüber, was ein Radix-Trennzeichen ist, klicken Sie [https://en.wikipedia.org/wiki/Radix_point|hier].}}




==Question Types Using Radix Separator==
==Fragetypen mit Radix-Trennzeichen==




#[[Question type - Numerical input|Numerical input]] <nowiki>[</nowiki>N]
#[[Fragetyp – Numerische Eingabe|Numerische Eingabe]]<nowiki> [</nowiki> N]
#[[Question type - Multiple numerical input|Multiple numerical input]] <nowiki>[</nowiki>K]
#[[Fragetyp – Mehrfache numerische Eingabe|Mehrfache numerische Eingabe]]<nowiki> [</nowiki> K]
#[[Question type - Array (Numbers)|Array (Numbers)]] <nowiki>[</nowiki>:]
#[[Fragetyp – Array (Zahlen)|Array (Zahlen)]]<nowiki> [</nowiki> :]
#[[Question type - Array (Texts)|Array (Texts)]] <nowiki>[</nowiki>;], when using the [[QS:Numbers_only|numbers_only]] attribute
#[[Fragetyp - Array (Texte)|Array (Texte)]]<nowiki> [</nowiki> ;], bei Verwendung des Attributs [[QS:Numbers_only|numbers_only]]
#[[Question type - List (Radio)|List (radio)]] <nowiki>[</nowiki>L], when using the [[QS:Other_numbers_only|other_numbers_only]] attribute
#[[Fragetyp – Liste (Radio)|Liste (Radio)]]<nowiki> [</nowiki> L], bei Verwendung des Attributs [[QS:Other_numbers_only|other_numbers_only]]
#[[Question type - Short free text|Short free text]] <nowiki>[</nowiki>S], when using the [[QS:Numbers_only|numbers_only]] attribute
#[[Fragetyp – Kurzer Freitext|Kurzer Freitext]]<nowiki> [</nowiki> S], bei Verwendung des Attributs [[QS:Numbers_only|numbers_only]]
#[[Question type - Multiple short text|Multiple short text]] <nowiki>[</nowiki>Q], when using the [[QS:Numbers_only|numbers_only]] attribute
#[[Fragetyp – Mehrfacher Kurztext|Mehrfacher Kurztext]]<nowiki> [</nowiki> Q], bei Verwendung des Attributs [[QS:Numbers_only|numbers_only]]
#[[Question type - Multiple choice|Multiple choice]] <nowiki>[</nowiki>M], when using the [[QS:Other_numbers_only|other_numbers_only]] attribute
#[[Fragetyp – Multiple Choice|Multiple Choice]]<nowiki> [</nowiki> M], bei Verwendung des Attributs [[QS:Other_numbers_only|other_numbers_only]]
#[[Question type - Multiple choice with comments|Multiple choice with comments]] <nowiki>[</nowiki>P], when using the [[QS:Other_numbers_only|other_numbers_only]] attribute
#[[Fragetyp – Multiple Choice mit Kommentaren|Multiple Choice mit Kommentaren]]<nowiki> [</nowiki> P], wenn das Attribut [[QS:Other_numbers_only|other_numbers_only]] verwendet wird




Line 370: Line 370:




You may note in the below screenshots that comma can be used as a radix separator.
In den folgenden Screenshots können Sie erkennen, dass Komma als Basistrennzeichen verwendet werden kann.




Line 376: Line 376:




==Download==
==Herunterladen==




To download the above example, click on the following link: [[Media:ls2_comma_as_radix_separator.lss|ls2_comma_as_radix_separator.lss]].
Um das obige Beispiel herunterzuladen, klicken Sie auf den folgenden Link: [[Media:ls2_comma_as_radix_separator.lss|ls2_comma_as_radix_separator.lss]].




=Randomization Groups=
=Randomisierungsgruppen=




==Overview==
==Übersicht==




This survey demonstrates how to make use of the '''random_group''' attribute.
Diese Umfrage zeigt, wie man das Attribut „random_group“ nutzt.


If this attribute is used, each time you start the survey, the question order is randomized. However, once the survey is started, the randomization order remains fixed, even if you change languages.
Wenn dieses Attribut verwendet wird, wird die Reihenfolge der Fragen bei jedem Start der Umfrage randomisiert. Sobald die Umfrage jedoch gestartet wird, bleibt die Randomisierungsreihenfolge festgelegt, auch wenn Sie die Sprache wechseln.




Line 396: Line 396:




Let's check together the below example. The first random question on the page will either be Q1 , Q4, or Q7. The second randomized question on the page will either be Q2, Q5, or Q8.
Schauen wir uns gemeinsam das folgende Beispiel an. Die erste zufällige Frage auf der Seite lautet entweder Q1, Q4 oder Q7. Die zweite zufällige Frage auf der Seite lautet entweder Q2, Q5 oder Q8.




Line 403: Line 403:




Here is the randomization generated the first time I tested this survey.
Hier ist die Randomisierung, die beim ersten Test dieser Umfrage erstellt wurde.




Line 409: Line 409:




A different randomization was generated the second time I tested the survey.
Beim zweiten Test der Umfrage wurde eine andere Randomisierung generiert.




Line 415: Line 415:




But, when I switched to French (without re-starting the survey), the randomization order remained intact.
Aber als ich auf Französisch wechselte (ohne die Umfrage neu zu starten), blieb die Randomisierungsreihenfolge erhalten.




Line 421: Line 421:




==Download==
==Herunterladen==




To download the above example, click on the following link: [[Media:Randomization_Group_Test.lss|Randomization_Group_Test.lss]]
Um das obige Beispiel herunterzuladen, klicken Sie auf den folgenden Link: [[Media:Randomization_Group_Test.lss|Randomization_Group_Test.lss]]




=Randomly Ask One Question Per Group=
=Stellen Sie nach dem Zufallsprinzip eine Frage pro Gruppe=




==Overview==
==Übersicht==




This survey shows how you can configure a survey to randomly display one question per group. In it, there are 5 groups of 6 questions each. At the outset, in Group 0, five hidden Equation questions, called ask1-ask5, are populated. Each one has the value of {floor(rand(1,6.9999))} in the question text field, which means that the variables ask1-ask5 will each have a value between 1 and 6. Then, each question in the group has a relevance equation like "ask1==N" where N is the Nth question in the group (so the third question in group 1 has the relevance equation  "ask1==3").
Diese Umfrage zeigt, wie Sie eine Umfrage so konfigurieren können, dass pro Gruppe eine Frage nach dem Zufallsprinzip angezeigt wird. Darin gibt es 5 Gruppen zu je 6 Fragen. Zu Beginn werden in Gruppe 0 fünf versteckte Gleichungsfragen namens ask1-ask5 ausgefüllt. Jede hat den Wert {floor(rand(1,6.9999))} im Fragetextfeld, was bedeutet, dass die Variablen ask1-ask5 jeweils einen Wert zwischen 1 und 6 haben. Dann hat jede Frage in der Gruppe einen Relevanzgleichung wie „ask1==N“, wobei N die N-te Frage in der Gruppe ist (die dritte Frage in Gruppe 1 hat also die Relevanzgleichung „ask1==3“).


This survey works equally well in survey-at-a-time, group-by-group, and question-by-question modes. Since the randomization is set in the first group, and that group is effectively hidden (since all of the ask1-ask5 questions are hidden), the randomization stays the same for the subject; but each different subject will have a distinct randomization.
Diese Umfrage funktioniert gleichermaßen gut im Einzelumfrage-, Gruppen-für-Gruppen- und Frage-für-Frage-Modus. Da die Randomisierung in der ersten Gruppe festgelegt ist und diese Gruppe effektiv ausgeblendet ist (da alle Ask1-Ask5-Fragen ausgeblendet sind), bleibt die Randomisierung für das Subjekt gleich; aber jedes unterschiedliche Subjekt wird eine unterschiedliche Randomisierung haben.




==Features Demonstrated==
==Vorgeführte Funktionen==




#[[Question type - Equation|Equation question type]]
#[[Fragetyp – Gleichung|Gleichungsfragetyp]]
#Randomization functions
#Randomisierungsfunktionen
#Conditional (if) function
#Bedingte (wenn) Funktion




Line 449: Line 449:




This is Group0, which uses the [[Question type - Equation|Equation question type]] to select random values from 1 to 6 for each group (except the last group, which has only 4 questions). Note that the "if()" function first checks whether ask1 has already been set, and if so, uses that value. If the value hasn't been set, then it uses a random value to set the value of ask1.
Dies ist Gruppe0, die den [[Fragetyp – Gleichung|Gleichungsfragetyp]] verwendet, um für jede Gruppe zufällige Werte von 1 bis 6 auszuwählen (mit Ausnahme der letzten Gruppe, die nur 4 Fragen enthält). Beachten Sie, dass die Funktion „if()“ zunächst prüft, ob ask1 bereits festgelegt wurde, und wenn ja, diesen Wert verwendet. Wenn der Wert nicht festgelegt wurde, wird ein Zufallswert verwendet, um den Wert von ask1 festzulegen.




Line 455: Line 455:




This Group shows how the variable (ask4) from Group0 is used to control which question is visible within the fourth group.
Diese Gruppe zeigt, wie die Variable (ask4) von Gruppe0 verwendet wird, um zu steuern, welche Frage innerhalb der vierten Gruppe sichtbar ist.




Line 461: Line 461:




==Download==
==Herunterladen==




To download the above survey example, click here: [[Media:limesurvey_survey_55164.lss|Random questions within a group survey example]].
Um das obige Umfragebeispiel herunterzuladen, klicken Sie hier: [[Media:limesurvey_survey_55164.lss|Zufällige Fragen innerhalb eines Gruppenumfragebeispiels]].




=Randomly Ask A Specific Number Of Questions In A Group (a subset of the questions)=
=Stellen Sie einer Gruppe zufällig eine bestimmte Anzahl von Fragen (eine Teilmenge der Fragen)=




{{Alert|This applies only to all random questions from one group and only if the [[General_settings#General_settings_panel|Group by group or All in one]] format is used.}}
{{Alert|Dies gilt nur für alle zufälligen Fragen aus einer Gruppe und nur, wenn das Format [[General_settings#General_settings_panel|Group by Group oder All in One]] verwendet wird.}}




==Overview==
==Übersicht==




This survey shows how to ask a random subset of questions in a group. For example, show 5 random questions out of 10 questions located within a group.  
Diese Umfrage zeigt, wie man einer Gruppe eine zufällige Teilmenge von Fragen stellt. Zeigen Sie beispielsweise 5 zufällige Fragen von 10 Fragen innerhalb einer Gruppe an.  


The survey has one group containing 10 questions. All questions are assigned the same [[QS:Random_group|randomization group name]]. As a result, they will be displayed in a random order on page load. Each question is given a relevance equation that the sum of the "[[ExpressionScript - Presentation#Access to Variables|relevanceStatus]]" of all other questions in the group is less than the number of questions you want to show. Since [[ExpressionScript - Presentation#Access to Variables|relevanceStatus]] is assigned as questions are rendered, this effectively totals the number of preceding questions.
Die Umfrage besteht aus einer Gruppe mit 10 Fragen. Allen Fragen wird derselbe [[QS:Random_group|Randomisierungsgruppenname]] zugewiesen. Daher werden sie beim Laden der Seite in zufälliger Reihenfolge angezeigt. Jeder Frage wird eine Relevanzgleichung zugewiesen, die besagt, dass die Summe der „[[ExpressionScript Presentation#Access to Variables|relevanceStatus]]“ aller anderen Fragen in der Gruppe kleiner ist als die Anzahl der Fragen, die Sie anzeigen möchten. Da [[ExpressionScript Presentation#Access to Variables|relevanceStatus]] beim Rendern von Fragen zugewiesen wird, summiert sich dies effektiv auf die Anzahl der vorhergehenden Fragen.


So, in our 5 out of 10 example, the equation for Q1 would be:
In unserem 5-von-10-Beispiel wäre die Gleichung für Q1 also:


<syntaxhighlight lang="php">sum(Q2.relevanceStatus, Q3.relevanceStatus, Q4.relevanceStatus, Q5.relevanceStatus, Q6.relevanceStatus, Q7.relevanceStatus, Q8.relevanceStatus, Q9.relevanceStatus, Q10.relevanceStatus) LT 5</syntaxhighlight>
<syntaxhighlight lang="php">sum(Q2.relevanceStatus, Q3.relevanceStatus, Q4.relevanceStatus, Q5.relevanceStatus, Q6.relevanceStatus, Q7.relevanceStatus, Q8.relevanceStatus, Q9.relevanceStatus, Q10.relevanceStatus) LT 5</syntaxhighlight>


For Q2, it would be:
Für Q2 wäre es:


<syntaxhighlight lang="php">sum(Q1.relevanceStatus, Q3.relevanceStatus, Q4.relevanceStatus, Q5.relevanceStatus, Q6.relevanceStatus, Q7.relevanceStatus, Q8.relevanceStatus, Q9.relevanceStatus, Q10.relevanceStatus) LT 5</syntaxhighlight>
<syntaxhighlight lang="php">sum(Q1.relevanceStatus, Q3.relevanceStatus, Q4.relevanceStatus, Q5.relevanceStatus, Q6.relevanceStatus, Q7.relevanceStatus, Q8.relevanceStatus, Q9.relevanceStatus, Q10.relevanceStatus) LT 5</syntaxhighlight>


And so on...
Und so weiter...




==Features Demonstrated==
==Vorgeführte Funktionen==




#[[ExpressionScript - Presentation#Access to variables|relevanceStatus variable]]
#[[ExpressionScript - Presentation#Zugriff auf Variablen|relevanceStatus-Variable]]
#[[QS:Random group|Randomizing]]
#[[QS:Random group|Randomizing]]


==Download==
==Herunterladen==




To download the above example, click on the following link: [[Media:Random_5_out_of_10.lss|Random 5 out of 10 survey example]].
Um das obige Beispiel herunterzuladen, klicken Sie auf den folgenden Link: [[Media:Random_5_out_of_10.lss|Random 5 von 10 Umfragebeispiel]].


=Rating User-Entered List of Products=
=Bewertung der vom Benutzer eingegebenen Produktliste=




==Overview==
==Übersicht==




The below example shows how you can ask users to list a set of products that interest them, and then have them rate those products.
Das folgende Beispiel zeigt, wie Sie Benutzer bitten können, eine Reihe von Produkten aufzulisten, die sie interessieren, und diese Produkte dann bewerten zu lassen.




==ES Features Demonstrated==
==ES-Funktionen demonstriert==




#'''Tailoring answers''' - when rating products, the labels come from the comment field of the preceding multiple choice question
#'''Maßgeschneiderte Antworten''' - bei der Bewertung von Produkten stammen die Beschriftungen aus dem Kommentarfeld der vorhergehenden Multiple-Choice-Frage
#'''Tailoring scales''' - many advanced questions options, like scale headings, can also be tailored.
#'''Maßgeschneiderte Skalen''' - viele erweiterte Fragenoptionen, wie z auch maßgeschneidert sein.




Line 521: Line 521:




This image shows that since only products 1,3, and 5 were selected, only those 3 are displayed (using the [[QS:Array_filter|array_filter]] attribute). Moreover, the row labels in the second question are either the product numbers (if nothing is entered into the comment field) or the contents of the comment fields.
Dieses Bild zeigt, dass, da nur die Produkte 1, 3 und 5 ausgewählt wurden, nur diese 3 angezeigt werden (mithilfe des Attributs [[QS:Array_filter|array_filter]]). Darüber hinaus sind die Zeilenbeschriftungen in der zweiten Frage entweder die Produktnummern (sofern nichts in das Kommentarfeld eingegeben wird) oder die Inhalte der Kommentarfelder.




Line 527: Line 527:




This image shows how the tailored answers are specified:
Dieses Bild zeigt, wie die maßgeschneiderten Antworten angegeben werden:




Line 533: Line 533:




Here is the Show Logic File for that question, which lets us verify that the conditional logic works as desired (e.g., to see whether there are any syntax errors):
Hier ist die Show Logic File für diese Frage, mit der wir überprüfen können, ob die bedingte Logik wie gewünscht funktioniert (z. B. um zu sehen, ob Syntaxfehler vorliegen):




Line 539: Line 539:




The next image shows a group in which you specify a 5 point rating scale (Options 1-5), the title of the scale, and the products you want to rate. The final question shows that each of the parts of the array question can be tailored:
Das nächste Bild zeigt eine Gruppe, in der Sie eine 5-Punkte-Bewertungsskala (Optionen 1–5), den Titel der Skala und die Produkte angeben, die Sie bewerten möchten. Die letzte Frage zeigt, dass jeder Teil der Array-Frage angepasst werden kann:




Line 545: Line 545:




The next image shows the logic file view of the last question. As you can observe, the subquestions, answers, and scale headers can be tailored.
Das nächste Bild zeigt die Logikdateiansicht der letzten Frage. Wie Sie sehen, können die Unterfragen, Antworten und Skalenüberschriften angepasst werden.




<center>[[File:mcc_filter5.jpg]]</center>
<center>[[File:mcc_filter5.jpg]]</center>


==Download==
==Herunterladen==




To download the survey example from above, click on the following link: [[Media:Rating_User-Entered_List_of_Products_Survey.zip|Rating user-entered list of products survey example]].
Um das oben stehende Umfragebeispiel herunterzuladen, klicken Sie auf den folgenden Link: [[Media:Rating_User-Entered_List_of_Products_Survey.zip|Rating user-enered list of Products Survey example]].

Latest revision as of 10:22, 22 March 2024


Einleitung

Der beste Weg, den Umgang mit ExpressionScript zu erlernen, besteht darin, mit Arbeitsbeispielen herumzuspielen und sie an Ihre Bedürfnisse anzupassen.

Nachfolgend finden Sie eine Reihe von Beispielumfragen, um zu demonstrieren (und zu testen), wie das EM zur Verbesserung Ihrer Umfrage verwendet werden kann. Diese Umfragen finden Sie im Ordner /docs/demosurveys der Distribution.


Relevanz, Tailoring und Gleichungen

Übersicht

Das folgende Beispiel berechnet den BMI (Body-Mass-Index) jedes Befragten. Unten sehen Sie die Funktionen, die in diesem Beispiel demonstriert werden.

EM-Funktionen demonstriert

  1. Relevanz - Unterstützung für leistungsstarke bedingte Logik;
  2. Piping / Tailoring - bietet die Möglichkeit, Antworten und Fragemetadaten weiterzuleiten oder anzupassen;
  3. Dynamic Tailoring - beachten Sie, dass Berichte auf der Seite geändert werden, wenn Sie Fragen beantworten;
  4. Micro-Tailoring - bedingtes Anpassen innerhalb von Sätzen und Berichten mithilfe von if()-Anweisungen;
  5. Gleichungen - ein neuer Fragetyp, mit dem Sie Berechnungen durchführen und die Ergebnisse in der Datenbank speichern können, auch wenn die Berechnung ausgeblendet ist;
  6. Bedingte Validierung – Validierungskriterien, wie z. B. der minimal zulässige Wert, können bedingt sein – z. B. basierend auf Gleichungen.


Screenshots

In diesem Beispiel wird der Body-Mass-Index berechnet, eine Berechnung Ihres Gewichts und Ihrer Größe, um festzustellen, ob Sie untergewichtig, normalgewichtig, übergewichtig oder fettleibig sind. Beachten Sie, dass zunächst nur die vier Pflichtfragen angezeigt werden:



Sobald Sie Ihre Informationen eingegeben haben (und wählen können, ob Sie metrische oder nicht metrische Einheiten verwenden möchten), wird ein maßgeschneiderter Bericht angezeigt, der Ihre Eingaben zusammenfasst und Ihnen Ihren Gewichtsstatus mitteilt:



Hier ist ein anderes Beispiel, bei dem nichtmetrische Einheiten verwendet werden, um zu zeigen, wie sich das Ergebnis dynamisch ändert:



Auf der internen Ebene gibt es versteckte Fragen vom Typ Gleichung, die die Daten bei Bedarf in Metriken umwandeln und die Metrikgröße, das Gewicht, den BMI und den Gewichtsstatus in der Datenbank speichern, ohne dass benutzerdefiniertes JavaScript erforderlich ist.

In der nächsten Reihe von Beispielen sehen Sie, wie Sie mathematische und andere Funktionen in maßgeschneiderten Berichten verwenden können. So sieht die Seite aus, bevor Sie Daten eingeben. Es gibt eine bedingte Logik, um leere Zellen anzuzeigen, wenn keine (oder nicht numerischen) Daten eingegeben werden, anstatt „NaN“ oder „Durch Null dividieren“ anzuzeigen.



Wenn Zahlen eingegeben werden, ändert sich der Bericht auf der Seite und zeigt die durchgeführte Berechnung und ihr Ergebnis an.



In dieser Beispielbefragung gibt es viele weitere Beispiele. Der folgende Screenshot zeigt beispielsweise eine von Dutzenden Möglichkeiten, wie Sie die Seite „Dynamische Relevanz“ ausfüllen können. Probieren Sie, wie im Hilfetext vermerkt, verschiedene Altersgruppen und vor allem unlogische Kombinationen von Antworten aus, um die amüsanten Meldungen zu sehen, die unten generiert werden. Beachten Sie außerdem, dass, wenn Sie angeben, dass Sie mehr als ein Kind haben, in der Nachricht „Ich hoffe, dass Ihnen das Spielen mit Ihren Dies zeigt, wie Sie Sätze ganz einfach mikrozuschneiden können, um sie an das Geschlecht und/oder die Anzahl Ihrer Probanden anzupassen. Sie können sogar Verben einfach konjugieren und Substantive basierend auf Geschlecht und Numerus deklinieren.



Download

Um auf das Umfragebeispiel zuzugreifen, klicken Sie bitte auf den folgenden Link: LS3_em_tailoring.zip.

Beispielzählung

Übersicht

Dies ist ein Volkszählungsbeispiel, bei dem gefragt wird, wie viele Personen in Ihrem Haushalt leben.

Es zeigt, wie die Relevanz auf Gruppenebene die Implementierung einer „Schleife“ von Fragen erleichtern kann. Nachdem ich die Gruppe für Person 1 erstellt hatte, exportierte ich die Gruppe. Da ich Qcode-Variablennamen wie p1_name anstelle des SGQA-Codes verwendet habe, konnte ich einen Texteditor verwenden, um die Gruppe mehrmals schnell zu bearbeiten und erneut zu importieren (z. B. dauerte das Bearbeiten und erneute Importieren jeder Wiederholungsgruppe etwa 10 Sekunden, um sicherzustellen, dass alle Variablen eindeutige Variablennamen hatten und die Logik auf Gruppenebene korrekt war).

Sie können auch die Funktion Frage kopieren verwenden, diese ist jedoch nicht so schnell wie die oben vorgeschlagene Option.

Dies zeigt auch, wie Sie verhindern können, dass die Meldung „Fertig“ angezeigt wird, bis die Umfrage wirklich abgeschlossen ist (z. B. wenn alle benötigten Gruppen abgeschlossen sind).


EM-Funktionen demonstriert

  1. Relevanz auf Gruppenebene - Die Folgegruppen (Person 1-5) werden nur für die angegebene Anzahl von Mitbewohnern angezeigt;
  2. Anpassung - Der Abschlussbericht fasst die demografischen Daten für jeden Mitbewohner zusammen;
  3. Progressive Fragenanzeige - Ob im Gruppen- oder All-in-One-Modus, nachfolgende Fragen werden erst angezeigt, sobald die vorherigen beantwortet wurden.


Screenshots

Die Umfrage generiert einen maßgeschneiderten Bericht, der die demografischen Daten der angegebenen Anzahl von Mitbewohnern zeigt:



Wenn Sie in den Modus „Fragen nacheinander“ wechseln, sehen Sie, dass der Index die Fragen individuell anpasst. Da der Benutzer angibt, dass es sich bei der Person um eine Frau handelt, fragt er: „Wie heißt sie?“. Und da wir mit „Mary“ geantwortet haben, lautet die nächste Frage: „Wie alt ist Mary?“



Herunterladen

Um das Umfragebeispiel herunterzuladen, klicken Sie hier: LS3_group_relevance.zip.


Kaskadierende Array-Filter

Übersicht

Diese Umfrage basiert auf dem Design einer Umfrage mit freundlicher Genehmigung von Joy Lane Research, LLC.


Screenshots

Beachten Sie im Folgenden Folgendes:

  • Q02 zeigt nur die in Q01 überprüfte Produktgruppe (mithilfe von array_filter)
  • Q02 zeigt auch „Ein anderes Produkt“ an, den Text, der in das Feld „Andere elektronische Produkte“ in Q01 eingegeben wurde
  • Q04 zeigt nur Produkte aus Q02 an, die überprüft wurden (damit der Array-Filter kaskadiert)
  • Q05 zeigt nur Produkte aus Q02 an, die in Q02 nicht überprüft wurden (mithilfe eines kaskadierten array_filter_exclude)




Herunterladen

Klicken Sie auf den folgenden Link, um das obige Beispiel herunterzuladen: LS2_cascading_array_filter-Umfragebeispiel.


Piping/Anpassung unter Verwendung aller Fragetypen und Attribute

Übersicht

Wenn Sie nicht wissen, wie Sie Ihre Variablen benennen sollen (SGQA vs. Qcodes), sind Sie nicht allein. Obwohl in der Hauptdokumentation beschrieben wird, wie man Qcode-Variablennamen erstellt, gibt es nichts Besseres, als es in einer funktionierenden Demo zu sehen. Diese Umfrage zeigt, wie Sie mit ExpressionScript auf Frageattribute und Antworten zugreifen können.


Template:Hinweis


Inhalt

  • Beispiele für jeden Fragetyp
  • Alle Fragetypen, die „andere“ verwenden können, sind enthalten, damit Sie sehen können, wie sich dies auf die Variablenbenennung auswirkt
  • Standardwerte für alle Fragetypen, die Standardwerte akzeptieren
  • Anpassung - On-Page- und Off-Page-Berichte mit allen 16 verfügbaren EM-Punktnotationssuffixen
  • Diese Berichte zeigen alle aktuell eingegebenen Daten (zeigen Ihnen also, wie Sie anstelle der Druckberichte Ihre eigenen druckbaren Berichte auf dem Antwortbildschirm für Benutzer erstellen können)
  • Korrekte Qcode- und SGQA-Benennung aller Variablen


Screenshots

Da es sich um eine umfangreiche Umfrage handelt, haben wir uns entschieden, keine Screenshots beizufügen. Bitte laden Sie es stattdessen herunter und spielen Sie damit.


Download

Klicken Sie auf den folgenden Link, um die Umfrage herunterzuladen: LS3_EM_question_attributes.lss

Traditionelle Validierung, neu konzipiert

Übersicht

Dies zeigt alle Validierungstypen, die Ausdrücke verwenden, und wie sie sich auf die einzelnen Fragetypen auswirken, die die Validierung unterstützen. In vielen Fällen werden die Validierungstipps ausgeblendet und nur dann angezeigt, wenn eine Frage die Validierungskriterien nicht erfüllt (sie verschwinden also auch, sobald die Frage die Validierungskriterien erfüllt).


Validierungstypen demonstriert

  1. min_num_value_n – Mindestwert für eine Antwort
  2. max_num_value_n – Höchstwert für eine Antwort
  3. min_answers – Minimum Anzahl der erforderlichen Antworten
  4. max_answers Maximale Anzahl zulässiger Antworten
  5. multiflexible_min – zulässiger Mindestwert für eine Antwort (für Fragetyp „Multiflexi-Zahlen“)
  6. multiflexible_max – maximal zulässiger Wert für eine Antwort (für Multiflexi-Zahlen-Fragetyp)
  7. min_num_value – minimal zulässige Summe über alle Antworten für die Frage
  8. max_num_value – maximal zulässige Summe aller Antworten für die Frage
  9. equals_num_value – die Summe aller Antworten für die Frage muss diesem Wert entsprechen
  10. validation – Dies ist die reguläre Ausdrucksvalidierung für die Frage – sie kann auf einzelne Zellen angewendet werden


Screenshots

Bei Verwendung neuer CSS-Stile wird für jeden Validierungstyp ein eigener Tipp angezeigt. Wenn sie angezeigt werden, können sie über die Option hide_tip ausgeblendet werden. Die Standardoption besteht darin, sie in roter Schrift anzuzeigen, wenn die Frage die Validierungskriterien nicht erfüllt, und in grüner Schrift, wenn sie diese erfüllt:



Ein Benutzer kann keine Seite mit Validierungsfehlern einreichen. Er wird sofort gewarnt, wenn er falsche Informationen eingegeben hat:



Die Validierung kann auf einzelne Zellen innerhalb eines Arrays angewendet werden, wie in diesem Beispiel, wo die Validierung regulärer Ausdrücke sicherstellt, dass es sich bei jedem Eintrag um eine ordnungsgemäß formatierte US-Telefonnummer einschließlich Ortsvorwahl handelt.



Herunterladen

Um das obige Beispiel herunterzuladen, klicken Sie auf den folgenden Link: LS3_Validation_tests.zip.


Validierungsgleichungen

Übersicht

Manchmal benötigen Sie eine benutzerdefinierte Validierung, die mit den herkömmlichen Min/Max-Kriterien nicht erreicht werden kann. Dazu müssen Sie die Optionen em_validation_q und em_validation_sq verwenden, mit denen Sie komplexe Validierungsgleichungen auf Fragen- bzw. Unterfragenebene erstellen können.


Template:Hinweis


EM-Funktionen demonstriert

  1. em_validation_q – Dies ist eine Gleichung, die bestimmt, ob die gesamte Frage gültig ist
  2. em_validation_q_tip – Dies ist die Meldung, die angezeigt wird, wenn die Frage die em_validation_q-Kriterien nicht erfüllt
  3. em_validation_sq – Dies ist die Gleichung, die bestimmt, ob jede Unterfrage (Array-Zelle) gültig ist
  4. em_validation_sq_tip – Dies ist die Meldung, die angezeigt werden soll wenn eine der Unterfragen ungültig ist.

Wenn em_validation_sq verwendet wird und eine Zelle ungültig ist, wird die Hintergrundfarbe dieser Zelle im Allgemeinen rot, um anzuzeigen, dass ein Fehler vorliegt.


Screenshots


Diese Frage stellt sicher, dass Sie das Alter Ihrer Kinder in absteigender Reihenfolge eingeben, indem Sie diese Validierungsgleichung anwenden:

q1_sq1 >= q1_sq2 && q1_sq2 >= q1_sq3 && q1_sq3 >= q1_sq4





Im folgenden Beispiel stellt die Validierung sicher, dass nicht mehr als drei Fragen in einer bestimmten Zeile beantwortet werden, indem diese Validierungsgleichung angewendet wird:

(sum(Test_A_1, Test_A_2, Test_A_3, Test_A_4, Test_A_5) <= 3) && (sum(Test_B_1, Test_B_2, Test_B_3, Test_B_4, Test_B_5) <= 3) && (sum(Test_C_1, Test_C_2, Test_C_3, Test_C_4, Test_C_5) < = 3)

Sie können dies auch wie folgt schreiben: LimeSurvey konvertiert es zur Laufzeit automatisch in den oben aufgeführten Ausdruck.

(sum(self.sq_A) <= 3) && (sum(self.sq_B) <= 3) && (sum(self.sq_C) <= 3)



Herunterladen

Um das in den obigen Beispielen verwendete Umfragebeispiel herunterzuladen, klicken Sie auf den folgenden Link: ls2_test_em_sq_validation.lss.


Relevanz der Unterfrage

Übersicht

Dies zeigt, wie array_filter und Validierungskriterien interagieren können. Bei Validierungen, die sich auf Summen beziehen, werden nur relevante (sichtbare) Werte berücksichtigt.


EM-Funktionen demonstriert

  1. array_filter
  2. array_filter_exclude
  3. min_num_value
  4. max_num_value
  5. equals_num_value

Es zeigt auch eine dynamische Berichterstattung über die Anzahl der in den Kernfragen beantworteten Fragen.


Screenshots

Durch Ändern der Anzahl der sichtbaren Zeilen wird die Summe dynamisch geändert. Durch das Markieren einer Unterfrage als irrelevant wird ihr Wert nicht gelöscht. Wenn es vielmehr irrelevant ist, tragen seine Werte zu keiner Gleichung bei.



Beachten Sie, was passiert, wenn wir die „Fünfte Unterfrage“ für die erste Frage „Welche Zeilen sollen unten angezeigt werden“ überprüfen. Beachten Sie, dass die Summe für die zweite Frage „Geben Sie einige Zahlen ein“ jetzt 5 beträgt. Auch wenn Unterfrage 5 für diese Frage immer noch den Wert 14 hat (z. B. wenn Sie das Häkchen bei der fünften Unterfrage entfernen, sehen Sie wieder den Wert 14), trägt dieser Wert nicht zur Summe bei, da er derzeit irrelevant ist. Alle irrelevanten Daten werden bei der Übermittlung gelöscht (in der Datenbank auf NULL gesetzt), bleiben aber auf der Seite verfügbar, falls Benutzer ihre Meinung zu den Antworten ändern möchten oder müssen.



Herunterladen

Um unser Beispiel herunterzuladen, klicken Sie hier: ls2_subquestion_relevance.lss.


Komma als Basistrennzeichen (Dezimalpunkt) verwenden

Übersicht

Das ExpressionScript stellt sicher, dass nur gültige Zahlen in numerische Felder eingegeben werden können. Wenn Sie eine ungültige Zahl eingeben, werden Sie gewarnt, dass etwas nicht stimmt (z. B. wird im Fall des fruity themes die gesamte Frage „rot markiert“).

Beachten Sie, dass die numerischen Werte in der Datenbank immer so konvertiert werden, dass ein Punkt als Basistrennzeichen verwendet wird. Auf diese Weise funktionieren die statistischen Analysen ordnungsgemäß.

Um das Basistrennzeichen zu ändern, greifen Sie auf die Optionen Textelemente auf der Registerkarte Einstellungen zu und suchen Sie nach der Funktionalität Dezimalzeichen.


Template:Hinweis


Fragetypen mit Radix-Trennzeichen

  1. Numerische Eingabe [ N]
  2. Mehrfache numerische Eingabe [ K]
  3. Array (Zahlen) [ :]
  4. Array (Texte) [ ;], bei Verwendung des Attributs numbers_only
  5. Liste (Radio) [ L], bei Verwendung des Attributs other_numbers_only
  6. Kurzer Freitext [ S], bei Verwendung des Attributs numbers_only
  7. Mehrfacher Kurztext [ Q], bei Verwendung des Attributs numbers_only
  8. Multiple Choice [ M], bei Verwendung des Attributs other_numbers_only
  9. Multiple Choice mit Kommentaren [ P], wenn das Attribut other_numbers_only verwendet wird


Screenshots

In den folgenden Screenshots können Sie erkennen, dass Komma als Basistrennzeichen verwendet werden kann.



Herunterladen

Um das obige Beispiel herunterzuladen, klicken Sie auf den folgenden Link: ls2_comma_as_radix_separator.lss.


Randomisierungsgruppen

Übersicht

Diese Umfrage zeigt, wie man das Attribut „random_group“ nutzt.

Wenn dieses Attribut verwendet wird, wird die Reihenfolge der Fragen bei jedem Start der Umfrage randomisiert. Sobald die Umfrage jedoch gestartet wird, bleibt die Randomisierungsreihenfolge festgelegt, auch wenn Sie die Sprache wechseln.


Screenshots

Schauen wir uns gemeinsam das folgende Beispiel an. Die erste zufällige Frage auf der Seite lautet entweder Q1, Q4 oder Q7. Die zweite zufällige Frage auf der Seite lautet entweder Q2, Q5 oder Q8.



Hier ist die Randomisierung, die beim ersten Test dieser Umfrage erstellt wurde.



Beim zweiten Test der Umfrage wurde eine andere Randomisierung generiert.



Aber als ich auf Französisch wechselte (ohne die Umfrage neu zu starten), blieb die Randomisierungsreihenfolge erhalten.



Herunterladen

Um das obige Beispiel herunterzuladen, klicken Sie auf den folgenden Link: Randomization_Group_Test.lss


Stellen Sie nach dem Zufallsprinzip eine Frage pro Gruppe

Übersicht

Diese Umfrage zeigt, wie Sie eine Umfrage so konfigurieren können, dass pro Gruppe eine Frage nach dem Zufallsprinzip angezeigt wird. Darin gibt es 5 Gruppen zu je 6 Fragen. Zu Beginn werden in Gruppe 0 fünf versteckte Gleichungsfragen namens ask1-ask5 ausgefüllt. Jede hat den Wert {floor(rand(1,6.9999))} im Fragetextfeld, was bedeutet, dass die Variablen ask1-ask5 jeweils einen Wert zwischen 1 und 6 haben. Dann hat jede Frage in der Gruppe einen Relevanzgleichung wie „ask1==N“, wobei N die N-te Frage in der Gruppe ist (die dritte Frage in Gruppe 1 hat also die Relevanzgleichung „ask1==3“).

Diese Umfrage funktioniert gleichermaßen gut im Einzelumfrage-, Gruppen-für-Gruppen- und Frage-für-Frage-Modus. Da die Randomisierung in der ersten Gruppe festgelegt ist und diese Gruppe effektiv ausgeblendet ist (da alle Ask1-Ask5-Fragen ausgeblendet sind), bleibt die Randomisierung für das Subjekt gleich; aber jedes unterschiedliche Subjekt wird eine unterschiedliche Randomisierung haben.


Vorgeführte Funktionen

  1. Gleichungsfragetyp
  2. Randomisierungsfunktionen
  3. Bedingte (wenn) Funktion


Screenshots

Dies ist Gruppe0, die den Gleichungsfragetyp verwendet, um für jede Gruppe zufällige Werte von 1 bis 6 auszuwählen (mit Ausnahme der letzten Gruppe, die nur 4 Fragen enthält). Beachten Sie, dass die Funktion „if()“ zunächst prüft, ob ask1 bereits festgelegt wurde, und wenn ja, diesen Wert verwendet. Wenn der Wert nicht festgelegt wurde, wird ein Zufallswert verwendet, um den Wert von ask1 festzulegen.



Diese Gruppe zeigt, wie die Variable (ask4) von Gruppe0 verwendet wird, um zu steuern, welche Frage innerhalb der vierten Gruppe sichtbar ist.



Herunterladen

Um das obige Umfragebeispiel herunterzuladen, klicken Sie hier: Zufällige Fragen innerhalb eines Gruppenumfragebeispiels.


Stellen Sie einer Gruppe zufällig eine bestimmte Anzahl von Fragen (eine Teilmenge der Fragen)

  Dies gilt nur für alle zufälligen Fragen aus einer Gruppe und nur, wenn das Format Group by Group oder All in One verwendet wird.



Übersicht

Diese Umfrage zeigt, wie man einer Gruppe eine zufällige Teilmenge von Fragen stellt. Zeigen Sie beispielsweise 5 zufällige Fragen von 10 Fragen innerhalb einer Gruppe an.

Die Umfrage besteht aus einer Gruppe mit 10 Fragen. Allen Fragen wird derselbe Randomisierungsgruppenname zugewiesen. Daher werden sie beim Laden der Seite in zufälliger Reihenfolge angezeigt. Jeder Frage wird eine Relevanzgleichung zugewiesen, die besagt, dass die Summe der „relevanceStatus“ aller anderen Fragen in der Gruppe kleiner ist als die Anzahl der Fragen, die Sie anzeigen möchten. Da relevanceStatus beim Rendern von Fragen zugewiesen wird, summiert sich dies effektiv auf die Anzahl der vorhergehenden Fragen.

In unserem 5-von-10-Beispiel wäre die Gleichung für Q1 also:

sum(Q2.relevanceStatus, Q3.relevanceStatus, Q4.relevanceStatus, Q5.relevanceStatus, Q6.relevanceStatus, Q7.relevanceStatus, Q8.relevanceStatus, Q9.relevanceStatus, Q10.relevanceStatus) LT 5

Für Q2 wäre es:

sum(Q1.relevanceStatus, Q3.relevanceStatus, Q4.relevanceStatus, Q5.relevanceStatus, Q6.relevanceStatus, Q7.relevanceStatus, Q8.relevanceStatus, Q9.relevanceStatus, Q10.relevanceStatus) LT 5

Und so weiter...


Vorgeführte Funktionen

  1. relevanceStatus-Variable
  2. Randomizing

Herunterladen

Um das obige Beispiel herunterzuladen, klicken Sie auf den folgenden Link: Random 5 von 10 Umfragebeispiel.

Bewertung der vom Benutzer eingegebenen Produktliste

Übersicht

Das folgende Beispiel zeigt, wie Sie Benutzer bitten können, eine Reihe von Produkten aufzulisten, die sie interessieren, und diese Produkte dann bewerten zu lassen.


ES-Funktionen demonstriert

  1. Maßgeschneiderte Antworten - bei der Bewertung von Produkten stammen die Beschriftungen aus dem Kommentarfeld der vorhergehenden Multiple-Choice-Frage
  2. Maßgeschneiderte Skalen - viele erweiterte Fragenoptionen, wie z auch maßgeschneidert sein.


Screenshots

Dieses Bild zeigt, dass, da nur die Produkte 1, 3 und 5 ausgewählt wurden, nur diese 3 angezeigt werden (mithilfe des Attributs array_filter). Darüber hinaus sind die Zeilenbeschriftungen in der zweiten Frage entweder die Produktnummern (sofern nichts in das Kommentarfeld eingegeben wird) oder die Inhalte der Kommentarfelder.



Dieses Bild zeigt, wie die maßgeschneiderten Antworten angegeben werden:



Hier ist die Show Logic File für diese Frage, mit der wir überprüfen können, ob die bedingte Logik wie gewünscht funktioniert (z. B. um zu sehen, ob Syntaxfehler vorliegen):



Das nächste Bild zeigt eine Gruppe, in der Sie eine 5-Punkte-Bewertungsskala (Optionen 1–5), den Titel der Skala und die Produkte angeben, die Sie bewerten möchten. Die letzte Frage zeigt, dass jeder Teil der Array-Frage angepasst werden kann:



Das nächste Bild zeigt die Logikdateiansicht der letzten Frage. Wie Sie sehen, können die Unterfragen, Antworten und Skalenüberschriften angepasst werden.


Herunterladen

Um das oben stehende Umfragebeispiel herunterzuladen, klicken Sie auf den folgenden Link: Rating user-enered list of Products Survey example.