Query builder

Inhoud

    De Query Builder is ontworpen om expressies op een intuïtieve en gebruiksvriendelijke manier te creëren. In plaats van handmatig expressies in de editor in te voeren, kunnen deze worden opgebouwd door nodes en functies te selecteren.

    De Query Builder kan worden geopend door op het rekenmachine-icoon in de Survey Editor te klikken (bijvoorbeeld onder Conditioneel tonen). Er verschijnt dan een venster met twee tabbladen: Query Builder en Editor.

    Tabblad Editor

    Standaard wordt het tabblad Query Builder als actieve tab weergegeven. Wanneer echter de Ctrl-toets ingedrukt wordt gehouden terwijl op het rekenmachine-icoon wordt geklikt, wordt direct het Editor -tabblad geopend.

    Niet alle eigenschappen worden momenteel ondersteund in de Query Builder. Bovendien is deze nog niet geïmplementeerd in Single Reports; in beide gevallen is alleen het tabblad Editor beschikbaar.

    Eigenschap, voorwaarde en resultaat

    Als er geen expressie is gedefinieerd, wordt de Query Builder geopend zoals in de onderstaande afbeelding. In dit voorbeeld zijn de eigenschap isVisible en het node infostart geselecteerd; deze zijn in de afbeelding vetgedrukt.

    Een voorbeeld van een lege expressie (voor de eigenschap isVisible)


    Het middelste gedeelte van de afbeelding toont waar de voorwaarde wordt gedefinieerd (ook wel query genoemd, in de bovenstaande afbeelding is deze leeg). Hier kunnen logische regels worden opgebouwd met behulp van clausules die eenvoudige expressies bevatten, zoals q.question.value === ‘yes’. Deze clausules kunnen worden gecombineerd met logische operatoren zoals AND en OR; de expressie (expressieA AND expressieB) OR expressieC is bijvoorbeeld waar als zowel expressieA als expressieB waar zijn, of als expressieC waar is.

    Het onderste gedeelte toont de twee mogelijke uitkomsten van de expressie: één voor een positief resultaat en één voor een negatief resultaat. In dit geval maakt een positief resultaat het node zichtbaar, terwijl een negatief resultaat het verborgen houdt.

    Een enkele clausule opbouwen

    Een enkele clausule bestaat uit drie delen: een node, een operator/functie en een waarde.

    Node

    De Select a node dropdown bevat alle vragen in de vragenlijst en alle variabelen.

    De lijst kan worden gefilterd door de naam van de gewenste node te typen. Vervolgens kan de benodigde node worden geselecteerd, waarna een operator of functie wordt gekozen.

    Operator/functie

    Operatoren (bijv. Gelijk aan, Groter dan, Bevat) definiëren de vergelijking of actie die op de geselecteerde node moet worden uitgevoerd. Een operator kan bijvoorbeeld worden gebruikt om te controleren of de waarde van het de gelijk is aan, groter is dan of een specifieke waarde bevat.

    De beschikbare operatoren of functies zijn afhankelijk van het type geselecteerde node. Een checkbox-lijst biedt bijvoorbeeld andere opties dan een datumvraag.

    Value

    De waarde kan bestaan uit een enkele invoer, zoals “ja”, of een set van meerdere waarden.

    Het vereiste invoerformaat hangt af van het geselecteerde node-type en de operator. Wanneer bijvoorbeeld een datumvraag wordt geselecteerd met de GreaterThan operator, wordt een datumkiezer weergegeven samen met de optie om een dynamische datum te definiëren. Wanneer een selectievakjeslijst wordt geselecteerd met de Contains functie, wordt een dropdown getoond met de beschikbare categorieën.

    In de meeste gevallen kan ook een node worden geselecteerd in plaats van een statische waarde. Dit gebeurt door op het schakel-icoon aan het einde van de rij te klikken, waardoor een dropdown met de beschikbare nodes wordt geopend.

    Clausules combineren

    Clausules kunnen worden samengevoegd met operatoren zoals AND en OR.

    De query expressieA AND expressieB bevat bijvoorbeeld twee clausules—expressieA en expressieB—verbonden door de AND-operator. De query is dan alleen waar als beide clausules waar zijn.


    De AND/OR toggles zijn van toepassing op alle rijen binnen de bijbehorende haak aan de linkerkant. Dit kan meerdere rijen omvatten, en daarbinnen kunnen extra toggles aanwezig zijn om geneste clausules te combineren.

    Een clausule toevoegen

    Er kan een nieuwe clausule worden toegevoegd door op de knop Add new clause te klikken of door het +-icoon aan het einde van een bestaande clausule te gebruiken.

    Beide opties voeren dezelfde functie uit; het enige verschil is waar de nieuwe clausule wordt geplaatst. Het +-icoon voegt een clausule direct na de geselecteerde rij in, terwijl de knop Add new clause een clausule aan het begin of het einde toevoegt.

    Er verschijnen drie opties bij het toevoegen van een nieuwe clausule.

    OptieBeschrijving
    Standard expressionEen standaard expressie bestaat uit een invoernode, een operator en een waarde.
    Group of expressionsDeze optie voegt twee standaard expressies toe die verbonden zijn door een operator (AND/OR).
    Other expression/free textDeze optie maakt het mogelijk om aangepaste expressies toe te voegen wanneer standaard expressies niet aan specifieke eisen voldoen.

    Een clausule verwijderen

    Een verwijder-icoon wordt weergegeven aan het einde van een clausule wanneer er meer dan één clausule aanwezig is. Wanneer dit wordt geselecteerd, wordt de bijbehorende clausule verwijderd.

    Als er sprake is van geneste clausules, resulteert het verwijderen van één clausule erin dat de resterende clausule automatisch wordt samengevoegd met de bovenliggende clausules. Als bijvoorbeeld expressieC wordt verwijderd uit de query expressieA AND (expressieB OR expressieC), wordt de query bijgewerkt naar (expressieA AND expressieB). Zie ook de twee onderstaande afbeeldingen.

    Voorbeeld van exprA AND (exprB OR exprC)
    Na het verwijderen van de laatste rij blijven er slechts twee rijen
    over:
    exprA en exprB

    Variabelen en sample-waardes

    Het wordt aanbevolen om de waarde van een samples in een variabele op te slaan met behulp van een expressie. Zie voor meer informatie de artikelen Variabelen en Expressies. De meeste van deze expressies volgen het formaat q.variable = s[‘samplefield’].

    Daarom is er bij het openen van de Query Builder via een variabele-expressie een extra optie beschikbaar. De gebruiker kan ofwel direct de naam van het sampe-veld invoeren, of de query opbouwen met behulp van clausules.

    Er wordt een waarschuwing weergegeven als er een conditie is ingevoerd in de query builder en de gebruiker vervolgens overschakelt naar de optie Sample Field. Dit is om te voorkomen dat gedefinieerde expressies per ongeluk verloren gaan.

    Categorieën

    Gesloten vragen bevatten categorieën, en deze kunnen worden verborgen of uitgeschakeld op basis van sample-waardes en/of vragen.

    De query builder ondersteunt dit door meerdere expressies met verschillende uitkomsten toe te staan. Eén expressie kan bijvoorbeeld categorie 1 verbergen, terwijl een andere categorie 2 verbergt.

    Voorbeeld van een expressie met een categorie als resultaat

    De bovenstaande afbeelding toont de optie Hide answer categories voor gesloten vragen, inclusief de functies Add new row en Delete row. Elke rij bevat een enkele expressie die één specifieke uitkomst produceert.

    Het is belangrijk om op te merken dat hoewel er meerdere expressies kunnen worden toegevoegd binnen deze categorie-optie, het nesten van verschillende queries – in tegenstelling tot bij standaard clausules – niet wordt ondersteund.

    Importeren/exporteren

    Het is mogelijk om een query te exporteren en te importeren in een andere vragenlijst of node. Deze functionaliteit is beschikbaar via de twee knoppen onderaan het venster.

    Houd er rekening mee dat een query die is gemaakt voor een Goto-instructie fouten zal genereren als deze wordt geïmporteerd in een isVisible-eigenschap.

    Beperkingen

    Een breed scala aan expressies kan worden verwerkt in de query builder; expressies die drie mogelijke uitkomsten retourneren of meerdere berekeningen uitvoeren, kunnen echter niet worden verwerkt.

    In de query builder wordt een waarschuwing weergegeven die aangeeft dat de expressie niet kan worden verwerkt. Niettemin kan de editor nog steeds worden gebruikt door het tabblad editor te selecteren. De query builder kan ook worden gebruikt, maar de bestaande expressie zal dan worden overschreven.

    Foutafhandeling

    De query wordt gecontroleerd door de query builder wanneer Bevestigen wordt geselecteerd en wanneer er tussen tabbladen wordt gewisseld. Er kan een fout optreden wanneer de query bijvoorbeeld een expressie bevat zoals q.variable.value == ‘1’ AND q.variable.value == ‘2’.

    Er wordt een dialoogvenster weergegeven met de fouten. Deze berichten kunnen complex overkomen; in dergelijke gevallen kan het overschakelen naar het tabblad editor nuttig zijn. Fouten worden in de editor onderstreept, wat kan helpen bij het oplossen ervan. De expressie kan niet worden opgeslagen zolang er fouten aanwezig zijn.

    Voorbeeld van een foutbeschrijving

    Opmerkingen

    De query builder stelt gebruikers in staat om opmerkingen toe te voegen. Er is een specifiek veld beschikbaar voor het geven van een samenvatting van de query, en er kunnen ook opmerkingen worden toegevoegd aan individuele clausules. Deze opmerkingen helpen anderen om de logica en het doel van de query te begrijpen.

    Het i-icoon opent het opmerkingenveld voor een specifieke clausule, terwijl de algemene query-samenvatting boven de lijst met clausules wordt weergegeven.

    Samenvatting van de query en een opmerking bij een clausule.