Ripetizioni

Un modulo XLSForm può ripetere una raccolta di domande più volte. Esempi di ripetizioni includono i seguenti casi:

  • Acquisire più risposte alla stessa domanda in un unico rilevamento.
  • Acquisire raccolte separate più piccole di record, ad esempio nome, età e sesso di ogni membro di una famiglia.
  • Acquisire più domande di mappa in un unico rilevamento.

Ripetere per fornire risposte multiple a una stessa domanda

Quando si pubblica un rilevamento che include ripetizioni, ciascuna ripetizione viene creata come tabella correlata nel feature layer o come layer correlato se la ripetizione contiene una domanda di geopunto, geotraccia o geoforma.

Utilizzare le ripetizioni

Per ripetere una raccolta di domande e acquisire più risposte, completa i passaggi seguenti nella scheda sondaggio del foglio di calcolo:

  1. Nella riga in cui desideri iniziare la ripetizione, digita inizia ripetizione nella colonna type.
  2. Indicare un nome per la ripetizione nella colonna name.
  3. Nelle righe successive a questa voce, immetti le domande da includere nella ripetizione.
  4. Immediatamente dopo le domande, digitare end repeat nella colonna type.

Nel sondaggio viene creata una raccolta di domande che puoi aggiungere ripetutamente ai risultati del sondaggio. Per impostazione predefinita, non vi sono limitazioni al numero di ripetizioni delle domande.

Le posizioni dei punti ricavate dalla prima domanda di geopunto in una ripetizione possono essere visualizzate su qualsiasi mappa del rilevamento. Per maggiori informazioni, vedi Sovrapposizioni di punti sulle mappe.

Aspetto

Impostando il valore della colonna appearance di una domanda begin repeat su minimal, la raccolta di domande non è visibile all'avvio. L'utente dovrà fare clic sul pulsante di aggiunta per vedere le domande nella ripetizione. Ciò è utile quando le domande ripetute non devono essere completate nel rilevamento. Questo aspetto è definito nella domanda iniziale della ripetizione.

Aspetto minimal per un elemento ripetuto nell'app di campo

Se un elemento ripetuto è impostato su minimal e ha un numero di ripetizioni pari a zero, i controlli dell'elemento ripetuto e la relativa etichetta non sono visibili.

Impostando l'aspetto di una domanda begin repeat su compact, l'elemento ripetuto viene visualizzato inizialmente in uno stato compresso, che può essere espanso dall'utente. Ciò è utile per rilevamenti grandi, che possono risultare difficili da leggere o da esplorare. Questo aspetto è definito nella domanda iniziale della ripetizione.

A differenza degli altri aspetti, un elemento ripetuto può utilizzare contemporaneamente minimal e compact impostando l'aspetto su minimal compact. Le domande in una ripetizione vengono visualizzate sia in modo compresso (compatto) che nascosto (minimo).

Impostando l'aspetto di una domanda begin repeat su tabular, le domande dell'elemento ripetuto vengono visualizzate in una tabella. Per ulteriori informazioni, consulta Elementi ripetuti tabulari.

Nota:

In Survey123 Connect, puoi anche impostare i seguenti aspetti per gli elementi ripetuti nei sondaggi utilizzati con l'app di campo Survey123 o l'app Web Survey123:

  • Impostando la colonna stile nel foglio impostazioni su pagine e l'aspetto di ogni domanda begin repeat su field-list, ogni raccolta ripetibile di domande viene visualizzata su una pagina separata del rilevamento. Questo comportamento è lo stesso di quello di un gruppo.
  • Impostando la colonna stile nel foglio impostazioni su griglia fissa o griglia dinamica, le ripetizioni nel rilevamento possono essere impostate per visualizzare le domande contenute in un layout griglia. Questo comportamento è lo stesso di quello di un gruppo.

Elementi ripetuti tabulari

Nota:

Questa sezione descrive funzionalità disponibili solo in Survey123 Studio e Survey123 Mobile.

In Survey123 Connect, nell'app di campo Survey123 e nell'app Web Survey123, l'aspetto tabular e i relativi parametri XLSForm vengono ignorati.

Impostando l'aspetto di una domanda begin repeat su tabular, le domande dell'elemento ripetuto vengono visualizzate in una tabella. Nella vista tabulare, i record dell'elemento ripetuto sono presentati come righe e le domande dell'elemento ripetuto sono presentate come colonne. La vista tabulare consente di modificare i dati direttamente nelle celle e di ordinare e scorrere i record dell'elemento ripetuto.

La vista tabulare è mostrata nell'immagine seguente:

Vista tabulare di un elemento ripetuto

I callout visibili nell’immagine precedente sono dettagliati come segue:

  1. Tocca il pulsante del menu di ogni riga per accedere alle opzioni Modifica in vista modulo, Copia in nuovo record e Elimina.
  2. L'icona di sola lettura indica che una domanda (colonna) non può essere modificata nella vista tabulare.
  3. Tocca l'intestazione di una colonna per ordinare la vista tabulare in ordine crescente e, facoltativamente, esegui una delle operazioni seguenti:
    • Tocca nuovamente l'intestazione della colonna per ordinare in ordine decrescente.
    • Tocca una terza volta l'intestazione della colonna per disattivare l'ordinamento (viene ripristinato l'ordine originale delle righe). In alternativa, tocca l'intestazione di un'altra colonna per ordinare in base a tale colonna.
  4. Tocca una cella per modificarne il valore. Solo alcuni tipi di domanda possono essere modificati nella vista tabulare.
  5. Tocca il pulsante Cancella in una cella per eliminarne il valore.

Puoi anche modificare singoli record nella vista modulo. La vista modulo visualizza i singoli record dell'elemento ripetuto in un modulo di sondaggio separato e completo.

L'aspetto tabular può essere utilizzato insieme agli aspetti minimal e compact.

Per iniziare a utilizzare gli elementi ripetuti tabulari, completa i passaggi seguenti in Survey123 Studio:

  1. Imposta l'aspetto su tabular per la domanda begin repeat.

    La vista tabulare rimane vuota finché non aggiungi domande.

  2. Aggiungi una o più domande alla vista tabulare digitando showInTabularView=true in nella colonna body::esri:style per ciascuna domanda.
  3. Configura la vista tabulare con i parametri facoltativi.

Aggiungi domande alla vista tabulare

Puoi aggiungere domande alla vista tabulare digitando showInTabularView=true nella colonna body::esri:style per le domande dell'elemento ripetuto. Puoi modificare i seguenti tipi di domanda nella vista tabulare:

  • testo
  • intero
  • decimale
  • data
  • tempo
  • datetime

Tutti gli altri tipi di domanda vengono visualizzati come colonne di sola lettura nella vista tabulare.

Attenzione:

Quando aggiungi domande alla vista tabulare, tieni presente quanto segue:

  • Le domande dell'elemento ripetuto che hanno un'espressione (incluso yes) nella colonna readonly non possono essere modificate nella vista tabulare.
  • Le domande dell'elemento ripetuto che hanno un'espressione nella colonna body::esri:visible o che hanno l'aspetto hidden non vengono visualizzate nella vista tabulare.
  • Le domande dell'elemento ripetuto che hanno un'espressione nella colonna relevant non vengono visualizzate nella vista tabulare.
  • Le domande dell'elemento ripetuto che hanno un'espressione (incluso yes) nella colonna required o un'espressione nella colonna constraint vengono visualizzate nella vista tabulare. Quando una o più condizioni di required o constraint non sono soddisfatte, sopra la vista tabulare viene visualizzato un avviso generale e accanto a ogni record (riga) che presenta errori viene visualizzata un'icona di avviso. Non puoi inviare il sondaggio finché questi problemi non vengono risolti. Puoi modificare i record nella vista modulo per visualizzare i messaggi di avviso relativi a constraint e required per le singole domande. Quando l'elemento ripetuto presenta errori, l'opzione Modifica in vista modulo è disponibile anche quando il parametro editInFormView nella colonna body::esri:style è impostato su false.

Opzioni della vista tabulare

Puoi configurare le opzioni relative ai record (righe) nella vista tabulare specificando i parametri nella colonna body::esri:style per una domanda begin repeat. Questi parametri facoltativi sono descritti nella tabella seguente. Puoi aggiungere più parametri separandoli con spazi. come nell'esempio seguente:

addRecordMode=form copyToNewRecord=false

Quando imposti l'aspetto di una domanda begin repeat su tabular e non specifichi alcun parametro nella colonna body::esri:style per questa domanda, nella vista tabulare sono disponibili per impostazione predefinita le opzioni Modifica in vista modulo, Copia in nuovo record e Elimina.

ParametroDescrizione
addRecordMode

Specifica la modalità del pulsante Aggiungi recorde dell'opzione Copia in nuovo record nella vista tabulare. L'impostazione predefinita è row. Quando il valore è row, il nuovo record viene aggiunto alla vista tabulare. Quando il valore è form, il nuovo record viene aperto nella vista modulo.

Valori: row | form

Esempio:

addRecordMode=form
editInFormView

Mostra o nascondi l'opzione Modifica in vista modulo nella vista tabulare. L'impostazione predefinita è true.

Nota:

Quando l'elemento ripetuto presenta errori, l'opzione Modifica in vista modulo è abilitata anche quando il parametro editInFormView è impostato su false.

Valori: true | false

Esempio:

editInFormView=false
copyToNewRecord

Mostra o nascondi l'opzione Copia in nuovo record nella vista tabulare. Questa opzione consente agli utenti di duplicare un record nell'elemento ripetuto. L'impostazione predefinita è true. Il parametro addRecordMode determina come viene aggiunto il record duplicato.

Valori: true | false

Esempio:

copyToNewRecord=true
editInTabularView

Abilita o disabilita la modifica nella vista tabulare. L'impostazione predefinita è true. Quando il valore è false, tutte le celle nella vista tabulare sono di sola lettura.

Valori: true | false

Esempio:

editInTabularView=false

Limitazioni nell'utilizzo degli elementi ripetuti tabulari

Per gli elementi ripetuti tabulari si applicano le seguenti limitazioni:

  • L'aspetto tabular non è supportato per gli elementi ripetuti nidificati.
  • L'opzione Copia in nuovo record non copia gli allegati né gli elementi ripetuti nidificati nel nuovo record. Questo comportamento è coerente con quello adottato quando si copiano i record del sondaggio in un nuovo record dalla cartella inviati o In entrata.
  • Quando la vista tabulare è ordinata, si consiglia di non modificare i valori nella colonna a cui è applicato l'ordinamento, perché l'ordinamento viene aggiornato immediatamente a ogni pressione di un tasto.
  • Quando un elemento ripetuto tabular si trova all'interno di un gruppo che ha un'espressione relevant, la relativa vista tabulare sarà vuota quando il gruppo diventa pertinente.
  • Nelle lingue da destra a sinistra, l'ordine delle colonne nella vista tabulare non viene invertito e le intestazioni delle colonne non sono sempre allineate a destra.

Specificare il numero di record ripetuti

Nota:

Questa sezione descrive le funzionalità disponibili solo in Survey123 Connect e nell'app da campo Survey123. Queste funzionalità non sono disponibili in Survey123 Studio o Survey123 Mobile.

Per specificare il numero di record di un elemento ripetuto, imposta un numero di ripetizioni completando i passaggi seguenti:

  1. Nella riga in cui desideri iniziare la ripetizione, digita inizia ripetizione nella colonnna type della scheda rilevamento.
  2. Indicare un valore numerico per il numero di ripetizioni nella colonna repeat_count.

    Facoltativamente, specifica il nome di una domanda o un calcolo che restituisce un valore numerico.

  3. Indicare un nome per la ripetizione nella colonna name.
  4. Nelle righe successive a questa voce, immetti le domande da includere nella ripetizione.
  5. Nell'ultima riga digitare end repeat nella colonna type.

Quando un utente apre il rilevamento, appare già creato il numero di ripetizioni impostato nella colonna repeat_count. Gli utenti non possono creare o eliminare ripetizioni.

Gli utenti devono spostarsi tra tutti i record di ripetizione definiti dal valore di repeat_count prima di inviare la risposta. In caso contrario, non tutti i record di ripetizione saranno inviati, poiché le espressioni e i valori predefiniti non possono essere applicati alle ripetizioni fino a quando gli utenti si spostano sul record. Per assicurarsi che tutte le ripetizioni vengano inviate, è possibile porre domande nelle ripetizioni. Le domande negli elementi ripetuti a cui è applicata un'istruzione relevant o required condizionale non vengono valutate al momento dell'invio.

Nota:

Il comportamento di un elemento ripetuto con un numero di ripetizioni variabile è diverso a seconda che l'utente stia creando una risposta al sondaggio o modificandone una già inviata, come descritto di seguito:

  • Quando si crea una risposta al rilevamento, l'app da campo mostra un pulsante nella parte superiore della ripetizione che consente di eliminare tutti i record che superano il nuovo numero di ripetizioni che contengono dati; i record vuoti vengono eliminati automaticamente. Indipendentemente dal fatto che questo pulsante venga premuto o meno, l'invio della risposta al sondaggio invia tutti i record, ad eccezione dei record vuoti.
  • Quando si modifica una risposta al rilevamento esistente, l'app da campo mostra un messaggio nella parte superiore della ripetizione per indicare che il numero di record non corrisponde al numero di ripetizioni. È possibile aggiungere nuovi record dell'elemento ripetuto solo se allowAdds è impostato su true nella colonna bind::esri:parameters. I record in eccesso del numero di ripetizioni non possono essere eliminati, poiché l'app da campo non supporta l'eliminazione dei record di ripetizione esistenti. Le risposte ai rilevamenti modificate possono essere inviate anche quando il numero di record di ripetizione non corrisponde al numero di ripetizioni.

Funzioni aggregate

Nota:

Questa sezione descrive le funzionalità disponibili solo in Survey123 Connect e nell'app da campo Survey123. Queste funzionalità non sono disponibili in Survey123 Studio o Survey123 Mobile.

È possibile usare funzioni aggregate che restituiscono valori derivati dalle risposte nelle ripetizioni. A tal fine, una domanda all'esterno di una ripetizione fa riferimento a una domanda all'interno della ripetizione. Per esempio, la seguente formula conta le risposte a una domanda singola tra le ripetizioni:

count(${repeated_question})

Possono essere utilizzate le seguenti funzioni per aggregare le risposte:

  • count
  • sum
  • min
  • max
  • join

Queste funzioni si applicano solo alla risposta del rilevamento corrente. Non tengono in considerazione altri record nel feature layer. È anche possibile includere domande utilizzando sum e count nella ripetizione. Tuttavia, mentre i valori sum e count vengono calcolati per ogni nuovo record aggiunto all'elemento ripetuto, i calcoli relativi ai record precedenti dell'elemento ripetuto non vengono aggiornati automaticamente. Tali calcoli possono essere aggiornati manualmente utilizzando il pulsante Aggiorna accanto alla domanda. L'uso di min e max è supportato solo all'esterno della ripetizione.

Nota:

Quando utilizzate nell'app da campo Survey123, le funzioni sum, count e join possono essere collocate all'interno o all'esterno della ripetizione. Se sum, count e join devono essere utilizzate nell'app Web Survey123, devono essere collocate all'esterno della ripetizione. È possibile fare riferimento a un valore sum, count o join dall'esterno della ripetizione in un calcolo all'interno della ripetizione.

È possibile utilizzare la funzione join per concatenare le domande che restituiscono una stringa. È anche possibile utilizzare la funzione sum per collegare le domande geopoint nella ripetizione come domanda geotrace o geoshape all'esterno della ripetizione.

Per informazioni sull'utilizzo di queste funzioni, vedi Formule.

Restituire l'indice di un record di ripetizione

La funzione position(..) può essere usata per restituire una riflessione intera dell'indice del record di ripetizione in una ripetizione. Per esempio, il primo record in una ripetizione restituirà 1, il secondo restituirà 2, e così via. Nel seguente esempio la funzione position(..) è utilizzata in una domanda a intero nascosto in ripetizione:

Esempio della posizione (..) funzioni in XLSForm

Attenzione:

La funzione position(..) restituisce sempre 0 in Survey123 Mobile e nell'app di campo Survey123 oppure 1 nell'app Web Survey123 quando viene utilizzata al di fuori di un elemento ripetuto o in un gruppo che si trova all'interno di un elemento ripetuto.

È inoltre possibile usare la funzione position(..) in una espressione. Nell'esempio seguente, la funzione selected-at() usa position(..) per restituire la scelta che è stata selezionata nella domanda select_multiple alla stessa posizione del record di ripetizione corrente e visualizza la scelta nella ripetizione come una nota. La funzione selected-at() inizia a contare le scelte da zero, pertanto viene sottratto uno da position(..) per garantire che gli indici corrispondano, come segue:

selected-at(${issues}, position(..)-1)

Esempio di funzioni position(..) e selected-at() in XLSForm

È possibile utilizzare la funzione position(..) in combinazione con indexed-repeat() per estrarre i valori della domanda da record di ripetizione specifici.

Usa valori dalle ripetizioni indicizzate

Nota:

Questa sezione descrive le funzionalità disponibili solo in Survey123 Connect e nell'app da campo Survey123. Queste funzionalità non sono disponibili in Survey123 Studio o Survey123 Mobile.

La funzione indexed-repeat() può essere usata per restituire il valore da una domanda specifica in un record di ripetizione. Questo richiede il nome della domanda, il nome della ripetizione e il numero dell'indice della ripetizione, nell'ordine. L'esempio seguente restituisce la risposta alla domanda room_no per il terzo record dell'elemento ripetuto floor:

indexed-repeat(${room_no}, ${floor}, 3)

La funzione indexed-repeat() può essere usata anche per ripetizioni all'interno di ripetizioni. Se usato in questo modo, riceverà solo i valori accessibili dalla ripetizione padre visibile corrente.

Attenzione:

La funzione indexed-repeat() non può essere usata nella ripetizione a cui fa riferimento poiché si determinerebbe un riferimento circolare. Ad esempio, la seguente espressione non può essere usata per un calcolo nella ripetizione denominata defects:

indexed-repeat(${defect_type}, ${defects}, 3)

Limitazioni note

Di seguito sono indicate limitazioni note e comportamenti imprevisti quando si usano ripetizioni in Survey123:

  • Se il rilevamento contiene più ripetizioni e una di esse presenta una domanda di geopunto, geotraccia o geoforma, la denominazione delle relazioni potrebbe non essere pubblicata in ordine.
  • Le ripetizioni annidate supportano solo relazioni uno-a-molti, e ogni figlio può avere solo un genitore.
  • Le ripetizioni nidificate con un'espressione nella colonna relevant e un'espressione nella colonna repeat_count eliminano tutti i dati esistenti salvati nel primo record di ripetizione. Per evitare questo problema, incorpora l'espressione relevant nell'espressione repeat_count in modo che non venga creato alcun record dell'elemento ripetuto quando l'elemento ripetuto non è pertinente.
  • La La modifica delle singole risposte nell'app Web Survey123 o nel sito Web Survey123 non è supportata per i sondaggi che contengono elementi ripetuti nidificati.