Actions

Setting conditions/nl: Difference between revisions

From LimeSurvey Manual

No edit summary
No edit summary
Line 59: Line 59:
Het is belangrijk om te begrijpen wat er wordt verstaan onder een geschikte vraag-entry voor de conditie-editor.
Het is belangrijk om te begrijpen wat er wordt verstaan onder een geschikte vraag-entry voor de conditie-editor.


Een '''vraag-entry''' is of:
Een '''vraag-entry''' (of vraag) is of:
* een simpele vraag (voor alle vraagtypes uitgezonderd array-vragen)
* een simpele vraag (voor alle vraagtypes uitgezonderd array-vragen)
** voorbeeld: tekstvragen, radioknoppen, selectielijsten en ook meerkeuzevragen
** voorbeeld: tekstvragen, radioknoppen, selectielijsten en ook meerkeuzevragen

Revision as of 21:40, 11 July 2018


Overzicht van condities

LimeSurvey heeft een krachtige functie voor navigatie. Klik op de knop Zet condities - - in de taakbalk van de vraag.

Hier beschrijven we:

  • welke condities er zijn
  • wat kun je wel/niet met condities
  • welke stappen je moet leren kennen om simpele of moeilijke condities te maken.

Er is een video en er is een voorbeeld enquête met condities: download voorbeeld.


 Hint: Condities werken als een GUI voor de expressies en vergelijkingen die gebruikt kunnen worden bij vragen, waardoor een opsteller van een enquête eenvoudig complexe expressies en vergelijkingen kan gebruiken. Je moet dan wel de mogelijkheden van Expressiebeheer goed bekijken en weten hoe je de beschikbare opties in LimeSurvey kunt gebruiken.


Verbergen/tonen of springen

Je kunt logische vertakkingen maken met LimeSurvey, daarmee bedoelen wij dat je kunt besluiten dat je een vraag alleen wilt tonen als er aan een conditie is voldaan. (Toon vraag X als vraag Y was beantwoord met Z.)

De keuze is Verbergen of Tonen:

  • je kunt een of meer conditie(s) definiëren bij een of meer vragen in je enquête: als aan de conditie wordt voldaan, dan wordt de vraag getoond.



Eenvoudig gezegd:

  • een vraag zonder conditie wordt altijd getoond
  • een vraag met een conditie wordt alleen getoond als aan de conditie voldaan is.

Deze aanpak is anders dan het Springen dat soms bij andere software gehanteerd wordt. Bij deze aanpak wordt als actie op een conditie waaraan voldaan wordt, gesprongen naar een andere vraag (dat is ook een vorm van het verbergen van tussenliggende vragen). LimeSurvey doet het dus anders, hierbij moet je dan bij die vragen dezelfde conditie zetten als je ze niet wilt tonen. Als je bijvoorbeeld bij vraag 2 de conditie wilt stellen, spring naar vraag 5, als het antwoord op vraag 1 'Ja' is", dan moet je dus:

  • op de vragen 2, 3 en 4 de conditie zetten, alleen tonen als "het antwoord op vraag1 NIET 'Ja' is".

Je kunt in LimeSurvey een conditie gemakkelijk op meerdere vragen zetten door een conditie te kopiëren van een vraag naar andere vragen. In het voorbeeld hierboven zet je dus de conditie op vraag2, en op hetzelfde scherm kun je die conditie kopiëren naar vraag3 en vraag4.

Uitleg hoe je een conditie kunt kopiëren.


Ondersteunde conditie types

Een conditie vergelijkt waarden en het resultaat is true of false.

Waarden die vergeleken kunnen worden zijn antwoorden op vorige vragen. Voorbeeld: "Als je als deelnemer 'Ja' antwoordt op vraag1", dan wordt vraag2 in de enquête getoond:





Het is belangrijk om te begrijpen wat er wordt verstaan onder een geschikte vraag-entry voor de conditie-editor.

Een vraag-entry (of vraag) is of:

  • een simpele vraag (voor alle vraagtypes uitgezonderd array-vragen)
    • voorbeeld: tekstvragen, radioknoppen, selectielijsten en ook meerkeuzevragen
  • of een rij in een Array-vraag (niet Array Dubbele schaal en Array (getallen) en Array (teksten)),
    • voorbeeld: Array (5 punten)
  • of het linkerdeel / rechterdeel van een Array Dubbele schaal
  • of elke cel van een Array
De beschikbare vraagtypes in LimeSurvey.
  • constante waarden
    • voorbeeld: "Als je hebt meer dan 18 jaar dagen hebt geantwoord op de onderstaande vraag"



  • Deelnemersgegevens: om deze gegevens te kunnen gebruiken moet de optie "Anonieme respons?" op Nee staan.  Deze optie staat in Instellingen -> tab Instellingen deelnemer.





Verschillende operatoren voor vergelijking worden ondersteund:

  • De basisvormen zijn gelijk en ongelijk
  • Ook groter/kleiner dan zijn beschikbaar, deze zijn meestal alleen bruikbaar voor numerieke vragen
    • Bij numerieke vergelijkingen is 2 < 10
    • Als een vraagtype tekst is, dan wordt de vergelijking "2" > "10" (tekst volgorde)!
    • Numerieke en tekst vragen (als het 'Uitsluitend getallen' attribuut bij de vraag is gezet), zullen de numerieke volgorde van vergelijkingen gebruiken
  • Een geavanceerde vergelijkingsoperator met gebruik van reguliere expressies is ook beschikbaar.
  • De "Reguliere expressie" operator (als je niet weet wat het is, heb je het vermoedelijk niet nodig)
    • het patroon is not tussen '/' tekens
    • voorbeeld [a-zA-Z]$


Combineren van condities


Je kunt complexe conditions maken door condities te combineren met AND en OR logische operators.

Het is van belang te begrijpen dat LimeSurvey automatisch bepaald welke logische operator gebruikt moet worden: het gebruik van OR of AND operators wordt bepaald volgens de context van de conditie.

We beginnen met een elementaire conditie, later gaan we het gebruik van een scenario bespreken.

De editor gaan gebruiken

First, you need to access the conditions designer. To do that, click on the question you wish to apply the condition to:



Now, look for the Set conditions button located on the top question bar:



Once accessed, the following page will be displayed:



The conditions designer panel can be divided into three sections:


The conditions designer toolbar

In de taakbalk kunnen de volgende opties staan:



  • Show conditions for this question: Click on this button to get a quick overview of the current existent conditions that are applied to your question.
  • Add and edit conditions: It represents the default page that opens automatically once you click the Set conditions button. It is divided in two parts: (1) a table displaying all the existent conditions and (2) the add/edit conditions menu.
  • Copy conditions: Sometimes, you wish to apply the same condition to X questions in order to get the Y question displayed at the end. For this, click on the Copy conditions. A new window will open displaying the current existent conditions added to your question (let's call it question3). To add them to question5, check the desired conditions you wish to be copied, select question5, and click on the Copy conditions button located on the bottom left part of the panel. For further information, please continue reading the following wiki section.
  • Save and close: Once you are done with the changes, click '"Save and close to get your conditions saved.
  • Move to question: In order not to leave the conditions designer panel while moving to another question, use the following option to select from the dropdown list the next question you wish to apply conditions to. Please note that the dropdown list displays the questions that are displayed in the survey before and after the current question.
  • Close: If you wish to exit the panel without performing any changes, you can either go straight to the settings/structure tab and select the desired option or click Close, which is located in the upper right of the screen.


Overview of the existent conditions

This section displays a table that contains all the existent scenarios and conditions of a question. Certain actions can be performed from here:



  • In the top right part, three actions are available:
    • Quick-add conditions - it fastens the process of adding conditions (read below to learn about all the options)
    • Renumber scenarios - if clicked, the scenarios will be renumbered with incremental numbers beginning from one. Please note that this option is displayed only if two or more scenarios are applied to your question.
    • Delete all conditions - you can delete via this action all the current existent conditions and scenarios applied to your question.



  • Besides the id number of each scenario, there are three buttons that allow you to perform the following actions:
    • Delete scenario
    • Change scenario number
    • Add condition to this scenario - click on this button to add another condition to the desired scenario



  • Two actions can be performed on each condition:
    • Delete condition
    • Edit condition - if clicked, you will be able to edit the condition from the conditions menu



Add/Edit conditions

The bottom part of the screen is allocated to the Add/edit conditions menu:



You can also edit the condition from the same location if you pressed before on the green pencil that corresponds to the question you wish to be edited (see the conditions and scenarios table).

To understand how the conditions feature works in LimeSurvey, we will first present the elementary conditions.


NB: Wijzig voorlopig NIET het standaard scenario () dit wordt automatisch geselecteerd in het scherm waarin de conditie wordt toegevoegd. We komen hierop later terug.


Definitie van elementaire conditie

Een elementaire conditie is een enkele conditie zonder een logische operator (OR, AND).

Het bestaat uit een:

  • een linker operand: de te testen waarde
    • je kunt eerst het type te testen waarde selecteren door een tab te selecteren



If you select a question-entry (from the 'Previous questions' tab) and if this question uses predefined answers, then the corresponding predefined answers are displayed under the Predefined tab of the comparison value selection.


Note that in order to use the Token your survey must:


  • een vergelijkingsoperator
    • Je kunt deze waarde kiezen uit een dropdownlijst


  • een rechter operand: de vergelijkingswaarde
    • je kunt eerst het type van deze waarde selecteren door een tab te selecteren



Example of elementary conditions and how to create them

Aanmaken van een elementaire conditie

  • Toon vraag ALS "het antwoord op vraag1 was de voorgedefinieerde waarde 'Man'"
    • te testen waarde = antwoord op vraag1
    • vergelijkingsoperator = Gelijk aan
    • vergelijkingswaarde = de code behorend bij antwoordoptie 'Man'



  • Toon vraag ALS "het antwoord op vraag2 groter was dan 5 (numeriek)"
    • te testen waarde = antwoord op vraag2
    • vergelijkingsoperator = "Groter dan"
    • vergelijkingswaarde = de waarde 5



Waarschuwing: Als je een constante 'vergelijkingswaarde' gebruikt bij een datum vraagtype, dan moet je de datum opgeven in het formaat YYYY-MM-DD, ongeacht het formaat dat is ingesteld voor de enquête.
  • Toon vraag ALS "het antwoord op vraag3 was groter dan het antwoord op vraag2"
    • te testen waarde value = antwoord op vraag3
    • vergelijkingsoperator = "Groter dan"
    • vergelijkingswaarde = antwoord op vraag2


  • Show Question 'Alcohol' if "the answer to Question 'BirthDate' is greater than 2000-01-01"
    • tested value = answer to Question 'BirthDate'
    • comparison operator = Greater than or equal to
    • comparison value = '2000-01-01' (the format in the constant field: 2000-01-01)


File:Edit-simple-condition-prevQuestion.png


  • Toon vraag ALS "de 'Department' waarde van de respondent (Toegangscodeveld van de uitnodiging) gelijk is aan de string 'Accounting'"
    • te testen waarde = de 'Department' waarde uit het token / toegangscode
    • vergelijkingsoperator = "Gelijk aan"
    • vergelijkingswaarde = de constante 'Accounting'


Conditions and scenarios in LimeSurvey

Standaard conditie combinaties

Zoals al eerder aangegeven, zal LimeSurvey automatisch op grond van de context beslissen welke logische operator (AND of OR) wordt toegepast tussen condities.

De volgorde waarin je elementaire condities definieert is niet van belang, want LimeSurvey zal automatisch een eigen volgorde kiezen.

Dit gaan we in detail bekijken.


Eerste regel: condities met dezelfde te testen waarde worden met OR samengevoegd

Als je meerdere condities hebt dan worden ze met OR samengevoegd als ze dezelfde te testen waarde hebben

  • voorbeeld: meerdere mogelijke antwoorden op dezelfde voorafgaande vraag: "Als antwoord op vraag1 is 'groen' OR  antwoord op vraag1 is 'rood'  OR  antwoord op vraag1 is 'blauw'"



Note: To select multiple predefined answers, don't forget to hold the Shift and/or Ctrl key(s) while selecting the tested values.


Tweede regel: condities met verschillende te testen waarden worden met AND samengevoegd

Als je meerdere condities hebt dan worden ze met AND samengevoegd als ze niet dezelfde te testen waarde hebben

  • voorbeeld: meerdere condities met verschillende vragen: "ALS antwoord op vraag1 is '4' AND "antwoord op vraag2 is 'groen'"


   




Meervoudige optie vragen

In deze paragraaf worden de vraagtypes Meerkeuzevraag en Meerkeuzevraag met opmerking behandeld, dus niet het vraagtype Array (getallen) (hier is elke checkbox een vraag, het wordt dus anders afgehandeld als andere meervoudige opties vragen).


Bij Meerkeuzevragen (met/zonder opmerking) vraagtypes, komen in het deel te testen waarde in de condities editor twee mogelijkheden voor

  • een Groep checkboxen waarbij je condities kunt maken op alle mogelijke antwoorden van de vraag
  • een groep van enkele checkbox waarbij je conditie(s) kunt zetten op elke checkbox



The group of checkboxes flavour

Now, let's focus on an example to better understand the difference between the two flavours. Let's imagine that we wish to display the 'Pointchoice' Question only if the respondent checks at least one of the tested answers listed under the 'MultipleOrganizations' Question.

As mentioned above, the group of checkboxes flavor allows you to set conditions on all possible answers of the respective question. Therefore, only the options that refer to responsibilities are selected as comparison values below:



As we can observe, the conditions get ORed due to the Group of checkboxes flavour selected in the beginning.:



ANDing conditions in multiple choice questions

Now, let's focus on a similar example. However, we are looking this time only for the most active members to ask them further questions. To do this, we make use of the Single checkbox flavour which allows you to set conditions based on each checkbox individually.

In this example, question X will be displayed if A and B are checked:



Once done, you can observe that the two conditions are ANDed now.



This means that your question will not be displayed unless both tested values (the selected subquestions) are checked by the respondents.


Gebruik OR condities tussen verschillende vragen: gebruik van scenario

Je kunt zeggen dat je soms met OR condities wilt samenvoegen, zelfs als ze gezet zijn op verschillende vragen (dus op verschillende te testen waarden): dan kun je een scenario gebruiken.


Definitie van een scenario

Een scenario is een handmatige groepering van condities waarin condities onafhankelijk van condities in andere scenario's worden geëvalueerd. Het resultaat van de meerdere scenario's is dat het voldoet als er maar een scenario voldoet. Met andere woorden: een scenario is een logische groepering van condities, volgens de bovenstaande regels, en die met OR worden samengevoegd om complexe condities te maken.

Alles wat hierboven hebben beschreven is waar binnen een scenario, standaard worden alle nieuwe condities aangemaakt binnen een "Standaard scenario".


Een vraag toevoegen aan een ander scenario

Als je een conditie heb aangemaakt of gewijzigd, dan kun je het scenario bepalen waartoe de conditie behoort:



Als je een conditie in een ander scenario wilt aanmaken dan het standaard scenario, klik dan op het scenario toevoegen icoon File:Plus.png, en vul het scenario nummer in: File:Default scenario edit.png

Het nummer van een scenario is niet van belang, de nummers hoeven niet opeenvolgend te zijn.



Je kunt het nummer van het scenario wijzigen door te klikken op het icoon en dan het formulier invullen dat op dezelfde regel getoond wordt.



Zoals al eerder gezegd, het nummer van een scenario is niet van belang voor hoe condities worden geëvalueerd. Maar het wijzigen van het nummer is nodig om:

  • te beslissen in welke volgorde de scenario's worden getoond bij de afgedrukte versie van de enquête
  • samenvoegen van condities van twee scenario's (om scenario 10 samen te voegen met scenario 1, hoef je alleen het nummer van scenario 10 te wijzigen in 1).


Example: creating three scenarios

To create three scenarios, you need at least three conditions and to add to each of them a different scenario id. Once done, the scenarios are going to be connected among themselves via the 'OR' operator. For example, it could look like this:


AND vs OR in the same scenario

You may end up in certain cases with AND and OR logical operators in the same scenario:



LimeSurvey will always apply first OR. For further details on this, you may check the following Wikipedia article on Boolean algebra.

However. the order of operations can also be observed in the Relevance equation field. For the above example, the relevance equation is highlighted below:



As it can be observed, a set of extra parentheses is added for the OR logical operations in order to let the software know that it must be "computed" first.


Help: For more information on relevance equations, check the Expression Manager and relevance equation wiki sections.

Kopiëren conditie

The copy conditions functionality can be used when you wish to apply the same set of conditions you applied to Question5 to Question10. In this way, you will not have to manually recreate the conditions you applied to the previous question(s).

To start copying conditions, you first have to select the question the condition(s) is/are applied to (Question 'LowQ' in our case). Then, select the conditions you wish to be copied and select the question you wish to have the conditions added to (Question 'Alcohol' in our case).



Note: Conditions can only be set based on questions that appear before the question on which the condition is set.

Please pay attention on how the copy conditions functions works when you wish to copy and apply a set of conditions located under different scenarios to another question which uses the same or different scenario id numbers. To summarise the possible cases you might have, check the following example:

  • you wish to copy Scenario 1 - Condition A, Scenario 1- Condition B, Scenario 7 - Condition C, and Scenario 7 - Condition D from QuestionX into QuestionY
  • QuestionY already contains Scenario 1 - Condition A, Scenario - Condition C, Scenario 6 - Condition E, Scenario 8- Condition F.
  • Once copied, the following conditions will be applied to QuestionY:
    • Scenario 1: Condition A, Condition B, Condition C -> Condition A is not copied anymore as it already exists in QuestionY, only condition B being copied.
    • Scenario 6: Condition E -> not affected
    • Scenario 7: Condition C, Condition D -> a new scenario is created where the two conditions are added to it
    • Scenario 8: Condition F -> not affected

Aandachtspunten

Algemene overwegingen

Er zijn een paar basisregels waar je aan moet denken bij het toevoegen van een conditie aan een vraag:

  • Als je een conditie toevoegt, dan wordt die vraag alleen getoond als de conditie opgaat.
  • Je kunt alleen een conditie zetten op grond van het antwoord van een eerdere vraag.
  • Als je eerst de condities opvoert en daarna de volgorde van de vragen aanpast, krijg je van LimeSurvey geen waarschuwing als er dor de wijziging van de volgorde een probleem is met een conditie. Stel dus eerst de vraagvolgorde (en groepsvolgorde) vast voordat je condities toevoegt.
  • Je kunt condities ook na het actief maken van de enquête nog wijzigen. Omdat er geen controle op het consistent zijn is, moet je hier dus heel voorzichtig mee zijn.


Condities met voorgedefinieerd antwoord 'Geen antwoord'


Het toevoegen van een conditie "Toon vraag20 als antwoord op vraag1 is 'Geen antwoord'" betekent "toon vraag20 als vraag1 is getoond en er geen antwoord is ingevuld". Dit is iets anders dan "toon vraag20 als vraag1 niet is getoond".


 Hint: To have the no answer option displayed as a predefined answer, the question cannot be mandatory.


Gekoppelde condities

Als je condities toevoegt aan een vraag die al condities heeft, dan kan er soms een onverwacht effect optreden. Een mogelijk effect is dat je alle vragen in een groep verbergt met gekoppelde condities, maar dat de kop van de groep wordt getoond, totdat je de condities aanpast zoals hieronder aangegeven.




In het bovenstaande voorbeeld wordt een vraag getoond 'Do you like being male?' met een conditie zodat de vraag alleen getoond wordt als het antwoord op What is your gender? is Male. Als je een conditie wilt toevoegen aan deze vraag met een specifiek antwoord op Do you like being male?, dan wordt deze vraag nooit getoond.

To have the 'Alcohol' question displayed, you have to copy the conditions from the earlier question(s) to the one you're editing. To have the 'Alcohol' question displayed, you need to setup the following set of conditions:

  • Show 'AAMN' if answer to 'Gender' is 'Male (M)'
  • Show 'Alcohol' if answer to 'Gender' is 'Male (M)' and if answer to 'AAMN' is No (N)'.

De condities voor Q3:



Als je een gecompliceerde enquête ontwerpt met veel condities, zorg er dan voor dat je de enquête test met alle combinaties van invoer die je kunt bedenken.

To find out more on how you can copy conditions in LimeSurvey, please scroll up or click here to continue reading the dedicates wiki section.


Beperkingen en oplossingen

Voortgangsaanduiding

Als je een enquête hebt met veel vragen die overgeslagen worden vanwege de condities, dan is de "progress-bar" iets wat minder zegt, er kan plotseling een grote stap gedaan worden of het einde is niet bij 100%.

Om dit te voorkomen zou je de vragen die mogelijk worden overgeslagen, kunnen proberen te plaatsen binnen vragen die altijd getoond.

Voorbeeld: vraag1 is een Ja/Nee vraag. Vraag2A tot vraag15A worden getoond als het antwoord op vraag1 Ja is. Vraag2B tot vraag15B worden getoond als het antwoord op vraag1 Nee is.

Als je de vragen nu in de groep in de volgorde zet van : 2A, 2B, 3A, 3B, enz., dan krijg je een mooie voortgang. Bij een volgorde van 2A, 3A, [...], 2B, 3B, ... krijg je een voortgang van van 0 tot 50% of van 50% tot 100%, afhankelijk van het antwoord op vraag1.


Een constante vergelijkingswaarde voor vraagtype Datum

Als je een constante vergelijkingswaarde invult, dan moet je de interne representatie gebruiken van datums: YYYY-MM-DD

Condities met "Andere" opties in meerkeuzevragen

Bij meerkeuzevragen kun je de keuze "Andere" als een goede keuze zien maar je kunt er geen conditie opzetten. Voorbeeldvraag: "Wat is je lievelingskleur?" Antwoord checkboxen zijn : Blauw, Zwart en Andere. Als de respondent Blauw kiest, dan kun je een conditie zetten. Dat kan ook bij Zwart. Maar niet bij Andere, dan typt de respondent een tekst in, waar je geen conditie op kunt zetten. LimeSurvey ziet dit niet als een fout, maar als een beperking.

Er is geen echt veld vastgelegd voor de checkbox 'Andere' voor dit vraagtype. De enige manier om te weten of de respondent "Andere" heeft gekozen, is het testen of het invoerveld behorend bij "Andere" ingevuld is.

Vanwege de manier waarop we meerkeuzevragen afhandelen is het testen op deze invoerwaarde nooit geïmplementeerd.

Als oplossing kun je zelf een "Anders" antwoord definiëren en niet de ingebouwde "Andere" optie van deze vraagtypes gebruiken. Voeg daarna dan een kort vrije tekst vraagtype toe, met een conditie als de keuze "Anders" is gemaakt.


Hoe kun je haakjes gebruiken in boolean expressies?

Helaas, dan kan niet!

Als je dit, bijvoorbeeld, wilt doen:

 (conditie1 OR conditie2) AND (conditie3 OR conditie4)

dan moet je er dit van maken:

 (conditie1 AND conditie3) OR

 (conditie1 AND conditie4) OR

 (conditie2 AND conditie3) OR

 (conditie2 AND conditie4)