Controlla la logica del sondaggio - Avanzato
From LimeSurvey Manual
Generale
Un'opzione importante che ti aiuta a creare e mantenere facilmente sondaggi complessi è Check Survey Logic.
Durante lo sviluppo e il test del sondaggio, e prima di attivarlo, è molto importante convalidare la logica del sondaggio. Ciò è particolarmente vero quando si utilizzano complesse equazioni di pertinenza, personalizzazione e convalida: è necessario essere sicuri che nulla si rompa durante l'esecuzione del sondaggio.
Questa funzione ti consente di convalidare rapidamente l'accuratezza del sondaggio, dei gruppi e delle domande. È possibile accedervi dalle opzioni del menu della barra superiore situate sotto le impostazioni relative al sondaggio. È disponibile tramite il menu Strumenti:
Come puoi osservare sopra, puoi eseguire questa opzione quattro volte, per ogni lingua utilizzata all'interno di un sondaggio.
Descrizione
L'opzione Check Survey Logic mostra tutto ciò che hai specificato per ogni domanda e gruppo (es. nome, testo, aiuto, condizioni/rilevanza, regole di validazione, default, sottodomande, risposte) in un comodo formato tabulare. Evidenzia gli errori e ti consente di fare clic sulla domanda e sugli ID di gruppo (o sulle variabili utilizzate all'interno delle equazioni) per aprire nuove schede del browser per modificare tali domande o gruppi. In questo modo è facile modificare rapidamente eventuali errori e aggiornare la pagina di controllo della logica per confermare l'accuratezza del sondaggio prima di attivarlo.
Il display è inoltre progettato per essere leggibile da ricercatori e sponsor dello studio in modo che possano convalidare l'accuratezza del progetto e della logica del sondaggio. Il controllo della logica del sondaggio aggiorna la cache per tutte le espressioni utilizzate all'interno di un sondaggio attivo.
Comprende le seguenti colonne:
- # - mostra i conteggi della sequenza di gruppi e domande, a partire da 0.
- Nome [ ID] - mostra il codice della domanda per il gruppo/domanda/sottodomanda. Questi codici possono essere usati come variabili all'interno di espressioni. ID è l'ID della domanda (QID) o l'ID del gruppo (GID). Questo campo mostra anche il tipo di domanda (ad esempio, Scelta multipla [M])).
- Rilevanza [ Validation] (Predefinito) - mostra quanto segue:
- Pertinenza - l'equazione di pertinenza evidenziata dalla sintassi per la domanda o il gruppo. Se è sempre vero (da mostrare in qualsiasi scenario), il valore sarà 1.
- Validation - ExpressionScript genera automaticamente la convalida equazione in base agli attributi della domanda selezionati (ad es. numero min/max di risposte, valori somma min/max/uguale, valori individuali min/max o convalida dell'espressione regolare). Questa sezione mostra l'equazione di convalida generata in modo da poter rilevare eventuali errori (come variabili non definite).
- La convalida a livello di domanda mostra l'equazione necessaria per verificare gli attributi della domanda sopra descritti
- **La convalida a livello di sottodomanda mostra l'equazione necessaria per implementare array_filter, array_filter_exclude e exclusive_option
- Predefinito - se la domanda ha un valore predefinito, viene mostrato qui, con la sintassi evidenziata (poiché il valore predefinito potrebbe essere un'espressione).
- Testo [ Aiuto] (Suggerimento) - mostra quanto segue:
- Testo - il testo del gruppo, domanda, sottodomanda o risposta. La sintassi è evidenziata per mostrare qualsiasi tailoring incorporato, permettendoti così di verificare di aver dichiarato tutte le variabili che intendi utilizzare nel tailoring.
- Aiuto - questo mostra il testo di aiuto per la domanda, anch'esso evidenziato dalla sintassi.
- Suggerimento - questo mostra il suggerimento di convalida generato internamente, basato sugli attributi della domanda. Questo stesso suggerimento viene utilizzato in tutti gli stili di indagine, oltre che nelle schermate di indagine stampabili e di immissione dati.
- Attributi domanda: mostra una tabella di tutti gli attributi della domanda rilevanti per questa domanda. Gli attributi che potrebbero essere equazioni sono evidenziati dalla sintassi in modo da poterne convalidare l'accuratezza.
Le righe sono codificate a colori come segue:
- Gruppi - sono mostrate con uno sfondo grigio chiaro
- Domande - sono mostrate con uno sfondo verde chiaro
- ' Domande secondarie' - sono mostrate con uno sfondo giallo pallido
- Risposte - sono mostrate con uno sfondo bianco semplice
Le risposte hanno un attributo aggiuntivo nella colonna Rilevanza:
- Valore - questo è il valore interno predefinito utilizzato dai calcoli. Se stai utilizzando Valutazioni, questo sarà il valore della valutazione. Altrimenti, questo sarà lo stesso del nome della risposta.
Utilizzo
Nella parte superiore della pagina è presente un messaggio di riepilogo. Se tutto va bene, dirà "Nessun errore di sintassi rilevato in questo sondaggio", oppure "Questo gruppo" o "Questa domanda", "di per sé, non contiene errori di sintassi". Se è vero il contrario, dirà "X domande hanno errori di sintassi che devono essere corretti".
Ogni domanda che ha errori di sintassi ha lo sfondo della sua colonna più a sinistra (cioè #) codificato con il colore rosso. Inoltre, sotto la colonna Nome [ID] verrà visualizzato un avviso che indica il numero minimo di errori di una domanda. I seguenti errori sono comuni:
- Variabile non definita - se non hai definito tutte le tue variabili o hai digitato in modo errato array_filter (o set diversi di opzioni di risposta per array_filter), alcune delle tue domande di convalida mostreranno errori . Le variabili non definite sono visualizzate in testo rosso, delimitate da una linea rossa.
- Sintassi errata - quando inizi a utilizzare le equazioni di pertinenza, potresti utilizzare troppe o troppo poche parentesi. Tali problemi di sintassi sono evidenziati e racchiusi in rosso. Se passi il mouse su uno di questi testi nella casella rossa, un suggerimento descriverà l'errore.
Colori nella sintassi ExpressScript
La sintassi delle condizioni e delle equazioni è evidenziata per capire più facilmente cosa stai guardando:
- Verde / Azzurro: una variabile che fa riferimento a una domanda precedente nel sondaggio
- Blu : una funzione
- Grigio: un'espressione stringa
- Marrone: un'espressione TOKEN (dati del partecipante)
- Nero: Operatore
Cose da controllare:
- Viola: una variabile che fa riferimento a domanda più avanti nel sondaggio. Di solito si tratta di un errore e deve essere controllato.
- Cornice rossa o rossa: una variabile inesistente o un riferimento a una domanda precedente o un errore di sintassi - di solito deve essere controllato.
Variabili non definite
Se vengono utilizzate variabili non definite, il nome della rispettiva variabile sarà codificato a colori in rosso e circondato da una linea rossa. Se passi il mouse sopra il nome della variabile, dirà "variabile non definita":
}}
Sintassi errata
La maggior parte degli errori relativi alle espressioni sono legati a una cattiva sintassi. Ciò è legato al fatto che gli amministratori del sondaggio di solito non aggiungono una parentesi graffa, usano correttamente le parentesi o usano le espressioni in modo errato:
Ecco molti buoni esempi sull'uso di evidenziazione della sintassi.
JavaScript personalizzato errato
Gli errori JavaScript verranno inoltre evidenziati nel controllo della logica del sondaggio:
Velocità di modifica e convalida
Tutto il testo evidenziato dalla sintassi ha suggerimenti incorporati, che sono cliccabili:
- Tooltips
- Funzioni: passando il mouse puoi vedere lo scopo e la definizione della sintassi della funzione;
- Nomi delle variabili - passando il mouse è possibile visualizzare la posizione (gruppo, sequenza di domande), il testo della domanda e le risposte consentite per la domanda.
- Actions
- Nomi delle variabili: facendo clic sul nome della variabile si apre una nuova finestra che consente di per modificare la domanda. Ciò semplifica la navigazione e la verifica della logica: continua semplicemente a fare clic sui nomi delle variabili di rilevanza o sui criteri di convalida per la domanda per vedere da dove provengono e come vengono utilizzati.
Esempi
Gli esempi seguenti sono tratti dai Sondaggi campione ExpressionScript. Puoi trovare schermate di sondaggi in corso, spiegazioni e download su quella pagina.
Indice di massa corporea
Ecco screenshots di questo esempio.
Questa è la vista di riordino delle domande del calcolo dell'indice di massa corporea. Puoi vedere le equazioni di rilevanza per peso, altezza e indice di massa corporea nella colonna Domanda:
Per una migliore panoramica del sondaggio, controlla la pagina della logica del sondaggio:
Questo esempio di sondaggio è anche un buon esempio di istruzioni if() nidificate per generare il "weightstatus".
Logica a cascata
Ecco schermate di questo esempio.
Mostra la logica di convalida della sottodomanda che viene generata automaticamente quando si utilizzano array_filter e array_filter_exclude. Questo esempio mostra anche come sostituire il valore personalizzato "Altro" (la risposta per Q02_altro è Q01_altro).
Q05 in questo esempio mostra l'uso simultaneo di array_filter e array_filter_exclude rispettivamente su Q01 e Q02. Questo esempio dimostra le funzionalità di array_filter a cascata. Nota che uno dei motivi principali per mostrare i criteri di convalida a livello di domanda e sottodomanda è quello di assicurarti di non aver commesso errori di battitura nello specificare i nomi delle variabili array_filter o array_filter_exclude (o nel caso in cui utilizzi nomi di variabili diversi per l'elenco delle sottodomande filtrate). Se hai tali errori di battitura, tutti i nomi delle variabili non validi appariranno in rosso indicando che non sono definiti, permettendoti di risolvere rapidamente il problema.
Pertinenza dinamica
Questo esempio illustra la logica di pertinenza a cascata dinamica per controllare la visualizzazione della visibilità della domanda. Puoi scaricare questo esempio qui.
Si noti inoltre che le domande vengono visualizzate solo se vengono soddisfatti determinati criteri di convalida. Ad esempio, se una persona afferma di avere 2 figli, alcune domande devono essere compilate dall'intervistato (kid1 e kid2).
Pertinenza a livello di gruppo
Questo esempio mostra come appare la pertinenza a livello di gruppo nel controllo logico. Ecco screenshots dell'esempio descritto di seguito.
Come puoi vedere, l'equazione di rilevanza a livello di gruppo (cohabs > 1 && p1_rel != "") appare nella riga grigia Persona 2 per G-2.
Potresti anche notare che tutte le domande sono obbligatorie. Tuttavia, se il gruppo è irrilevante, lo sono anche tutte le sue domande. Di conseguenza, tali domande sono veramente obbligatorie solo se il gruppo è rilevante.
Puoi anche notare che alcune domande vengono visualizzate solo se la risposta alla domanda precedente non è vuota. Di seguito puoi vedere che se p2_sex non è compilato, p2_name non verrà visualizzato, anche se è una domanda obbligatoria. Anche la domanda obbligatoria p2_age non verrà visualizzata se p2_name non è compilata. Queste domande possono essere considerate "condizionalmente obbligatorie".
Inoltre, tieni presente che anche i messaggi tip vengono creati automaticamente per te. Sono organizzati per intervallo di valori (min/max), intervallo di valori somma (min/max/uguale), numero di risposte (min/max), ecc. (dipende dal tipo di domanda utilizzato e dagli attributi attivi). A volte si desidera convalidare un intervallo di risposte ma non si desidera visualizzare quelli che potrebbero sembrare sciocchi suggerimenti di convalida all'utente. In questi casi, puoi utilizzare l'opzione domanda hide_tip (come in questo caso, per evitare di dire all'utente che l'età deve essere compresa tra 0 e 115 a meno che non tenti di inserire un valore errato - vedi p2_age ).
Virgola come separatore di radice (decimale)
Sebbene LimeSurvey supporti completamente l'uso della virgola come separatore radice (decimale) in fase di esecuzione, è comunque necessario utilizzare un decimale come separatore radice in fase di progettazione (ad esempio, quando si specificano i valori min/max negli attributi delle domande avanzate). L'esempio funzionante può essere trovato qui.
Inoltre, ricorda che la logica convalida viene creata automaticamente dagli attributi della domanda abilitati. Le equazioni possono sembrare schiaccianti, ma non devi preoccuparti di loro.