Actions

Zet condities

From LimeSurvey Manual

This page is a translated version of the page Setting conditions and the translation is 100% complete.


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 ExpressionScript 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 Booleaanse 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:



  • Toon condities van deze vraag: Klik op deze knop om een overzicht te krijgen van de bestaande condities bij deze vraag.
  • Voeg conditie toe en pas aan: de standaardstartpagina bij het klikken op de knop Zet condities. De delen zijn: 1 - een tabel met daarin de bestaande condities en scenario's en 2 - het menu toevoegen/bewerken condities.
  • Kopieer condities: Soms wil je dezelfde condities bij meerdere vragen gebruiken om questionY aan het eind getoond te krijgen. Klik dan op de knop Kopieer condities. Op een nieuwe scherm worden de bestaande condities toegevoegd aan de vraag (die noemen we hier even question3). Als je ze wilt toevoegen aan question5, selecteer dan de gewenste condities die je wilt kopiëren, selecteer question5, en klik op de de knop Kopieer condities onderaan links. Meer informatie.
  • Bewaar en sluit: De knop om je wijzigingen op te slaan.
  • Ga naar vraag: Je kunt in de conditie-editor blijven als je bij nog een andere vraag iets aan een conditie wilt aanpassen. Selecteer dan de vraag die je wilt wijzigen uit de dropdownlijst.
  • Sluiten: Als je het scherm wilt sluiten zonder een wijziging op te slaan dan kun je deze knop Sluiten rechtsboven gebruiken of een keuze maken in de tabs Instellingen/Structuur


Overzicht met bestaande condities

Hier worden de bestaande scenario's en condities van een vraag getoond. Je kunt hier een aantal acties uitvoeren:



  • In het bovenste deel staan rechts de acties:
    • Sneltoevoeg-condities : snel condities toevoegen (Meer informatie)
    • Scenario's opnieuw nummeren : Hiermee kun je de scenario's opnieuw nummeren, beginnend vanaf 1. Deze optie wordt alleen getoond als er meer dan 1 scenario is bij de vraag.
    • Verwijderen alle condities : Om in een keer alle scenario's en condities bij deze vraag te verwijderen.



  • Naast het ID van een scenario staan knoppen voor de volgende acties:
    • Verwijderen scenario
    • Wijzig scenarionummer
    • Voeg conditie toe aan scenario



  • Per conditie zijn de mogelijke acties:
    • Verwijderen conditie
    • Bewerk conditie : bewerk de conditie in het conditie menu


Toevoegen/bewerken conditie

Het onderste gedeelte van het scherm wordt gebruikt voor het toevoegen en bewerken van condities:



Je kunt de conditie ook bewerken op dezelfde locatie als je eerst op de groene pen bij de betreffende vraag hebt gedrukt (bekijk de condities en scenario's tabel).

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.



Als je op de tab Voorgaande vragen een vraag selecteert en deze vraag heeft al gedefinieerde antwoorden dan worden de bijbehorende gedefinieerde antwoorden getoond op de tab Voorgedefinieerd bij de selectie van de vergelijkingsoperator.


Je kunt alleen toegangscodes gebruiken als de enquête:


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



  • Toon vraag 'Alcohol' ALS "het antwoord op de vraag 'BirthDate' groter is dan 2000-01-01"
    • te testen waarde = antwoord op vraag 'BirthDate'
    • vergelijkingsoperator = Groter dan of gelijk aan
    • vergelijkingswaarde = '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:



Als je meerdere gedefinieerde antwoorden wilt selecteren hou dan de Shift- of de Ctrl-toets ingedrukt bij het selecteren van de te testen waarden.


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.

Zoals hierboven aangegeven is het met de groep checkboxen mogelijk om condities te zetten op alle mogelijke antwoorden van de vraag. Daarom worden alleen de opties geselecteerd die mogelijke antwoorden zijn als vergelijkingswaarde:



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



AND in condities bij meerkeuzevragen

Nu nemen we een ander maar een vergelijkbaar voorbeeld. We willen nu de meest actieve leden nog wat aanvullende vragen stellen. Hierbij maken we gebruik van de groep van een enkele checkbox waarmee je een conditie kunt zetten op grond van elke afzonderlijke checkbox.

Vraag X wordt alleen getoond als A en B zijn aangevinkt:



Je ziet nu dat de condities met AND worden samengevoegd.



Dat betekent dat de vraag niet wordt getoond, behalve als beide voorwaarden (de geselecteerde subvragen) waar zijn.


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

Om drie scenario's aan te maken heb je minstens drie condities nodig, die je dan elk aan één scenario kunt koppelen. De scenario's worden dan met een 'OR' aan elkaar gekoppeld. Het ziet er dan ongeveer als volgt uit:


AND en OR in hetzelfde scenario

Het uiteindelijke scenario kan zowel AND als OR bevatten:



LimeSurvey past eerst de OR toe. Meer informatie over Booleaanse algebra.

De volgorde van de bewerkingen kan ook worden bekeken in het veld relevantievergelijking. Hieronder staat de deze waarde uit het voorbeeld gemarkeerd.



Zoals je ziet worden er automatisch haakjes toegevoegd bij de OR om de volgorde van verwerking af te dwingen.


Voor meer informatie over releventievergelijkingen bekijk ExpressionScript en de relevantievergelijking.

Kopiëren conditie

Met de functie kopiëren kun je een set van condities van bijvoorbeeld vraag5 kopiëren naar vraag10, als je daar dezelfde condities wilt gebruiken. Je hoeft ze dan dus niet een voor een opnieuw aan te maken.

Je moet dan eerst de vraag selecteren waar de condities die je wilt kopiëren staan (in het voorbeeld vraag 'LowQ'). Selecteer daarna de te kopiëren condities en de vraag waaraan je ze wilt toevoegen (in het voorbeeld vraag 'Alcohol').



NB: Een conditie op een vraag heeft altijd betrekking op een al gestelde vraag.

Let er op hoe dit kopiëren werkt als je er gebruik van wilt maken bij meerdere scenario's op een andere vraag die hetzelfde of een andere ID gebruikt voor het scenario. Bekijk het voorbeeld waarin we de mogelijke valkuilen aangeven.

  • je wilt Scenario 1 - Conditie A, Scenario 1 - Conditie B, Scenario 7 - Conditie C en Scenario 7 - Condition D van vraag QuestionX kopiëren naar vraag QuestionY
  • Vraag QuestionY bevat al Scenario 1 - Conditie A, Scenario - Conditie C, Scenario 6 - Conditie E en Scenario 8- Conditie F.
  • Na het kopiëren zijn er de volgende condities bij vraag QuestionY:
    • Scenario 1: Conditie A, Conditie B, Conditie C -> Conditie A is niet gekopieerd omdat het al bestaat in vraag QuestionY, conditie B wordt wel gekopieerd.
    • Scenario 6: Conditie E -> blijft zo
    • Scenario 7: Conditie C, Conditie D -> er is een nieuw scenario aangemaakt met de twee condities
    • Scenario 8: Conditie F -> blijft zo


Reset condities

Als je snel de condities van een enquête wilt resetten, klik dan op een enquêtegerelateerde instelling, zoek naar Hulpmiddelen op de taakbalk en klik op Condities resetten.



Bevestig vervolgens het verwijderen van de condities.


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 door 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: Als je de 'Geen antwoord'-optie als standaardantwoord kiest kan niet de vraag niet verplicht (mandatory) zijn.


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.

Om de vraag 'Alcohol' te tonen moet je de condities van eerdere vragen kopiëren aan de vraag die je bewerkt. De condities worden dan:

  • Toon 'AAMN' als het antwoord op 'Gender' is 'Male (M)'
  • Toon 'Alcohol' als het antwoord op 'Gender' is 'Male (M)' en het antwoord op '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 worden 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)