Actions

Zet condities

From LimeSurvey Manual

Revision as of 11:25, 18 June 2018 by FuzzyBot (talk | contribs) (Updating to match new version of source page)

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: download voorbeeld enquête met condities.

Verbergen/tonen tegenover springen

Je kunt logische vertakkingen ontwerpen met LimeSurvey, daarmee bedoelen wij dat je kunt beslissen 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 aanpak is een Verberg/Toon vertakking:

  • 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 de Spring vertakking logica die 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, hier wordt bij alle vragen dezelfde conditie gezet 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 wordt het:

  • zet een conditie op vragen 2, 3 en 4 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 meerdere 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.


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 wordt verstaan onder een geschikte vraag-entry voor de conditie editor:

Een vraag-entry is of:

  • een simpele vraag (voor alle vraagtypes uitgezonderd array vragen)
    • voorbeeld: tekst vragen, 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

Om het op deze pagina en in de conditie editor wat eenvoudiger te houden noemen we vraag-entries gewoon vragen.

  • constante waarden
    • voorbeeld: "Als je hebt meer dan 18 jaar dagen hebt geantwoord op Vraag2"



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

Begrijpen van elementaire condities

De editor gaan gebruiken

Eerst moet je de conditie editor aanroepen:

  • open het conditie menu door te klikken op het icoon condities in de vraag taakbalk bij het bekijken van een vraag.
  • klik dan op het icoon Voeg conditie toe en pas aan, het wijzigscherm voor condities wordt getoond, waarmee je condities voor de huidige vraag kunt aanmaken, wijzigen en verwijderen.

Je krijgt het volgende scherm:



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



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


File:Conditions-operators.png


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



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


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'

Hoe je dit voorbeeld kunt toevoegen staat beschreven in de blog post: "Conditions based on token attributes"

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'"



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'"


   


Derde regel: condities met OR gaan voor condities met AND

Stel, je hebt de volgende condities aangemaakt:

  • ALS antwoord op vraagtype "!" was 'Groen'
  • ALS antwoord op vraagtype "5" was '4'
  • ALS antwoord op vraagtype "A" was '4' of '5'

  • Dan zal het resultaat van de condities zijn:

    • Met hoofdletter 'OR' en de kleine letters 'and' willen we hier aangeven dat met OR samengevoegde condities geëvalueerd worden als ze prioriteit hebben gekregen met haakjes
    • De volgorde van aanmaak van de elementaire condities niet bewaard wordt en dat daar ook geen reden voor is
    • Het resultaat is: ALS (antwoord op vraagtype "A" was '4' OR  antwoord op vraagtype "A" was '4') AND (ALS antwoord op vraagtype "5" was '4') AND (ALS antwoord op vraagtype "!" was '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

En nu een quiz over condities::

  • Ik heb een meerkeuzevraag:
    • Onderwerp A: Hoe kan ik met OR condities samenvoegen van verschillende antwoorden op een vraag
    • Onderwerp B: Hoe kan ik met AND condities samenvoegen van verschillende antwoorden op een vraag

...

...

...

En nu de antwoorden...

Onderwerp A:

  • Gebruik de Groep van checkboxen als je te testen waarde en selecteer alle gewilde antwoorden



Voor onderwerp B:

  • Gebruik de Enkele checkbox die overeenkomt met je eerste antwoord waarop je de conditie wilt zetten en zet de vergelijkingswaarde op aangevinkt


File:Edit-conditions-MultipleOptionsAND1.png


  • Gebruik de Enkele checkbox die overeenkomt met het tweede antwoord wat je nodig hebt in de conditie en zet de vergelijkingswaarde op aangevinkt



  • Bewonder het resultaat:



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.


File:Multi scenario.png


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

Wanneer je een nieuwe elementaire conditie aanmaakt, dan kun je het aan een ander dan het Standaard scenario koppelen.

Scenario's worden aangegeven met een nummer, het "Standaard scenario" heeft nummer '1' als identificerend gegeven.


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.


Gebruik van de editor

Overzicht editor

Open eerst de conditie editor:

  • Bekijk een vraag en klik op het icoon "Stel condities voor deze vraag in" in de vraag taakbalk.

Het bovenste deel van het venster toont de voor de vraag al bestaande condities.


File:Existing conditions.png


In het bovenstaande voorbeeld wordt vraag B alleen getoond als:

  • Het antwoord op de vraag-entry FBI van vraag A is "1"
  • EN
    • OF het antwoord op de vraag-entry CIA van vraag A is "5"
    • OF het antwoord op vraag-entry CIA van vraag A is "3"

Bij het toevoegen/wijzigen File:Conditions add.png, zijn er per regel specifieke acties mogelijk zoals:

  • wijzig conditie
  • verwijderen van alle condities , verwijder deze conditie , verwijder alle condities uit dit scenario
  • wijzig scenario


File:Edit-conditions-EditModeButtons.png

Bij het kopiëren , heeft elke regel een checkbox waarmee je die conditie kunt kopiëren naar een latere vraag:


File:Copying conditions.png


Instellen nieuwe condities

Selecteer eerst het scenario

Als je geen met OR samengevoegde condities nodig hebt, wijzig dan niet het standaard scenario. () dit scenario wordt automatisch geselecteerd.

Als je juist de conditie in een ander scenario wilt toevoegen, klik dan wel op het icoon voor het toevoegen van een scenario 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.


Selecteer de te testen waarde

Klik op de tab van het type te testen waarde: voorgaande vragen, toegangscodevelden.

Je kunt toegangscodevelden natuurlijk alleen kiezen als je enquête:

  • geen anonieme antwoorden toestaat
  • toegangscodes gebruikt

Selecteer vervolgens de te testen waarde.

Als je een vraag kiest (op de tab 'Voorgaande vragen') en die vraag heeft voorgedefinieerde antwoorden dan worden die getoond in de tab Voorgedefinieerd in het gedeelte Antwoord.

Selecteer de operator voor de vergelijking


Er kunnen meerdere vergelijkingsoperatoren worden gebruikt:

  • De basissoorten zijn "Gelijk aan", "Ongelijk aan"
  • Ook zijn er diverse soorten met Groter en Kleiner beschikbaar, meestal gebruikt bij numerieke antwoorden
    • Hier geldt dus de numerieke vergelijking: 2 < 10
    • Als je een vraagtype met tekst gebruikt, dan is: "2" > "10".
    • Numerieke vragen en tekstvragen met de speciale instelling 'Uitsluitend getallen' aan, gebruiken de numerieke vergelijking
  • Er is ook een vergelijkingsoperator voor gebruik van reguliere expressies. Als je deze kiest, dan wijzigt het invoerveld voor het antwoord automatisch naar de geavanceerde mode (RegExp).

Selecteren van vergelijkingswaarde

Klik op de tab die overeenkomt met het type vergelijkingswaarde wat je nodig hebt: het kan zijn Voorgedefinieerd, (een constante) Waarde, (een antwoord op een voorgaande) Vraag, Toegangscodevelden of een reguliere expressie (RegExp, alleen bij die operator).

Kies vervolgens waarde die je wilt gebruiken, of vul die in.

Als je meerdere keren een waarde selecteert, dan geldt de laatste gekozen waarde.

Als je Voorgedefinieerd, gebruikt, dan kun je een of meer voorgedefinieerde antwoorden selecteren:

  • de mogelijke antwoorden op die vraag
    • kies het antwoord dat je wilt gebruiken
    • je kunt meerdere antwoorden selecteren in een keer door de CTRL knop ingedrukt te houden bij het selecteren

Klik tot slot op de knop "Voeg conditie toe".

Wijzigen/Verwijderen condities

Naast het toevoegen van condities, kun je dit scherm ook gebruiken voor:

  • wijzigen conditie
  • verwijderen conditie
  • wijzigen scenario

Wijzigen conditie

Door te klikken op het wijzig icoontje achter een bestaande conditie, wordt het scherm getoond waarmee je deze conditie kunt wijzigen. Je kunt dus maar een conditie per keer wijzigen.

Klik na het wijzigen op de knop "Pas conditie aan".

Verwijderen conditie

Je kunt:

  • een conditie verwijderen door te klikken op het verwijderen icoontje achter een bestaande conditie.
  • alle condities binnen een scenario verwijderen door te klikken op het icoontje
  • alle condities van een vraag verwijderen door te klikken op het icoon

Wijzig scenario

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.

Je kunt ook de scenario's opnieuw nummeren door te klikken op het icoon .

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

Kopieer conditie naar een latere vraag

Het is niet ongewoon voor een vraaggroep om dezelfde conditie te hebben. Gelukkig kun je als je een conditie hebt opgevoerd die conditie gemakkelijk kopiëren naar een willekeurige vraag erna.

Ga naar de "copy mode" door te klikken op het icoon kopieer condities .

File:Copy conditions example.png

De condities behorend bij de huidige vragen worden getoond met links een checkbox. Je kunt:

  • elke conditie selecteren door deze checkbox aan te vinken
  • of alle condities binnen een scenario selecteren door de checkbox bij het scenario aan te vinken

Selecteer dan alle vragen in de enquête waar je de geselecteerde condities heen wilt kopiëren. (Gebruik de CTRL-toets om er meer te selecteren). Klik daarna op de knop "Kopieer condities".

Je kunt dit het best uitstellen totdat je alle vragen hebt ingevoerd en de vraagvolgorde vaststaat.

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

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.

Het wordt sterk aanbevolen dat je condities van eerdere vragen kopieert naar de vraag die je op dat moment aan het wijzigen bent.

Voorbeeld: Je wilt het volgende:

  • Q1 is de vraag Man/Vrouw
  • Q2 is een Ja/Nee vraag en wordt getoond als het antwoord op Q1 Man is
  • Q3 is een rangschikken vraag en wordt alleen getoond als het antwoord op Q2 Ja is

Dan heb je de volgende condities:

  • op Q2: toon vraag als antwoord op Q1 is Man
  • op Q3: toon vraag als antwoord op Q1 is Man EN antwoord op Q2 is Ja

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.


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)