Actions

Setting conditions/nl: Difference between revisions

From LimeSurvey Manual

No edit summary
No edit summary
Line 106: Line 106:




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. In dit voorbeeld is er maar een scenario. LimeSurvey maakt gebruik van [https://en.wikipedia.org/wiki/Boolean_algebra Boolean algebra], dat betekent dat operator  '''or''' het eerste wordt verwerkt.
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. In dit voorbeeld is er maar een scenario. LimeSurvey maakt gebruik van [https://nl.wikipedia.org/wiki/Boolean_algebra Boolean algebra], dat betekent dat operator  '''or''' het eerste wordt verwerkt.


We beginnen met elementaire condities, later gaan we het gebruik van een [[Setting_conditions/nl#Gebruik OR condities tussen verschillende vragen: gebruik van scenario|scenario]] bespreken.
We beginnen met elementaire condities, later gaan we het gebruik van een [[Setting_conditions/nl#Gebruik OR condities tussen verschillende vragen: gebruik van scenario|scenario]] bespreken.

Revision as of 19:47, 21 August 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, 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 hebt geantwoord op de onderstaande vraag"



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





Verschillende operatoren voor vergelijking worden ondersteund:

  • De basisvormen zijn gelijk en ongelijk.
  • Ook groter/kleiner dan zijn beschikbaar, deze worden meestal alleen gebruikt bij numerieke vragen.
    • Bij numerieke vergelijkingen is 2 < 10.
    • Als een vraagtype tekst is, dan wordt de vergelijking "2" > "10" (tekstvolgorde)!
    • Numerieke en tekstvragen (als het 'Uitsluitend getallen' attribuut bij de vraag is gezet), zal de numerieke volgorde van vergelijkingen worden gebruikt.
  • Een geavanceerde vergelijkingsoperator met gebruik van reguliere expressies. (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. In dit voorbeeld is er maar een scenario. LimeSurvey maakt gebruik van Boolean algebra, dat betekent dat operator or het eerste wordt verwerkt.

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

De conditie-editor

Selecteer eerst de vraag waaraan je een conditie wilt toevoegen, daarna kun je naar de vraagtaakbalk gaan:



Klik op de knop Zet condities in de vraagtaakbalk:



De volgende pagina wordt getoond:



Het scherm om de condities te beheren bestaat uit:


Taakbalk van de conditie-editor

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 scenarios, and (2) the add/edit conditions menu.
  • Copy conditions: Sometimes, you wish to apply the same condition to X questions in order to get questionY displayed at the end. For this, click on 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.


Overzicht met bestaande condities

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


Toevoegen/bewerken conditie

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).

Om uit te leggen hoe condities werken in LimeSurvey beginnen we met de elementaire condities.


NB: Wijzig voorlopig NIET het standaard scenario () dit wordt automatisch geselecteerd in het scherm waarin de conditie wordt toegevoegd. We behandelen dit later bij gebruik OR condities tussen verschillende vragen.


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 het type te testen waarde selecteren door een tab te selecteren. Dit kan een voorafgaande vraag zijn of een deelnemers attribuut.



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 het type van deze waarde selecteren door een tab te selecteren. Bij het aanmaken van een conditie kun je de vergelijkingswaarde selecteren als een waarde (antwoord), een constante, een vraag, een deelnemersattribuut of een reguliere expressie.


Voorbeeld van een elementaire conditie en het aanmaken

  • Toon vraag 'AAMN' als "het antwoord op vraag 'Gender' de voorgedefinieerde waarde 'Male'" is
    • te testen waarde = antwoord op vraag 'Gender'
    • vergelijkingsoperator = Gelijk aan
    • vergelijkingswaarde = de code behorend bij antwoordoptie 'Male'



  • 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



  Attentie : 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.



  • 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)



  • Toon vraag 'Alcohol' als het deelnemers attribuut 'DrinkingHistory' gelijk is aan 'Yes'.
    • te testen waarde = de 'DrinkingHistory' waarde uit het token / toegangscode
    • vergelijkingsoperator = "Gelijk aan"
    • vergelijkingswaarde = de constante 'Yes'


Condities en scenario's 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.

We bekijken het in detail. Denk aan de twee regels:

  • Regel 1: Condities met dezelfde te testen waarde worden met OR samengevoegd.
  • Regel 2: Condities met verschillende te testen waarden worden met AND samengevoegd.


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. In het voorbeeld: meerdere mogelijke antwoorden op dezelfde voorafgaande vraag: "Als antwoord op vraag 'FavColour' is 'groen' OR  antwoord op vraag 'FavColour' is 'rood'  OR  antwoord op vraag 'FavColour' is 'blauw'", dan wordt de vraag 'BirthDate' getoond aan de deelnemer:



Note: To select multiple predefined answers, don't forget to hold the Shift or Ctrl key 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. Bijvoorbeeld: meerdere condities met verschillende vragen: "ALS antwoord op vraag 'Alcohol' is 'Y' AND "antwoord op vraag 'Gender' is 'F'", dan wordt de vraag 'Alcoholconsumption' getoond als de deelnemer:



Meerkeuze 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 meerkeuze vragen).


Bij de vraagtypes Meerkeuzevragen (met/zonder opmerking) 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.



De mogelijkheden toegelicht

Wat is nu het verschil tussen deze twee mogelijkheden? Stel: we willen een vraag met een puntskeuze stellen als de deelnemer minstens een bepaald antwoord bij de vraag 'MultipleOrganizations' heeft geselecteerd.

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:



We zien nu dat de condities met OR worden gecombineerd door de eerder ingestelde mogelijkheid Groep met checkboxen:



AND in condities bij meerkeuzevragen

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 met.


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). Daarvoor gebruiken we een scenario.


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 geldend voor condities in elk scenario, standaard worden alle nieuwe condities aangemaakt binnen het "Standaard scenario" (identifier is '1'). Als je de conditie aan een ander scenario wilt toevoegen moet je het nummertje aanpassen.


Een vraag toevoegen aan een ander scenario

Als je een conditie heb aangemaakt of gewijzigd, dan kun je het bijbehorende scenario bepalen door te klikken op de knop Voeg scenario toe:



Het standaardscenario gebruikt als identifier '1'. Als je een conditie aan een ander scenario wilt toevoegen dan moet je dus een ander nummer voor het scenario invullen.

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 nummer van het scenario te wijzigen.



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).


Voorbeeld: aanmaken van drie scenario's

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 en OR in hetzelfde 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 to how the copy conditions functions work 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 vraag 'FavColour' als antwoord op vraag 'Geslacht' is 'Geen antwoord'" betekent "toon vraag 'FavColour' als vraag 'Geslacht' is getoond en er geen antwoord is ingevuld".


 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 de vraag 'Alcohol' getoond als de deelnemer eerder de vraag 'AANM' heeft beantwoord met 'No'. De vraag 'AANM' hoeft niet gesteld te zijn als bij een eerdere vraag 'Gender' niet 'Male' is gekozen. In dit scenario wordt de vraag 'Alcohol' niet 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 set up the following set of conditions:

  • Show 'AAMN' if the 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 'Alcohol':



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.

Meer informatie over het kopiëren van condities.


Beperkingen en oplossingen

Voortgangsaanduiding

Als je een enquête hebt met veel vragen die overgeslagen worden vanwege de condities, dan is de "voortgangsbalk" 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 (die is: 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)