Condizioni di visualizzazione, guida completa

Compatibilità:IdSurvey 7IdSurvey 8

L’utilizzo di condizioni di visualizzazione in IdSurvey permette di visualizzare un elemento all’interno del questionario solo se si verificano determinate condizioni.

Gli elementi a cui sono applicabili le condizioni di visualizzazione sono:

  • opzioni di risposta
  • righe di griglie
  • colonne di griglie
  • celle di griglie avanzate
  • domande
  • gruppi
  • pagine
  • sezioni
  • custom alerts

 

Le condizioni sono espressioni che possono includere dati da:

  • codici delle risposte selezionate
  • valori immessi nelle risposte aperte (testo, numerico o data), rating e slider.
  • campi del nominativo

 

Operatori logici

Simboli di confronto
Questi simboli permettono di confrontare due valori.

  • == uguale
  • != diverso
  • < minore
  • > maggiore
  • <= minore uguale
  • >= maggiore uguale

 
Negazione
Il simbolo di negazione inverte il risultato booleano della condizione. Deve essere anteposto alla condizione.

  • ! negazione

 

Richiamare i dati

In IdSurvey è possibile scrivere condizioni che richiamano diversi tipi di valori.

Codice risposta
Scrivendo semplicemente il codice della domanda IdSurvey confronterà i codici di risposta.

if( Q1 != 1 )
controlla se la prima risposta non è stata selezionata.

Valori delle risposte aperte, griglie, rating e slider.
Scrivendo il codice della domanda fra parentesi quadrate, IdSurvey confronterà i valori immessi nelle risposte aperte, rating e slider.

if( [Q1] <= 50 )
controlla se nella risposta numerica della domanda Q1 è stato immesso un valore minore di 50.

if( [Q2.1] == 80 )
controlla se nella riga 1 della domanda griglia di aperte Q2 è stato immesso un valore uguale a 80.

if( [Q3.2.1] != 10 )
controlla se nella cella formata dall’incrocio di riga 2 e colonna 1 della domanda a griglia 3D Q3 è stato immesso un valore diverso da 10.

Valori delle drag&drop
Scrivendo il codice della domanda seguito dal codice dell’opzione di una domanda drag&drop, IdSurvey confronterà la posizione di quella opzione nella lista.

if( Q1.1 == 1 )
controlla se l’opzione .1 della domanda drag&drop Q1 è stata messa in prima posizione nell’elenco.

if( Q1.3 != 1 )
controlla se l’opzione .3 della domanda drag&drop Q1 è stata messa in una posizione diversa dalla prima nell’elenco.

Valori dei campi del nominativo
Per richiamare il valore di un campo del nominativo è necessario scrivere il nome del campo all’interno di parentesi graffa.

if( {sesso} == m )
controlla se il valore contenuto nel campo “sesso” del nominativo è “m”.

Note

  • I tipi di risposte che permettono di registrare un valore sono le risposte aperte (testo, numeriche, data, ecc..), slider e rating. Per questi tipi di risposte IdSurvey registra il codice della risposta selezionata più il valore immesso.
  • Può esistere un solo valore per ogni domanda semplice, un solo valore per riga in una domanda a griglia, un solo valore per cella in una griglia avanzata. Per maggiori dettagli consulta l’articolo specifico o la guida di IdSurvey.

 

Convenzioni

Per convenzione, tutte le condizioni basate su domande non mostrate restituiscono falso.
Ad esempio, se la domanda Q15 non è stata mostrata perché filtrata, e alla domanda Q20 è applicata la condizione if( Q15 != 3 ), la domanda Q20 non verrà mostrata anche se effettivamente la risposta è diversa da 3.
Questa convenzione assicura un comportamento più naturale per come sono generalmente concepite le condizioni di visualizzazione in un questionario.

È possibile eludere questa convenzione usando l’operatore not (negazione). Ad esempio, se alla domanda Q20 viene applicato il filtro if( !Q15 == 3 ), questa verrà mostrata anche se la domanda Q15 non è stata visualizzata. Mostra se alla Q15 NON è stata selezionata la risposta 3.

 

Operatori AND e OR (&& e ||)

L’utilizzo degli operatori AND e OR consente di combinare condizioni per la creazione di filtri di ogni complessità.
Il simbolo “And” (“E”) è: &&
Il simbolo “Or” (“Oppure”) è: ||

if( Q1==99 || ( Q1==1 && Q1==2 ) )

La domanda Q3 apparirà se ho selezionato la risposta con codice “99” alla domanda Q1 oppure se ho selezionato entrambe le risposte “1” e “2” alla domanda Q1.
Come si può notare la condizione Q1==1 && Q1==2 è racchiusa fra parentesi. Questo serve per indicare l’ordine di elaborazione. In questo esempio, il risultato della condizione verrà quindi elaborato con la condizione all’esterno della parentesi, quindi Q1==99 oppure [risultato della sotto condizione]

Note:

  • In assenza di parentesi, IdSurvey processa prima le condizioni in AND, poi le condizioni in OR. Sebbene sia consigliabile utilizzare sempre le parentesi per non incorrere in ambiguità dell’ordine di esecuzione, la condizione di questo esempio potrebbe essere scritta anche senza parentesi.

 

Calcolo algebrico

È possibile formulare espressioni algebriche di ogni complessità all’interno delle condizioni utilizzando gli operatori matematici somma, sottrazione, moltiplicazione e divisione (+, -, *, /).

if( ([Q1]+[Q2]) <= 100 )
controlla se la somma delle risposte numeriche date alla domanda Q1 e Q2 è minore o uguale 100.

if( [Q5] == (getResponse(Q1, opentext)/2) )
controlla se il numero inserito nella risposta aperta della Q5 è uguale alla metà di quella inserita nella domanda Q1.

 

Funzioni

IdSurvey mette a disposizione numerose funzioni utilizzabili nelle condizioni di visualizzazione, in FlowScript e in IdCode. Le funzioni permettono di eseguire dei controlli su domande del questionario, sui campi del nominativo o sullo stato delle quote. Ad esempio, controllare quante risposte sono state selezionate ad una domanda con opzioni di risposta multiple oppure controllare se una determinata quota è chiusa, ecc...
Altre funzioni speciali consentono di elaborare stringhe, recuperare l'etichetta di un opzione di una domanda drag&drop in base alla posizione (ranking) e molto altro.

CountCodePermette di contare il numero di opzioni selezionate.if(CountCode (Q1) >= 3)

Controlla se alla domanda Q1 sono state selezionate 3 o più opzioni.
ResponsesCodeOfRestituisce i codici delle risposte selezionate ad una domanda.if(Q2==responsesCodeOf(Q1))

Controlla se la risposta selezionata alla domanda Q2 ha lo stesso codice di quella selezionata alla domanda Q1.
CountResponsesWithCodePermette di contare il numero delle domande a cui si è risposto con un determinato codice risposta.if(CountResponsesWithCode(Q1,Q2,Q3,Q4,Q5,Q6,99) >= 3)

Controlla se è stato risposto codice 99 ad almeno 3 fra le domande Q1, Q2, Q3, Q4, Q5 e Q6.
CountResponsesWithTextPermette di contare il numero delle domande in cui si è risposto con un determinato testo o numero.if(CountResponsesWithText (Q1,Q2,Q3,Q4,Q5,Q6,'mare') >= 3)

Controlla se la parola “mare“ è presente in almeno 3 delle risposte di testo nelle domande Q1, Q2, Q3, Q4, Q5 e Q6. 
CheckQuotaPermette di conoscere se una certa quota è aperta o chiusa.if(CheckQuota ('Genitori') == 1)

Controlla se la quota “Genitori” è chiusa. 
CompareDateConfronta due date.
Restituisce -1 se la prima data è inferiore (precedente) alla seconda, 0 se sono uguali e 1 se la prima data è maggiore (successiva) della seconda
if(compareDate({data_di_nascita}, '2010-10-01') == -1)

Controlla se la data nel campo “data_di_nascita” è precedente alla data specificata. 
ModuleRestituisce la stringa CATI, CAWI o CAPI a seconda del modulo in cui è attualmente somministrata l’intervista.if(module()==cawi)

Controlla se l’intervista è attualmente somministrata con il modulo CAWI.
ContainsTextPermette di verificare la presenza di un determinato testo all’interno di una risposta aperta.if(ContainsText ([Q1],'mare')==1)

Controlla se la risposta di testo della domanda Q1 contiene la parola “mare”.
StartWithTextConfronta l’inizio di una stringa con una stringa specificata.if(StartWithText({Telefono},'+39')==1)

Controlla se il campo telefono inizia con “+39”.
EndWithTextConfronta la fine di una stringa con una stringa specificata.if(EndWithText({Identificativo},'123')==1)

Controlla se il campo identificativo finisce con “123”.
GetVariablePermette di ottenere il valore di una variabile (sul nominativo o una domanda) costruendo dinamicamente il nome della variabile stessa.getVariable('{data_di_nascita_figlio_'+{ifiglio}+'}')

Ottiene il valore della variabile “ifiglio”  (ad esempio 3) e lo usa per comporre il nome della variabile “data_di_nascita_figlio_3” e ottiene il relativo valore.
JoinPermette di forzare la concatenazione di stringhe evitando che queste vengano interpretate come numeri. Ad esempio 10+02+12 restituisce 24, mentre join(10,02,12) restituisce 100212.join(10,02,12)

Compone la stringa 100212

join(testo,02,[Q1])

Compone la stringa testo02rispostaApertaQ1
RandomGenera un numero casuale compreso fra il numero minimo e il numero massimo indicato.

È possibile specificare un nome per salvare il numero generato in modo da poterlo riutilizzare in un secondo tempo.

random(1, 10)

Genera un numero random compreso fra 1 e 10. 

random(1, 10, 'il mio numero random')

Genera un numero random compreso fra 1 e 10 e lo salva con il nome specificato.
Riutilizzando la stessa identica sintassi (nel FlowScript di una qualsiasi pagina del questionario) verrà richiamato il numero salvato e generato la prima volta.
ReplaceSostituisce il testo specificato all’interno di una stringa.

(Disponibile da IdSurvey 8.1)

Replace([Q1], 'macchina', 'automobile')

Restituisce la stringa della risposta aperta della domanda Q1 sostituendo la parola “macchina” con “automobile”. 

Replace({telefono}, '+39', '')

Restituisce il campo telefono senza il prefisso +39.
GetItemByRankingRestituisce l’etichetta o il codice dell’item in base alla posizione di classifica.

(Disponibile da IdSurvey 8.1)

GetItemByRanking(Q1, 1, label)

Restituisce la label dell’elemento messo in prima posizione nella domanda ordinamento drag&drop (oppure, per le griglie, restituisce il testo della riga in cui è stata selezionata la risposta con codice 1). 

GetItemByRanking(Q15, 3, code)

Restituisce il codice dell’elemento messo in terza posizione nella domanda ordinamento drag&drop (oppure, per le griglie, restituisce il testo della riga in cui è stata selezionata la risposta con codice 3).

GetItemByRanking(Q1, 1, auto)

oppure
GetItemByRanking(Q1, 1)

Restituisce la label dell’elemento messo in prima posizione nella domanda ordinamento drag&drop. Se la label non è presente viene riportato il codice.
getResponseRestituisce la risposta selezionata e consente di specificare il dato da recuperare e la formattazione del separatore delle risposte multiple.

(Disponibile da IdSurvey 8.1)

getResponse(Q1)

oppure
getResponse(Q1, auto)

Restituisce l’aperta (se disponibile) o la label della risposta selezionata alla domanda Q1. In caso di risposte multiple vengono riportate tutte le risposte separate dal carattere pipe “ | ”. 

getResponse(Q1, auto, ', ')

Come il precedente ma in caso di risposte multiple vengono riportate separate da una virgola seguita da uno spazio.

getResponse(Q1, opentext)

Restituisce la risposta aperta della domanda Q1.

getResponse(Q1, label)

Restituisce la label della risposta selezionata della domanda Q1.

getResponse(Q1, code)

Restituisce il codice della risposta selezionata alla domanda Q1.

getResponse(Q1, commentbox)

Restituisce il testo inserito nell’area di commento (testo dopo domanda).

Leave A Comment?