Loop – Tipo 2 (ripeti fino a che la condizione è vera)

Compatibilità: IdSurvey 6 IdSurvey 7
X

Grazie a FlowScript puoi far ripetere una sezione fino a che non viene data una risposta specificata che determina la fine del ciclo.

In questo esempio viene posta una serie di domande su un viaggio effettuato e poi si chiede se sono stati fatti altri viaggi. In caso di risposta affermativa la serie di domande viene ripetuta per il nuovo viaggio. Il ciclo si interrompe quando il rispondente dichiara di non aver fatto altri viaggi.

  1. Chiedere al rispondente se ha fatto viaggi nell’ultimo anno.
  2. Rispondere ad alcune domande sul viaggio e quindi chiedere se ne sono stati fatti altri.

Finché l’utente dichiara di aver fatto altri viaggi, le domande al punto 2 dovranno essere riproposte.

Step 1

Dal bottone ingranaggio della pagina P1 attiva FlowScript e crea una variabile valorizzandola con 1.

{i} = 1;

Note

  • Questa variabile funge da indice (o contatore) che sarà incrementato ogni volta che verrà ripetuta la sezione di domande. Alle variabili indice viene comunemente assegnato un nome come “i”, “j”, “k”. Se nel questionario vengono utilizzate più di una variabile indice, ognuna deve avere un nome diverso.
  • La dichiarazione della variabile (in questo esempio “i”) deve essere fatta prima del ciclo, ovvero sul FlowScript di una pagina precedente alla sezione da ripetere.

Step 2

Crea una sezione che raggruppi tutte le pagine che dovranno essere ripetute ciclicamente.

Step 3

Dal menu strumenti, clicca su “IdCode – Visualizza script questionario”

Step 4

Nella riga di IdCode in cui viene assegnato il codice alla sezione, inserire l’istruzione /INDEX "{i}".

Step 5

Da impostazioni sezione, clicca sull’icona Logica e inserisci il seguente filtro su Condizione di visualizzazione.

if(Q1==1)

Note

  • Questa istruzione serve a saltare tutta la sezione nel caso il rispondente dichiari di non aver effettuato viaggi nell’ultimo anno.
  • Puoi aggiungere questa condizione di visualizzazione anche direttamente da IdCode aggiungendo /F "if(Q1==1)" alla riga della sezione.

Step 6

Crea una domanda successiva a quelle contenute nella sezione in cui si dovrà atterrare alla fine delle ripetizioni.

Nota

  • Questa domanda deve essere inserita fuori della sezione e verrà richiamata con un goto in caso si risponda “no” alla domanda Q5.

Step 7

Nell’ultima pagina della sezione attiva FlowScript dal bottone ingranaggio e aggiungi

if (Q5==1) {
{i}++;
goto(Q2);
}
else goto(Q6);

Se alla domanda Q5 viene risposto codice 1, incrementa l’indice di 1 e torna alla domanda Q2 altrimenti salta alla domanda Q6

Nota

  • Questo script riporta all’inizio della sezione (domanda Q2) fino a che l’intervistato risponde “sì” alla domanda Q5. Se intervistato risponde “no” viene processata l’istruzione “else” e quindi verrà proposta la domanda Q6.

Step 8

Clicca sull’ingranaggio impostazioni della pagina e attiva “Inserisci intestazione”.
Quindi scrivi nell’editor una descrizione dell’item a cui si riferiscono le domande della pagina, ad esempio:

Viaggio N° {i}

Nota

  • Questo step è facoltativo ma, grazie al TextPiping {i}, consente di visualizzare al rispondente a quale viaggio si riferiscono le domande poste, permettendo così una compilazione del questionario più semplice.

 

IdCode dell’intero esempio

/page P1
  <flowscript>
    {i}=1;
  </flowscript>

  Q1
  Hai fatto viaggi nell'ultimo anno?

  1 sì
  2 no

/section SEC1 /F "if(Q1==1)" /INDEX "{i}"

  /page PQ2
    viaggio n. {i}

    Q2
    Descrivi brevemente le tappe del viaggio

    1  ->TM

    Q3
    E' stato un viaggio individuale o di gruppo?

    1 individuale
    2 di gruppo

  /page PQ4
    viaggio n. {i}
    <flowscript>
      if (Q5==1){
              {i}++;
                    goto(Q2);
            }
      else goto (Q6);
    </flowscript>

    Q4 ->M
    Quali tipi di esperienze/attività hai fatto durante questo viaggio?

    1 sole e mare
    2 cultura locale (feste paesane, ecc.)
    3 attività sportive
    4 salute e benessere
    5 enogastronomia locale
    6 turismo culturale (musei, ecc.)
    7 shopping
    8 concerti musicali
    9 attività religiose
    10 business
    11 Agriturismo
    90 altro (specificare) ->T

    Q5
    Hai fatto altri viaggi?

    1 sì
    2 no

/endsection

/page PQ6

  Q6
  Fascia di età del rispondente

  1 18-24
  2 25-34
  3 35-44
  4 45-54
  5 55-64
  6 65 e oltre