Show logic file/nl

=Algemeen=

Een belangrijke optie die je helpt bij het maken en onderhouden van een complexe enquête is Enquête logica-bestand.

Tijdens het maken en het testen van de enquête is het belangrijk om de logica van de enquête te valideren voordat je de enquête activeert. Dit geldt met name als er complexe relevantie, maatwerk en validatie-vergelijkingen gebruikt worden, anders kan de enquête mogelijk niet goed ingevuld worden.

Met deze functie kun je snel controleren of de enquête, groep of vraag goed is ingevoerd. Selecteer eerst een enquête, kies daarna de functie in de instellingen van de enquête op het menu Hulpmiddelen;



Hierboven zie je dat de optie voor elke taal die in een enquête wordt gebruikt, kan worden uitgevoerd.

=Beschrijving=

Deze functie toont alles wat gespecificeerd is voor elke vraag (bijvoorbeeld: naam, tekst, help, condities/relevantie, validatie regels, standaarden, subvragen, antwoorden) in een tabelvorm. Fouten worden aangegeven en je kunt elke vraag en groep aanklikken (de ID's of de variabelen in vergelijkingen) om in een nieuw venster die vraag / groep te wijzigen. Je kunt daarna snel opnieuw de controle uitvoeren, voordat je enquête activeert.

Het overzicht is ook zo ontworpen dat onderzoekers het kunnen lezen en de nauwkeurigheid kunnen valideren van het ontwerp en de logica van de enquête. De functie ververst de cache voor alle gebruikte expressies van de geselecteerde enquête.

De kolommen zijn:


 * # - toont een teller van de volgorde van groepen en vragen, beginnend bij 0.


 * Naam [ ID]- toont de vraagcode voor de groep / vraag / subvraag. Deze codes kunnen worden gebruikt als variabelen binnen expressies. ID is de vraag-id (QID) of het groeps-id (GID). Dit veld toont ook het vraagtype (bijv. Meerkeuzevraag [M])).


 * Relevantie [ Validatie] (Standaard) - toont:
 * Relevantie - de validatievergelijking voor de vraag of de groep, met kleur gemarkeerd. Als de vraag altijd gesteld wordt, is de waarde 1.
 * Validatie - Expressie beheer genereert automatisch de validatievergelijking gebaseerd op de geselecteerde vraagattributen (bijvoorbeeld: min/max aantal antwoorden, min/max/gelijk somwaarde, min/max waarde, reguliere expressie validatie). Hier wordt de gegenereerde validatievergelijking getoond, je kunt zien of er fouten zijn (bijvoorbeeld: onbekende  variabele).
 * Vraagniveau validatie toont de vergelijking om de hierboven beschreven vraagattributen te controleren.
 * Subvraagniveau validatie toont de vergelijking om de array_filter, array_filter_exclude en exclusive_option te implementeren.
 * Standaard - als de vraag een standaardwaarde heeft, wordt die hier, met kleur gemarkeerd, getoond (omdat de standaardwaarde een expressie kan zijn).


 * Tekst [ Help] (Tip) - toont:
 * Tekst - de tekst van de groep, vraag, subvraag of antwoord. Ook met kleur gemarkeerd om het gebruikte maatwerk te tonen, je kunt dan zien of alle variabelen die daarin gebruikt worden bekend zijn.
 * Help - de helptekst voor de vraag, ook met kleur gemarkeerd.
 * Tip - de op vraagattributen gebaseerde intern gegenereerde validatie tip. Ook gebruikt in alle enquête stijlen, in de afdrukbare enquête en in de schermen bij gegevensinvoer.
 * Vraagattribuut - een tabel met alle relevante vraagattributen van de vraag. Een attribuut dat een vergelijking kan zijn wordt met kleur gemarkeerd, je kunt dan de nauwkeurigheid beoordelen.

Het gebruik van kleuren:
 * Groep - een lichtgrijze achtergrond
 * Vraag - een lichtgroene achtergrond
 * Subvraag - een lichtgele achtergrond
 * Antwoord - een witte achtergrond

Bij antwoorden is er een extra attribuut in de kolom Relevantie:
 * Value - de standaard waarde die intern gebruikt wordt bij berekeningen.  Als je beoordelingen gebruikt, is het de beoordelingswaarde.  Anders is het de antwoordnaam.

=Gebruik=

Bovenaan het overzicht staat een samenvatting van het resultaat van de controle. Als er geen problemen zijn, staat er "Geen fouten gevonden in de enquête", of "Deze groep bevat geen fouten" of "Deze vraag bevat geen fouten". Als er wel fouten zijn: "X vragen bevatten fouten die verbeterd moeten worden" (of "X vraag bevat fouten die verbeterd moeten worden").

Elke vraag met een fout wordt met rood gemarkeerd (de achtergrondkleur van de linkerkolom ("#")). Ook staat er een waarschuwing met het aantal fouten in de vraag onder de kolom Naam [ID]. De meest voorkomende fouten zijn:


 * Onbekende variabele : als een variabele niet gedefinieerd is, of je hebt een tikfout in de naam van een array_filter (of in de verschillende antwoordopties voor array_filter), dan worden er fouten getoond bij je validatie vragen. De onbekende variabele is rood in een rood omlijnd vak.


 * Syntaxfout : als je begint met relevantie vergelijkingen, gebruik je snel teveel of te weinig haakjes. Dergelijke fouten worden ook in rood en rood omlijnd getoond. Als je hier met de muis overheen gaat, dan krijg je een beschrijving van de fout.

Onbekende variabele
De naam van de niet gedefinieerde variabele is in het rood in een rood omlijnd vak. Als je er met de muis overheen gaat, krijg je de melding "Onbekende variabele":



}}

Syntaxfout
De meeste van de fouten in expressies hebben te maken met slechte syntaxis. Dit hangt samen met het feit dat enquêtebeheerders meestal vergeten om een ​​accolade toe te voegen, om op de juiste manier gebruik te maken van haakjes, of ze gebruiken expressies verkeerd:





Voorbeelden van het met kleur markeren, oftewel syntax highlighting.

Fouten in eigen JavaScript
Als je enquête aangepaste JavaScript bevat, dan kun je een vraag als fout gemarkeerd zien, terwijl er geen variabele-naam als fout in het rood is gemarkeerd.



=Snel wijzigen en valideren=

Als tekst met kleur gemarkeerd is, dan heeft het een tooltip en kun je er op klikken.
 * 1) Tooltip
 * 2) *Functies - als je er met de muis overheen gaat dan krijg je het doel van de functie en de syntax te zien
 * 3) *Variabele naam - als je er met de muis overheen gaat dan zie je de plaats (groep en vraag volgorde), de vraagtekst, de mogelijke antwoorden van de vraag
 * 4) Acties
 * 5) *Variabele naam - als je er op klikt dan krijg je een venster om de vraag te wijzigen.  Logisch en gemakkelijk - door eenvoudig te klikken op een naam van een variabele in een relevantie of validatie van de vraag zie je waar het vandaan komt en hoe het gebruikt wordt.

=Schermafdruk=

De volgende voorbeelden komen uit de Expressiebeheer voorbeeld enquêtes. Er staan schermafdrukken van enquêtes die uitgevoerd worden, uitleg en mogelijke downloads.

BMI
Voorbeeld: schermafdrukken van de BMI, de lichaamsgewicht index.

Dit is een weergave van de berekening van de BMI waarin de vraagvolgorde aangepast kan worden. Je ziet de relevantie vergelijkingen voor weight, height en BMI in de kolom Vragen:



Raadpleeg het logica-bestand voor aanvullende informatie:



Een goed voorbeeld met een geneste if om de "weightstatus" te bepalen.



Trapsgewijze logica
Hier staan schermafdrukken van dit voorbeeld.

Dit voorbeeld toont de validatie logica op subvraagniveau die automatisch aangemaakt wordt wanneer je array_filter en array_filter_exclude gebruikt. Je ziet ook hoe je de "Other" waarde (het antwoord voor Q02_other is Q01_other) kunt vervangen.



In dit voorbeeld toont Q05 het gelijktijdig gebruik van array_filter en array_filter_exclude op respectievelijk Q01 en Q02. Dit toont de trapsgewijze mogelijkheden van array_filter. Een van de hoofdredenen voor het tonen van de VALIDATIE criteria (op vraag en subvraag niveau) is dat je eenvoudig kunt controleren dat je geen tikfout gemaakt hebt bij het specificeren van de namen van de variabelen van de array_filter of array_filter_exclude (of in dit geval, je lijst gefilterde subvragen). Als je een tikfout gemaakt hebt, dan wordt de variabele naam in het rood getoond, zodat je de fout snel kunt oplossen.



Dynamische relevantie
Dit voorbeeld toont dynamische trapsgewijze relevantie logica om de zichtbaarheid van de vraag te regelen. Je kunt dit voorbeeld downloaden.

De vragen kid1-kid3 zijn verplicht (mandatory). Als de vraag niet relevant is, dan is het verplicht zijn niet van belang. Deze vragen zou je "conditioneel verplicht" kunnen noemen.



Relevantie op groepsniveau
In dit voorbeeld wordt relevantie op groepsniveau in het logica-bestand getoond. Hier staan schermafdrukken van de demo.

Zoals je kunt zien, komt de relevantie vergelijking op groepsniveau (cohabs > 1 && p1_rel != "") voor in de grijze rij Person 2 voor G-2.

Je ziet ook dat alle vragen verplicht (mandatory) zijn. Als de groep niet relevant is, dan zijn alle vragen in de groep niet relevant, dus de vragen zijn alleen echt verplicht als de groep relevant is.

Je ziet ook dat bepaalde vragen alleen worden weergegeven als het antwoord op de vorige vraag niet leeg is. Je ziet hieronder dat als p2_sex niet ingevuld is, p2_name niet wordt weergegeven, ook al zijn het verplichte vragen. De verplichte vraag p2_age wordt ook niet weergegeven als p2_name niet ingevuld is. Deze vragen kunnen als "voorwaardelijk verplicht" worden beschouwd.

Ook alle tip/hint teksten worden automatisch voor je aangemaakt. Ze zijn ingedeeld in waardebereik (min/max), opgetelde waardebereik (min/max/equals), aantal antwoorden (min/max), enz. Soms wil je een antwoordbereik valideren maar geen rare validatie aanwijzing als tip/hint tonen aan de gebruiker. Je kunt dan de speciale vraagoptie hide_tip gebruiken (in dit geval kun je voorkomen dat de gebruiker de tip/hint krijgt de leeftijd tussen de 0 en 115 moet liggen, behalve als ze een verkeerde waarde invullen).



Komma als radix (decimaal) scheidingsteken
Deze demo toont dat, ondanks dat vanaf versie 1.92 het gebruik van komma als decimaal scheidingsteken bij het uitvoeren wordt ondersteunt, je toch nog een decimaal als scheidingsteken moet gebruiken bij het ontwerpen (bijvoorbeeld bij het specificeren van min/max waarden bij de speciale vraagattributen). Een werkend voorbeeld staat hier.

We herhalen nogmaals dat de VALIDATIE logica automatisch wordt aangemaakt op grond van de speciale vraagattributen. De vergelijkingen zijn vermoedelijk onnavolgbaar, maar je hoeft je er niet druk over te maken.