Espressioni di formato

È possibile usare le espressioni in un rilevamento per controllare il comportamento predefinito delle domande. Utilizzando le espressioni nella colonna relevant, è possibile nascondere o mostrare una domanda o un gruppo di domande in base alle risposte precedenti. Quando una domanda è nascosta tramite un'espressione nella colonna relevant, nessun dato viene inviato per la domanda.

Nota:

Nell'app da campo ArcGIS Survey123, se una risposta viene inserita in una domanda che in seguito viene nascosta tramite un'espressione relevant, la risposta viene cancellata. Se la domanda torna a essere rilevante deve essere fornita una nuova risposta. Nell'app Web, la risposta non viene cancellata, quindi se la domanda torna a essere rilevante la risposta precedente verrà utilizzata.

Puoi anche applicare espressioni alla colonna readonly, che può disabilitare l'input a una domanda o a un gruppo in base al risultato dell'espressione. Anche la colonna required supporta le espressioni, consentendo al rilevamento di richiedere all'utente di rispondere a una domanda solo in condizioni specifiche.

Nota:

Le espressioni di sola lettura non sono supportate nell'app Web.

Le domande precedenti devono sempre essere indicate nelle espressioni con il formato ${field_name}.

Visibilità domanda

È possibile nascondere una domanda dalla vista con un'espressione usando la colonna body::esri:visible.. Questa colonna nasconde la domanda se l'espressione che contiene non restituisce true, mantenendo comunque i contenuti della domanda. Ad esempio, l'espressione ${edit_location}='yes' fa sì che la domanda venga visualizzata solo se la domanda edit_location è uguale a yes.

Questo comportamento è simile alla colonna relevant, con entrambe le colonne che nascondono una domanda fino a che l'espressione nella colonna restituisce true. La differenza principale è che body::esri:visible non elimina il valore di una domanda resa invisibile dall'espressione e invia i valori esistenti al feature layer. Utilizzare la colonna relevant anziché body::esri:visible quando si desidera assicurarsi che la domanda non presenti valori calcolati o memorizzati quando non è rilevante.

Quando si utilizzano le colonne body::esri:visible o relevant per controllare la visibilità delle domande, i requisiti, i valori predefiniti, i vincoli e le maschere di input vengono applicati solo quando la domanda è visibile.

È inoltre possibile controllare la visibilità delle domande usando il tipo di domanda nascosta e l'aspetto nascosto, ma questi non possono essere controllati con un'espressione.

Nota:

Le domande immagine, audio e file non possono essere nascoste dalla colonna body::esri:visible.

Espressioni semplici

Il modo migliore per utilizzare una di queste espressioni consiste nel modificare il comportamento o la visibilità della domanda, a meno che in precedenza sia stata fornita una determinata risposta. Ad esempio, la seguente espressione verifica che la risposta alla domanda precedente sia true:

${previous_question} = 'true'

Il seguente esempio verifica che la risposta alla domanda precedente sia maggiore o uguale a 100:

${previous_question} < 100

I tipi di domande select_multiple gestiscono i loro valori in modo diverso rispetto ad altri tipi di domande, con ciascuna risposta selezionata inserita nell'ordine di selezione separata da virgole. Ad esempio, selezionando le risposte A e B in questo ordine mostrerà le risposte come A,B. Per utilizzare una domanda select_multiple come parte di un'espressione, è necessario utilizzare la funzione selected. Il seguente esempio verifica che l'utente abbia risposto alla domanda precedente con A e funziona indipendentemente dalle altre risposte scelte:

selected(${previous_question}, 'A')

La funzione count-selected conta il numero di opzioni selezionate un una domanda select_multiple e fornisce un numero da utilizzare come operatore. Il seguente esempio verifica che la domanda precedente abbia avuto più di due scelte selezionate:

count-selected(${previous_question}) > 2

È possibile usare la funzione count-selected come vincolo sulle domande image o file con l'aspetto multiline, per controllare il numero di file inviati.

Espressioni matematiche

Il seguente esempio abbina più operatori e domande:

${previous_question} + ${other_previous_question} <= 100

Quando si usano gli operatori matematici, potrebbe essere necessario convertire i valori in numeri. Nell'esempio precedente, si presumeva che previous_question e other_previous_question fossero interi o decimali, ma se i tipi di domanda sono stringhe, eseguire quanto segue:

int(${previous_question}) + int(${other_previous_question}) <= 100

È anche possibile eseguire espressioni matematiche su domande date, che vengono salvate come tempo Epoch, ovvero il numero di millisecondi trascorsi dal 1° gennaio 1970. La seguente espressione rivela una domanda solo se la risposta alla domanda precedente è più di due settimane prima della data odierna:

if( ${previous_question}='',false,today() - ${previous_question} > 1000*60*60*24*15)

Espressioni regolari

Un'espressione regolare è una sequenza di caratteri utilizzata per abbinare i modelli nelle stringhe. In Survey123, se il modello viene abbinato, l'espressione restituirà true, altrimenti se il modello non viene abbinato l'espressione restituirà false.

È possibile utilizzare le espressioni regolari in qualsiasi colonna che accetti le espressioni per alterare il comportamento di una domanda, a meno che la stringa fornita da un'altra domanda sia in un dato formato. Il seguente esempio, quando posizionato nella colonna relevant, mostra solo una domanda se un'altra domanda è stata risposta con una lettera:

regex(${question},'[A-Za-z]')

Il seguente esempio, quando posizionato nella colonna choice_filter di una domanda select_one per i nomi di strade, mostrerà solo le scelte di strade contenute all'interno dell'elenco citystreets che corrispondono al nome della città selezionato in una domanda precedente denominata city:

regex(citystreets,${city})

Per ulteriori informazioni sulle espressioni regolari, consultare Formule.