IdCode: guida completa

Introduzione

IdCode è il linguaggio di scripting di IdSurvey.
IdCode è un linguaggio appositamente creato per essere facilmente accessibile anche agli utenti che non hanno nessuna familiarità con la programmazione.
IdCode descrive ogni aspetto del questionario: domande, pagine, sezioni, testi, label, condizioni di visualizzazione, salti e molto altro.

Per creare questionari in IdSurvey l’utilizzo di IdCode non è indispensabile. Ogni funzionalità è infatti accessibile anche da interfaccia grafica. Tuttavia, IdCode rappresenta un importante strumento che permette di velocizzare enormemente la creazione e modifica dei questionari, in particolare modo se lunghi o complessi.
IdSurvey consente di passare da interfaccia grafica a IdCode e viceversa in qualsiasi momento. Questo permette ad esempio di creare una domanda da interfaccia grafica, aggiungere le opzioni di risposta da IdCode e tornare nuovamente nell’interfaccia grafica per impostare una condizione di visualizzazione o qualsiasi altra operazione di cui non si ricorda l’esatta sintassi.

Lavorare simultaneamente con entrambi i metodi consente anche di scoprire la sintassi di una qualsiasi funzione appena impostata da interfaccia grafica, permettendo un facile e veloce apprendimento di IdCode.

Particolarità del linguaggio e strumenti

Dichiarazione degli elementi semplificata
IdCode è un linguaggio dichiarativo, caratterizzato da una sintassi naturale, con basso utilizzo di delimitatori e identificatori espliciti.

Questo significa che per dichiarare una domanda o le relative opzioni di risposta non è necessario porre nessun tag identificativo. È sufficiente scrivere il codice e il testo. IdCode riconosce il codice e il testo della domanda e quelli delle opzioni di risposta in base al contesto e in base alla presenza di una riga vuota. Vediamo meglio cosa si intende:

  • Quando si dichiara una pagina è necessario scrivere /page seguito dal codice desiderato, ad esempio /page P1. Facoltativamente, nella riga sottostante è possibile aggiungere del testo che verrà visualizzato come intestazione della pagina.
  • Per dichiarare una domanda è necessario lasciare una riga vuota e quindi scrivere il codice. Trovandosi all’interno di una pagina, IdCode riconosce il codice come dichiarazione di domanda. Nella riga sottostante è possibile aggiungere il testo della pagina.
  • Per dichiarare la lista di opzioni di risposta è necessario lasciare una riga vuota e quindi scrivere il codice e il testo di ogni opzione di risposta. Trovandosi all’interno di una domanda, IdCode riconosce i codici come opzioni di risposta della domanda.
  • Per dichiarare un’altra domanda è necessario lasciare una riga vuota e proseguire come descritto sopra.

Particolarità del linguaggio e strumenti

Altri oggetti del questionario, come gruppi e sezioni, devono invece essere dichiarati con identificatori di inizio e di fine, come vedremo nei paragrafi dedicati di questa guida.

Colori
Ogni oggetto dichiarato in IdCode viene caratterizzato con dei colori per una più facile consultazione e permettendo all’utente di verificare in tempo reale che il codice o il testo digitato sia interpretato correttamente. Il codice della domanda ad esempio è di colore viola. Se durante la digitazione questo appare di colore nero, può significare che la riga precedente non è vuota o che la pagina non è stata precedentemente dichiarata.
Anche le proprietà, le opzioni e i vincoli sono caratterizzati con colori specifici. Tutti i testi delle domande, delle risposte o delle intestazioni sono invece sempre rappresentati con colore nero.

Negli screenshot di questo articolo puoi vedere i diversi colori utilizzati da IdCode per identificare gli oggetti, i parametri, le condizioni di visualizzazione e altro.

Codici
I codici delle domande, delle risposte e di qualsiasi altro oggetto del questionario,

  • Possono contenere caratteri standard, numeri, punto e underscore (trattino basso)
  • Possono contenere lettere minuscole o maiuscole
  • Devono essere univoci (non possono esserci due oggetti con lo stesso codice)

 
È importante notare che:

  • L’univocità dei codici nelle opzioni di risposta è riferita solo alle opzioni della stessa domanda. Ogni domanda non può contenere più opzioni di risposta con lo stesso codice.
  • Nei codici sono accettate lettere minuscole e maiuscole, tuttavia IdCode non è case sensitive. Questo significa che per richiamare la domanda Qb14 in una condizione di visualizzazione o in uno skip è possibile scrivere indistintamente QB14, qb14 oppure qB14.

 
Ereditarietà e ottimizzazione automatica
La quasi totalità delle proprietà possono essere aggiunte indistintamente alle opzioni di risposta o alla domanda.
Le opzioni di risposta senza nessuna proprietà ereditano quella specificata nella domanda.

Aggiungere la stessa proprietà a tutte le opzioni di risposta di una domanda equivale quindi ad aggiungere la proprietà solo sulla domanda.

Una delle peculiarità di IdCode è quella di rielaborare le proprietà e i parametri dello script nella sua forma più sintetica. Se ad esempio in tutte le opzioni di risposta di una domanda viene aggiunta la proprietà ->M (risposta a scelta multipla), IdCode ottimizza lo script ponendo la proprietà solo sulla domanda. Questa elaborazione avviene automaticamente ogni volta che si chiude e riapre la finestra di IdCode.

Intellisense
Intellisense è uno strumento che semplifica la scrittura di condizioni logiche e text piping in IdCode. Durante la digitazione è infatti possibile aprire Intellisense per recuperare l’esatto codice di una domanda, il nome di una funzione o un campo del nominativo.

Per aprire Intellisense è sufficiente premere ctrl + barra spaziatrice in qualsiasi punto di IdCode.
A seconda del contesto, viene mostrata una lista di suggerimenti.
Per restringere i risultati è possibile digitare parte del testo di una domanda, parte di una funzione o parte del nome di un campo del nominativo.
Selezionando uno dei suggerimenti, Intellisense completerà la digitazione con il codice della domanda, la funzione o il nome del campo.

Per selezionare uno dei suggerimenti è possibile utilizzare la tastiera (tasti freccia e invio per confermare) oppure cliccarlo con il mouse.

Ad esempio, se non si ricorda il codice di una domanda che si intende aggiungere ad una condizione di visualizzazione, è sufficiente:

  1. Aprire Intellisense.
  2. Scrivere una parte del testo della domanda per restringere i risultati.
  3. Selezionare la domanda suggerita dalla lista.

Per ulteriori approfondimenti consulta l’articolo dedicato.

Strumenti
Nella parte superiore della finestra di IdCode sono disponibili gli strumenti cerca, trova e sostituisci e visualizzazione schermo intero.

Consulta l’articolo dedicato per maggiori dettagli.

Cenni preliminari

In IdSurvey, il questionario è suddiviso in pagine. Ogni pagina può contenere una o più domande.
In fase di intervista, dopo aver risposto alle domande di una pagina e dopo aver cliccato il bottone Avanti, il sistema analizza eventuali istruzioni presenti e prende in esame la pagina successiva.

Le pagine vengono processate in ordine sequenziale, ossia sono mostrate in fase di intervista una dopo l’altra, rispettando eventuali condizioni di visualizzazione che possono escludere una o più pagine.
Normalmente, l’ordine delle pagine in IdCode rappresenta il flusso del questionario, tuttavia l’ordine di esecuzione può essere alterato se sono presenti salti o random.

Per semplificare, l’IdCode di un questionario può essere inteso come l’insieme di tutte le pagine del questionario.

Dall’interfaccia di IdSurvey è possibile accedere all’intero IdCode del questionario dal menu strumenti cliccando la voce “IdCode – Visualizza script del questionario”.

In alternativa, è possibile accedere all’IdCode della pagina selezionata cliccando l’icona IdC.
Per una più facile gestione del codice si consiglia di lavorare sull’IdCode della pagina e di utilizzare quello generale solo se strettamente necessario.

In tutti gli esempi di questa guida è riportato sempre l’IdCode di una pagina del questionario. 

È importante notare che l’IdCode generale sovrascrive l’intero questionario al momento che si preme il bottone “Salva” della finestra del codice. Diversamente, le modifiche effettuate nelle singole pagine, sia da IdCode che da interfaccia grafica, devono essere confermate premendo il bottone “Salva pagina” presente nel menu dell’interfaccia.

Domanda semplice

Domanda semplice

  1. Dichiarazione e codice della pagina
    Per dichiarare una pagina è sufficiente scrivere /page seguito dal codice desiderato.
  2. Codice della domanda
    Per dichiarare una nuova domanda è sufficiente scrivere il codice. Per essere riconosciuto, il codice della domanda deve essere sempre preceduto da una riga vuota.
  3. Testo della domanda
    Nella riga successiva al codice è possibile inserire il testo della domanda. È anche possibile inserire testo formattato in html.
  4. Opzioni di risposta (composti da codice e testo dell’opzione)
    Per dichiarare la lista di opzioni di risposta è necessario specificare un codice e un testo per ognuna delle opzioni. Per essere riconosciuta, la lista delle opzioni di risposta deve essere sempre preceduta da una riga vuota, preceduta a sua volta dal testo della domanda o, se assente, dal codice della stessa.
  5. Proprietà dell’opzione di risposta
    Accanto ad ogni oggetto del questionario può essere impostata una proprietà. In questo esempio è stata specificata la proprietà risposta aperta all’opzione “Altro /specificare”.
  6. Condizione di visualizzazione
    Accanto ad ogni oggetto del questionario può essere impostata una condizione di visualizzazione. In questo caso la domanda Q2 verrà mostrata solo se è stata selezionata l’opzione con codice 2 alla domanda Q1.

Domanda a griglia

Domanda a griglia

Per comporre una domanda a griglia, dopo aver digitato il codice e l’eventuale testo, è necessario specificare le righe e le opzioni di risposta. È fondamentale non lasciare nessuna riga vuota fra le dichiarazioni delle righe, delle colonne, le opzioni ed eventuali eccezioni.

  1. Per dichiarare le righe è sufficiente digitare /rows e specificare di seguito i codici e i testi di ogni riga della domanda. Per un corretto funzionamento, i codici delle righe devono essere sempre precedute da un punto.
  2. Per dichiarare le opzioni di risposta è necessario digitare /cols seguito dalla lista di opzioni di risposta.
  3. Eccezioni
    Normalmente, la domanda a griglia è composta dalle stesse opzioni di risposta, parametri e proprietà ripetute per ogni riga. In IdSurvey è consentito specificare proprietà e parametri ad un’opzione di una riga specifica.
    Per aggiungere un’eccezione è necessario scrivere /cells seguito dalle coordinate dell’opzione (codice della riga virgola codice opzione) e la proprietà e/o il parametro desiderato.Nell’esempio seguente, la domanda è impostata come griglia di risposte aperte.  Nell’opzione di risposta della terza riga è impostata un’eccezione con il parametro aperta numerica e vincolo da 1900 a 2010.

    Domanda a griglia BIS



Domanda a griglia 3D

Le domande a griglia 3D offrono una soluzione estremamente flessibile per la costruzione di domande complesse. Ogni cella della griglia (incrocio riga/colonna) può essere considerata come una domanda indipendente.

La griglia 3D può essere sfruttata per raccogliere diversi attributi ad una serie di statements.

Ad esempio, se si intende conoscere il voto da 1 a 5 per gli attributi prezzo, packaging e gusto per una serie di yogurt, si può impostare una griglia 3D con un prodotto per ogni riga, 3 colonne per i tre attributi, ognuna composta con opzioni a scelta singola da 1 a 5.

La griglia 3D consente anche di specificare tipi di risposta differenti fra le varie colonne. All’esempio precedente, si potrebbe aggiungere una quarta colonna con risposta aperta numerica per chiedere quante confezioni l’intervistato potrebbe acquistare per ognuno dei prodotti.

Un altro esempio di utilizzo della griglia 3D è quello di una domanda per richiedere il fatturato di ogni trimestre per degli ultimi 3 anni. La domanda può essere configurata inserendo i trimestri come colonne e gli anni come righe. In questo modo è possibile impostare una risposta aperta numerica per ogni cella. 

La griglia 3D consente anche di specificare eccezioni per singole celle, permettendo di configurare domande complesse per le esigenze più disparate.

Domanda a griglia 3D

Per comporre una domanda a griglia 3D, dopo aver digitato il codice e l’eventuale testo, è necessario dichiarare il template di opzioni di risposta, le righe e le colonne. È fondamentale non lasciare nessuna riga vuota fra le dichiarazioni dei template, delle righe, delle colonne e delle opzioni.

  1. Per dichiarare un template di opzioni di risposta è necessario digitare /celltemplate seguito da un numero intero e quindi digitare la lista di opzioni composta da codici ed eventuali testi. Se non diversamente specificato, tutte le celle utilizzeranno questo cell template.
  2. Per dichiarare le righe è sufficiente digitare /rows e specificare di seguito i codici e i testi di ogni riga della domanda. Per un corretto funzionamento, i codici delle righe devono essere sempre preceduti da un punto.
  3. Per dichiarare le colonne è necessario digitare /cols e specificare di seguito i codici e i testi di ogni colonna della domanda. Per un corretto funzionamento, i codici delle colonne delle griglie 3D devono essere sempre preceduti da un punto.
  4. Creare altri template di opzioni di risposta da applicare a colonne, righe o celle specifiche.
    La domanda a griglia 3D può essere composta da più tipi di righe, colonne o celle, ossia con opzioni di risposta diverse. È possibile specificare un numero illimitato di template di risposte da applicare a tutte le celle di una riga, a tutte le celle di una colonna o solo ad una singola cella.

    1. Per aggiungere un nuovo tipo di cella è necessario dichiarare un nuovo cell template digitando /celltemplate seguito da un numero identificativo.
    2. Aggiungere i codici e gli eventuali testi delle opzioni di risposta del template.
    3. Applicare il template ad una riga o colonna oppure ad una cella specifica.
      1. Per applicare un template ad una riga o ad una colonne è necessario aggiungere /celltemplate numero identificativo dopo il codice e l’eventuale testo della riga o della colonna.
        Domanda a griglia 3D
      2. Per applicare un template ad una cella specifica è necessario scrivere /cells seguito dalle relative coordinate (codice della riga virgola codice della colonna) e quindi digitare /celltemplate numero identificativo.
        Domanda a griglia 3D
        In questo esempio la domanda a griglia 3D invita i rispondenti ad inserire o dati del fatturato di 2 diversi settori per 2 diversi anni. È stata prevista una terza riga dove deve essere riportato automaticamente il totale annuo. Le due celle che riportano i totali sono descritte in due diversi cell template, ognuno con una risposta aperta, parametro /D (valore predefinito) e con la somma algebrica dei valori immessi nelle righe Prodotti e Servizi. Nel cell template 2 si sommano fatturato e servizi della colonna 2019, nel template 3 quelli della colonna 2020.

        Infine, sono stati assegnati i template alle celle desiderate, indicando che la cella della terza riga della prima colonna deve utilizzare il cell template 2, mentre quella della terza riga della seconda colonna deve utilizzare il template 3.

Condizioni di visualizzazione

Per aggiungere una condizione di visualizzazione ad un qualsiasi oggetto del questionario, è necessario digitare /F “if( condizione )” alla destra dell’oggetto stesso.
IdSurvey supporta condizioni complesse ed annidate e mette a disposizione particolari funzioni per utilizzi specifici.

Per conoscere la sintassi delle condizioni consulta l’articolo dedicato.

Condizioni di visualizzazione

Skip

In fase di intervista le domande del questionario sono poste pagina dopo pagina in ordine sequenziale. È però possibile definire salti che, se selezionata una determinata risposta, facciano avanzare ad un’altra pagina o domanda specifica ignorando il normale flusso dell’intervista.

Skip

Per aggiungere un salto è necessario aggiungere il parametro /skip “tipo( codiceOggettoDiAtterraggio )” all’opzione di risposta. 

IdSurvey supporta salti verso qualsiasi oggetto del questionario, come domande, sezioni, gruppi o pagine come in questo esempio.

Esistono più tipi di salti: salto semplice, salto con sequenza e salto random. Inoltre è possibile aggiungere una condizione per far si che il salto venga eseguito se la risposta viene selezionata e se la condizione risulta vera.

Consulta l’articolo dedicato per conoscerne le caratteristiche e la sintassi

Random

È possibile attivare il random in qualsiasi oggetto del questionario che contiene altri oggetti. Ad esempio, attivando il random in una domanda verranno proposte in ordine casuale le opzioni di risposta in essa contenute, oppure, attivando il random in una sezione verranno proposte in ordine casuale le pagine contenute. 

Nelle domande a griglia o griglia 3D è possibile attivare il random separatamente per righe e per colonne.

Grazie ai gruppi, blocchi e clona random, IdSurvey permette di creare schemi di ordinamento complessi per le esigenze più disparate.

Trovi maggiori dettagli nell’articolo dedicato.

Random

Per attivare il random in un oggetto è necessario digitare /R 1 alla destra del codice.

  1. Digitare /R 1 alla destra del codice e di eventuali attributi.

Tutte le opzioni di risposta contenute nella domanda saranno assegnate automaticamente al gruppo “zero” (/RG 0). Il gruppo zero è quello di default e non è visibile da IdCode.
Se si intende mantenere la posizione dell’opzione di risposta “Altro” per ultima è necessario specificare un diverso gruppo random. 

  1. Digitare /RG 1 alla destra del testo dell’opzione e di eventuali attributi.

Nota:
Se non diversamente specificato, il gruppo random degli elementi è /RG 0. Tutti gli elementi del gruppo 0 saranno mostrati in ordine casuale fra loro.
Se in una o più opzioni di risposta viene specificato /RG 1, tutte le opzioni dello stesso gruppo saranno mostrate in ordine casuale fra loro, comunque dopo quelle del gruppo 0.
Questa caratteristica può quindi essere sfruttata per “fissare” la posizione di un’opzione di risposta come in questo esempio.

Gruppi di domande

All’interno delle pagine è possibile creare gruppi di domande. I gruppi di domande possono essere utili per applicare una condizione di visualizzazione comune a più domande oppure per randomizzare le domande in esso contenute.

Gruppi di domande

Per creare un gruppo all’interno di una pagina è necessario dichiarare l’inizio prima di una qualsiasi domanda e la fine dopo l’ultima domanda che deve essere compresa nel gruppo.

  1. Per dichiarare l’inizio di un gruppo è necessario digitare /group seguito da un codice identificativo.
  2. Per dichiarare la fine di un gruppo è necessario digitare /endgroup.

Sezioni

Le sezioni sono contenitori di pagine del questionario. Le sezioni possono essere utili per applicare una condizione di visualizzazione comune a più pagine, per randomizzare le pagine in esso contenute o per creare un loop di una parte del questionario.

Per creare una sezione da script è necessario utilizzare l’IdCode dell’intero questionario. Per aprirlo, vai nel menu ingranaggio strumenti e seleziona “IdCode – Visualizza script questionario”.

Sezioni

Per creare una sezione è necessario dichiarare l’inizio prima di una qualsiasi pagina e la fine dopo l’ultima pagina che deve essere compresa nella sezione.

  1. Per dichiarare l’inizio di una sezione è necessario digitare /section seguito da un codice identificativo.
  2. Per dichiarare la fine di una sezione è necessario digitare /endsection.

Messaggio alert

Gli alert consentono di inserire dei controlli di coerenza in qualsiasi pagina del questionario.

Un alert consiste in una finestra di dialogo con testo personalizzato che impedisce al rispondente di proseguire alla pagina successiva se le risposte non rispettano i criteri desiderati.

Per ogni Custom Alert è necessario impostare una condizione di visualizzazione.
Come per le condizioni di visualizzazione applicate a risposte, domande o pagine, se la condizione è vera, l’alert verrà visualizzato.

Il parametro /soft permette di mostrare il messaggio dell’alert senza impedire al rispondente di confermare e proseguire alla pagina successiva.

Messaggio alert

  1. Per dichiarare un nuovo alert è necessario digitare /alert
  2. Se si intende permettere all’intervistato di proseguire anche senza effettuare correzioni, nella stessa riga, aggiungere il parametro /soft 1.
  3. Nella stessa riga è necessario specificare la condizione di visualizzazione.
  4. Nella riga inferiore è possibile inserire il testo desiderato.

Blocco di testo

È possibile inserire blocchi di testo in qualsiasi punto del questionario. Come tutti i testi degli altri oggetti del questionario, è possibile inserire immagini, testo formattato, link e molto altro in formato HTML.
Per impostare contenuti HTML è altamente consigliato l’utilizzo dell’editor disponibile nell’interfaccia grafica. 

Blocco di testo

Per inserire un blocco di testo è necessario digitare /text seguito da un codice e quindi scrivere il testo desiderato.

  1. Dichiarare il blocco di testo digitando /text seguito dal codice identificativo.
  2. Nella riga inferiore digitare il testo desiderato.

Come tutti gli altri oggetti del questionario, anche per i blocchi di testo è possibile applicare condizioni di visualizzazione.

Multilingue

IdSurvey consente di creare indagini multilingue utilizzando un solo questionario. Per tradurre tutti testi del questionario è necessario utilizzare l’apposito strumento “Gestione lingue”. 

Trovi maggiori approfondimenti sull’articolo dedicato.

Le traduzioni caricate con “Gestione lingue” sono visibili anche su IdCode all’interno di uno speciale tag “<lang>” collocato in ogni testo del questionario.

È possibile effettuare piccole correzioni e modifiche dei testi tradotti anche da IdCode.

Multilingue

  1. Individuare il tag <lang> del testo desiderato.
  2. Cliccare l’icona espandi per mostrare il contenuto del tag fino ad aprire il testo da correggere
  3. Modificare il testo

Text piping

In qualsiasi testo del questionario è possibile riportare il testo di una risposta di una domanda precedente, un dato del nominativo o un dato dell’operatore.

Per richiamare il testo di una risposta precedente è sufficiente scrivere il codice fra parentesi quadrate, ad esempio [Q3].
Per richiamare un campo del nominativo è necessario scrivere il nome del campo fra parentesi graffe, ad esempio {Nome}.

Text piping può essere utilizzato anche all’interno di condizioni di visualizzazione e altre funzioni di IdCode.

Per conoscere tutti i dettagli di text piping, fai riferimento all’articolo dedicato.

Text piping

Text piping

Testo dinamico

IdSurvey permette di aggiungere testo dinamico in qualsiasi testo del questionario.
Grazie al testo dinamico puoi controllare il testo da mostrare in base a una o più condizioni. Questa funzione è particolarmente utile per gestire singolari e plurali, maschili e femminili, oppure per aggiungere delle note agli operatori telefonici che non devono essere visualizzate nelle interviste CAWI della stessa indagine.

Inoltre, il testo dinamico consente di aggiungere espressioni algebriche in modo da mostrare il risultato nel testo di una domanda.

Testo dinamico

Per inserire un testo dinamico nel testo di una domanda, di una risposta o di qualsiasi altro oggetto del questionario, è necessario: 

  1. Aprire il tag digitando <dtx> 
  2. Scrivere la condizione o l’espressione algebrica
  3. Chiudere il tag digitando </dtx>

Per conoscere la sintassi delle condizioni di testo dinamico o delle espressioni algebriche, consulta i relativi articoli.

Intestazioni

È possibile aggiungere intestazioni di pagina e intestazioni dei gruppi.
Per farlo è sufficiente digitare il testo nella riga seguente a quella della dichiarazione della pagina o del gruppo.

Intestazioni

  1. Intestazione di pagina
  2. Intestazione del gruppo

Flowscript

FlowScript è un linguaggio integrato in IdCode che consente di eseguire comandi con condizioni di ogni complessità, comprese le istruzioni else e while.

Si può aggiungere un FlowScript in qualsiasi pagina del questionario.
Gli script vengono eseguiti al salvataggio della pagina, cioè quando il rispondente clicca il bottone “Avanti”.

Per fare solo alcuni esempi, si può utilizzare FlowScript per valorizzare un campo del nominativo sulla base di più risposte precedenti oppure per necessità più complesse come la creazione di loop di sezioni del questionario.

Per approfondire FlowScript consulta la guida dettagliata o cerca gli articoli con gli esempi di applicazione pratica.

Flowscript

Per aggiungere un FlowScript in una pagina del questionario è necessario scriverlo all’interno del tag <flowscript>.

  1. Aprire il tag <flowscript> nella riga sottostante al codice pagina o, se presente, all’eventuale intestazione di pagina.
  2. Digitare lo script.
  3. Chiudere il tag digitando </flowscript>.

Lo script di questo esempio valorizza il campo Fascia con la fascia corrispondente all’età indicata alla domanda Q60.

ClientScript

Clientscript consente l’inserimento di Javascript e CSS personalizzati nelle pagine del questionario. Javascript permette di modificare il comportamento di una domanda, modificarne la struttura e molto altro. CSS permette invece di modificare gli stili degli elementi della pagina.

ClientScript viene elaborato esclusivamente dal browser e non influenza direttamente né i dati né il flusso del questionario elaborato dal server.

In quanto si tratta di linguaggi standard e comuni a qualsiasi pagina web, Javascript e CSS non sono approfonditi in questa knowledgebase. Tuttavia sono presenti articoli con alcuni esempi delle applicazioni più comuni.

Per aggiungere un Clientscript in una pagina del questionario è necessario scriverlo all’interno del relativo tag.

  1. Aprire il tag <clientscript> nella riga sottostante al codice pagina o, se presente, all’eventuale intestazione di pagina.
  2. Digitare lo script, comprensivo dei tag standard <script> o <style>.
  3. Chiudere il tag digitando </clientscript>.

Testi HTML

Tutti i testi del questionario (domande, opzioni di risposta, intestazioni, ecc…) supportano lo standard HTML. È possibile formattare il testo, inserire link, tabelle, immagini o contenuti audio video. 

Anche se è possibile inserire contenuti HTML da IdCode, è altamente consigliato l’utilizzo degli editor WYSIWYG presenti nell’interfaccia grafica (What You See Is What You Get – Quello che vedi è quello che ottieni), in quanto permettono di comporre e modificare il contenuto mostrando direttamente il risultato finale, senza alcuna necessità di utilizzare codice HTML.

Lista Proprietà

Le proprietà descrivono il tipo di opzione di risposta o il tipo di domanda. Se nella domanda o nelle opzioni di risposta nessuna proprietà è stata specificata, IdSurvey utilizza l’opzione a scelta singola.

Le proprietà devono essere dichiarate di seguito al testo della risposta o, se assente, dopo il codice dell’opzione di risposta. Le proprietà della domanda o le proprietà che devono essere ereditate da tutte le opzioni di risposta devono essere dichiarate di seguito al codice della domanda.

Per dichiarare una proprietà è necessario digitare i simboli -> (meno e maggiore) seguiti dalla sigla della proprietà desiderata, ad esempio ->T per dichiarare un’opzione di risposta aperta.

Come descritto nel paragrafo “Ereditarietà e ottimizzazione automatica”, una proprietà può essere specificata anche nell’oggetto superiore in modo che venga ereditata da tutte le opzioni di risposta in esso contenute. Ad esempio, specificando la proprietà ->M (opzione a risposta multipla) dopo il codice della domanda, tutte le opzioni di risposta in essa contenute (e in cui non siano state specificate altre proprietà) saranno mostrate come opzioni a scelta multipla.

Alcune proprietà possono invece essere dichiarate solo dopo il codice della domande, come ad esempio ->DD (domanda Drag & Drop). Questa regola va applicata a tutte quelle proprietà che necessariamente influenzano tutte le opzioni di risposta della domanda. 

Risposta singola->SPrevede la selezione di una sola delle opzioni di risposta della domanda.

È il tipo di risposta di default: generalmente non è necessario specificarla.

Risposta multipla->MPermette la selezione di più opzioni di risposta.
Risposta esclusiva->EPermette di impostare come esclusiva una delle opzioni di risposta di una domanda a scelta multipla.
Se selezionata, deseleziona le altre opzioni di risposta della domanda.
Risposta aperta

(Vincoli disponibili)

->TPermette all’intervistato di digitare un testo breve in un campo di input.

Grazie al parametro vincolo /V è possibile impostare la risposta aperta come campo numerico, campo data con calendario, campo regolato da espressione regolare e altre opzioni. Consulta i parametri per maggiori dettagli.

Risposta aperta a text area

(Vincoli disponibili)

->TMPermette all’intervistato di digitare un testo lungo in una text area.
Risposta assistita

(Configurazione necessaria)

->APermette all’intervistato di selezionare uno dei testi da una tendina o da una lista di suggerimenti.
Risposta foto

(Configurazione necessaria)

->PPermette lo scatto o il caricamento di un’immagine.
Risposta rating

(Configurazione necessaria)

->RTPermette all’intervistato di esprimere un voto tramite la selezione di stelle, faccine o like.
Risposta slider

(Configurazione necessaria)

->SLPermette di inserire un valore tramite lo spostamento del cursore di una barra.
Risposta audio

(Configurazione necessaria)

->RPermette la registrazione o il caricamento di un file audio.
Risposta upload file

(Configurazione necessaria)

->FPermette il caricamento di un file.
Risposta video

(Configurazione necessaria)

->VPermette la registrazione o il caricamento di un video.
Risposta firma->SNPermette all’intervistato di tracciare una firma in uno speciale box dedicato.
Domanda ordinamento->DDApplicabile alle griglie, permette all’intervistato di trascinare una serie di items (opzioni di risposta) nell’ordine desiderato.
Domanda seleziona e ordina->DDSApplicabile alle griglia, permette all’intervistato di scegliere alcuni items (opzioni di risposta) e disporli nell’ordine desiderato.
Domanda MaxDiff->MDApplicato ad una domanda a griglia, permette la creazione di domande MaxDiff.

Lista vincoli

I vincoli permettono di personalizzare il tipo di valore accettato nella risposta aperta.
Per specificare una risposta aperta con vincolo è necessario digitare ->T /V “vincolo“.

Lista vincoli

Numero minimo e massimo di caratteri.S,min:max

Esempio:

->TM /V "S,1:1000"

Se impostato, definisce il numero di caratteri minimo e massimo accettato dal campo di input della risposta aperta.
Vincolo numerico intero.Ni

Esempio:

->T /V "Ni"

Accetta tutti i numeri interi.
Vincolo numerico con decimali. Nd

Esempio:

->T /V "Nd"

Accetta tutti i numeri, anche con decimali.
Valore minimo e valore massimo.Ni,min:max
Nd,min:max

Esempio:

->T /V "Ni,1:100"

Applicabile a risposte aperte con vincolo di numeri interi o con decimali.
Se impostato, definisce il valore numerico minimo accettato e quello massimo.
Vincolo data.D,format:formatoData

Formati accettati:
dd/mm/yyyy
mm/dd/yyyy
yyyy-mm-dd

Esempio:

->T /V "D,format:dd/mm/yyyy"

Imposta il campo di input della risposta aperta in un campo data. 

L’intervistato può digitare la data o selezionarla dal calendario.

Vincolo data con prima e ultima data accettata.D,format:formatoData,dataInizio:dataFine

Esempio:

->T /V "D,format:dd/mm/yyyy,2021-01-01:2021-12-31"

Consente di specificare la prima e l’ultima data accettata. Le date devono essere specificate in formato ISO (yyyy-mm-dd)
Vincolo con espressione regolareE,espressioneRegolare

Esempio:

->T /V "E,^[\d]{5}$"

Consente di specificare un vincolo con una espressione regolare (Regex).

Lista parametri

I parametri consentono la configurazione di diverse funzionalità degli oggetti del questionario.
Nella seguente lista è descritta la funzionalità per ogni parametro, la relativa sintassi e a quale oggetto del questionario è applicabile.

Per approfondire la funzionalità di ogni parametro puoi trovare articoli che trattano l’argomento in modo approfondito.

Per applicare un parametro ad una pagina, una sezione, un gruppo o una domanda è sufficiente digitarlo di seguito al codice dell’oggetto e dell’eventuale proprietà.
Per applicarlo ad un’opzione di risposta è necessario digitarlo dopo l’eventuale proprietà e il testo della risposta o, se non presenti, dopo il codice.

Possono essere aggiunti più parametri per ogni oggetto. Ad esempio, in un’opzione di risposta è possibile definire una condizione di visualizzazione e uno skip come nell’esempio sottostante.

Lista parametri

Applicabile a…
Condizioni di visualizzazione/F “condizione

Esempio:
/F "if( Q1==6 )"

Qualsiasi oggetto
Nascondi pagina/HidePage 1Pagina
Randomizza elementi figli/R 1Parent
Random clonato da/RL codiceOggetto

Esempio:
/RL Q21

Parent
Random clonato da colonne/RL C: CodiceGriglia

Esempio:
/RL C:Q2

Parent
Random colonne/RC 1Domande a griglia o griglia 3D
Random colonne clonato da/RCL codiceOggetto

Esempio:
/RCL Q10

Esempio:
/RCL R:Q1

Domande a griglia o griglia 3D
Gruppo random/RG N

Esempio:
/RG 2

Child: oggetti figli di oggetti con random attivo
Sottogruppi di elementi fissi/RF N

Esempio:
/RF 3

Child: oggetti figli di oggetti con random attivo
Sottogruppi di elementi random/RR N

Esempio:
/RR 3

Child: oggetti figli di oggetti con random attivo
Label/L “label

Esempio:
/L "Classe di età"

Domande semplici, righe delle griglie e celle delle griglie 3D
Risposta facoltativa/Optional 1Domande semplici, righe delle griglie e celle delle griglie 3D
Numero massimo di risposte/Mmax N

Esempio:
/Mmax 3

Domande semplici, righe delle griglie e celle delle griglie 3D
Numero minimo di risposte/Mmin N

Esempio:
/Mmin 2

Domande semplici, righe delle griglie e celle delle griglie 3D
Nascondi dall’export/HideOnExport 1Tutti i tipi di domanda
Mostra come griglia anche su dispositivi mobili/ShowAsMatrixOnMobile 1Domande a griglia
Mostra come carosello/Carousel 1Domande a griglia
Colonne esclusive

Permette la selezione di una sola risposta per colonna

/ExclusiveColumns 1Domande a griglia
Riduci la larghezza/ReduceWidth 1Domande a griglia
Mostra opzioni di risposta disposte orizzontalmente/ShowInLine 1Domande semplici
Mostra opzioni di risposta come bottoni/ShowAsButtons 1Domande semplici
Opzioni di configurazione della risposta/O “opzioni

Esempio:
/O "F,lista_comuni.txt"

Risposte
Salto/Skip “salto

Esempio:

/Skip "goto ( Q13 )"

/Skip "condizione salto"

Esempio:

/Skip "if( Q3 > 4) goto ( Q13 )"

Risposte
Aggiorna campo nominativo/UF “campo=valore

Esempi:

/UF "email=[Q4.1]"

/UF "area=nord"

Risposte
Fuori target/OT 1Risposte
Autocorrezione/AM “codicedomanda=codicerisposta

Esempi:

/AM "Q5=2"

Risposte
Elimina risposte successive/DA 1Risposte con autocorrezione impostata
Vincolo risposta aperta/V “vincolo

Esempio:

/V "Nd,1:100"

Risposte aperte
Valore di default della risposta aperta/D “valore

Esempio:

/D "nessuno"

/D "{comune}"

Risposte aperte
Risposta autocompletamento /AC 1

Esempio:
/O "F,lista_comuni.txt" /AC 1

Risposte assistite

Opzioni di configurazione

Come riportato nella lista delle proprietà, alcuni tipi di risposta richiedono parametri di configurazione.
Ad esempio, per la risposta assistita a tendina è necessario specificare la lista delle opzioni o associare un file di testo. Oppure, per una risposta rating sarà necessario specificare il tipo e il numero di icone (stelle, faccine o like) ed eventuali label.

Per definire le opzioni è necessario digitare /O "opzioni" dopo la proprietà. Ad esempio, per impostare una risposta a tendina che prenda le opzioni della lista da un file di testo, è necessario digitare ->A /O "F,lista.txt".

Opzioni di configurazione

Se in un’opzione di risposta viene aggiunta una proprietà ma senza che siano specificate le relative opzioni di configurazione, IdCode aggiungerà una configurazione di default.

Sebbene sia possibile specificare opzioni di configurazione da IdCode, la sintassi potrebbe risultare complessa e di difficile gestione. È pertanto altamente consigliato definire le opzioni di configurazione da interfaccia grafica.

Assistita, con lista inlineS,Opzione 1;Opzione 2;Opzione3

Esempio:

->A /O "S,Ogni settimana circa, Ogni due settimane circa, Una volta al mese o meno"

Assistita, con lista da fileF,nomeDelFile.txt

Esempio:

->A /O "F,lista_comuni.txt"

Fotoquality:low|medium|high,allowlibrary:true|false

Esempio:

->P /O "quality:medium,allowlibrary:false"

Rating

(Configurazione necessaria)

kind:star|smile|like,customlabels:true|false,numbers:N,labels:[labelArray]

Il parametro numbers (N) consente di specificare il numero di elementi da rappresentare.
Il tipo star può essere impostato con numbers 5 o 10

Il tipo smile può essere impostato con numbers 2, 3 o 5

Il tipo like può essere impostato solo con numbers 2.

labelArray

Consente di specificare le etichette degli elementi separate da virgola
Ad esempio, ‘Per niente soddisfatto’, ‘Mediamente soddisfatto’, ‘Molto soddisfatto’.

Esempio:
->RT /O "kind:smile,customlabels:true,numbers:3,labels:['Negativo', 'Neutro', 'Positivo']"

Risposta slider

(Configurazione necessaria)

kind:standard|compare,showvalue:true|false,minvalue:N,maxvalue:N,step:N,labels:[labelArray]

minvalue è il valore minimo dello slider

maxvalue è il valore massimo dello slider

step è il valore di ogni incremento

labelArray

Consente di specificare le etichette mostrate alla sinistra e alla destra dello slider.
Ad esempio, ‘Per niente probabile’, ‘Molto probabile’.

SL-> /O "kind:compare,showvalue:false,minvalue:-10,maxvalue:10,step:1,labels:['Pessimo','Ottimo']"

Risposta audio

(Configurazione necessaria)

allowlibrary:true|false,length:short|medium|long

Esempio:

->R /O "allowlibrary:true,length:long"

Risposta upload file

(Configurazione necessaria)

types:’elencoEstensioniAccettate

Elenco estensioni accettate

Definisce le estensioni dei file accettati dall’opzione di risposta. Le estensioni devono essere separate da virgola. 

Se non specificate, la risposta Upload File accetta ogni tipo di file.

Esempio:

->F /O "types:'pdf, doc, docx'"

Risposta video

(Configurazione necessaria)

allowlibrary:true|false,quality:low|high,length:short|medium|long

Esempio:

->R /O "allowlibrary:false,quality:high,length:medium"