Elementi di report condizionali

È possibile mostrare o nascondere elementi di un report in modo condizionale usando istruzioni di tipo if. L’istruzione if può essere usata digitando un’espressione nel segnaposto iniziale ${if expression}, in cui ${/} indica la fine del segmento condizionale. Di seguito, alcuni esempi di istruzioni di tipo if che possono essere usate per mostrare o nascondere parti del report:

  • ${if photo1} visualizza la sezione solo se alla domanda photo1 è stata data una risposta.
  • ${if integer1>0} visualizza la sezione solo se la risposta alla domanda integer1 è un numero positivo.
  • ${if ((geopoint1 | getValue:"y")>0)} visualizza la sezione solo se il GeoPoint si trova nell’emisfero settentrionale.
  • ${if multiple_choice1 | selected:"A"} visualizza la sezione solo se per la domanda a scelta multipla è stata selezionata l'opzione A.
  • ${if (repeat1 | getValue:"count")>=3} visualizza la sezione solo se repeat1 contiene tre o più record.

Nell'esempio seguente, il testo nella seconda riga apparirà nel report solo se si seleziona high per la domanda a scelta singola delle priorità:

${if priority | selected:"high"}
High priority issues must be addressed within seven days.
${/}

Per determinare se una risposta contiene un valore per una domanda, utilizzare solo un'istruzione if che fa riferimento direttamente al nome del campo senza altri operatori, per esempio, ${if photo1}. Questo formato garantisce che le stringhe vuote, i valori nulli e i valori indefiniti vengano considerati tutti come valori vuoti. Questo formato si applica a tipi di campo stringa, numero, data e allegato. Quando questo formato viene utilizzato con le ripetizioni, la sezione appare fintanto che c'è almeno un'istanza nella ripetizione.

Per utilizzare istruzioni condizionali per domande di tipo data e ora, eseguire i calcoli utilizzando l'ora Epoch (numero di millisecondi trascorsi dal 1° gennaio 1970). Ad esempio, ${if (date1|getValue:"") < 1602735375000} visualizza la sezione solo se il valore nel campo data è precedente al 14 ottobre 2020. La sintassi del report non ha equivalenti delle funzioni today() o now() dell'XLSForm, perciò è impossibile comporre un'istruzione condizionale per orari relativi alla stampa del report.

Le istruzioni if supportano i seguenti operatori logici:

OperatoreDescrizione

||

True se una delle due istruzioni restituisce true

&&

True se entrambe le istruzioni date restituiscono true

!

True se l'istruzione non è true

==

True se i due valori dati sono uguali tra loro

!=

True se i due valori dati non sono uguali tra loro

>

Valuta se il primo valore è maggiore del secondo valore

>=

Valuta se il primo valore è maggiore o uguale al secondo valore

<

Valuta se il primo valore è minore del secondo valore

<=

Valuta se il primo valore è minore o uguale al secondo valore

Può essere utilizzata una tabella in un report per presentare i singoli record di ripetizione o un riepilogo dei record. Per utilizzare un'istruzione condizionale per nascondere una tabella che non contiene valori, i segnaposto all'inizio e alla fine devono essere posti all'esterno della tabella, immediatamente prima e dopo della tabella. Per utilizzare un'istruzione condizionale per mostrare solo la riga di intestazione della tabella quando la tabella non contiene valori, il segnaposto di inizio deve essere posizionato all'interno della prima cella della tabella e il segnaposto di fine deve essere posizionato all'interno dell'ultima cella della tabella.