Interrogazioni di report

La funzionalità di report del sito Web Survey123 consente di creare report dettagliati delle singole risposte al rilevamento, di riassumere i dati su un certo numero di risposte e di aggregare i risultati. Questo argomento descrive come utilizzare le interrogazioni per riassumere e aggregare i risultati e presentarli in una sezione di riepilogo.

Le funzioni di riepilogo non comportano un addebito di credito superiori al costo di altri report stampati contemporaneamente.

Aggiungere una sezione di riepilogo

Per includere una sezione di riepilogo in un report, includere tag di riepilogo nel modello di report. Una sezione di riepilogo viene prodotta una sola volta se più record sono selezionati per il report, mentre il resto del modello di report viene prodotto per ogni record. Questa operazione viene effettuata utilizzando la seguente sintassi:

$<$summary>
...
$</>

Le sezioni di riepilogo possono essere collocate all'inizio e alla fine dei report, ma non possono essere inserite nei contenuti di un report. Ad esempio, se il modello include un titolo, questo titolo deve trovarsi all'interno di una sezione di riepilogo all'inizio del report o dopo la chiusura della sezione di riepilogo.

Se viene inclusa una mappa nella sezione riepilogo, stamperà tutte le geometrie di tutti i record di input su una mappa singola. È anche possibile usare sintassi aggiuntiva per specificare ulteriormente la geometria da visualizzare. Vedere l'esempio seguente:

  • ${inspectionLocation | size:400:300}: mostra tutti i record di input.
  • ${inspectionLocation | orderByFields:"creationDate DESC" | resultRecordCount:3 | size:400:300}: mostra i tre record più recenti fra tutti i record di input.
  • ${$shape | where:"1=1 !important" | drawingInfo:"currentLayer" | size:400:300}: stampa tutte le geometrie sul layer principale usando le informazioni del layer principale.
Nota:

Nella sezione riepilogo, stampare una mappa o immagine, incluso recuperare le proprietà da un file allegato eccetto il nome e la dimensione dell'allegato, è supportato solo al di fuori delle ripetizioni. Negli altri casi apparirà un messaggio di errore.

La seguente tabella contiene i metodi supportati utili per presentare le statistiche o dare forma alla presentazione dei dati del report:

MetodoDescrizioneEsempio

dove

Restituisce solo i record che soddisfano certi criteri.

${#mainLayer | where:"status='broken'"}...${/}

statistiche

Una funzione aggregata derivata da certi record nel layer.

${mainLayer | where:"status='broken'" | stats:"count,objectId"}

orderByFields

Ordina i record stampati in un report in uno o più campi in ordine crescente o decrescente.

${#mainLayer | orderByFields:"state_name ASC,POP2000 DESC"}...${/}

resultRecordCount

Imposta un numero specifico di record da stampare.

${#mainLayer | resultRecordCount:3}...${/}

returnDistinctValues

Se impostato su true, restituisce valori univoci se utilizzato con outFields. Se utilizzato con il tipo statistica count, questo metodo restituisce il conteggio dei valori univoci nel campo.

${#mainLayer | outFields:"status" | returnDistinctValues:true}...${/} o ${mainLayer | stats:"count,stateName" returnDistinctValues:true}

outFields

Utilizzato insieme a returnDistinctValues per ottenere valori univoci di un campo o combinazione di campi. Questo metodo accetta elenchi di campi separati da virgole.

${#mainLayer | outFields:"status" | returnDistinctValues:true}...${/}

Funzioni aggregate

Le sezioni di riepilogo, oltre ad accettare tutte le espressioni per modelli di report, sono ideali per l'uso di una serie di funzioni aggregate. Queste funzioni possono essere utilizzate per restituire un risultato derivato da ogni risposta stampata per il report. Non restituiscono risultati dall'intero feature layer, a meno che non venga generato un report per tutte le feature o non venga utilizzato !important il qualificatore descritto in Sintassi aggiuntiva. Le funzioni aggregate possono essere utilizzate anche nei singoli report, nonché per le ripetizioni.

Suggerimento:

Durante l'anteprima di un report, le funzioni aggregate producono risultati da ogni risposta selezionata per la stampa, anche se l'anteprima di un report di campionamento stampa solo un massimo di 20 risultati alla volta.

Per estrarre e aggregare i valori nella sezione di riepilogo, è necessario definire il layer o ripetere il nome con il nome del campo da cui si intende estrarre i valori. Tenere presente che per i rilevamenti creati nel Web designer Survey123, il nome del layer predefinito utilizzato per i rilevamenti è survey. Il nome del layer utilizzato per le risposte al rilevamento è disponibile nel riquadro Riferimento rapido disponibile nella finestra di dialogo Gestisci modelli.

Le funzioni aggregate sono controllate mediante l'uso di un filtro denominato stats. Questo filtro si comporta in modo identico alle interrogazioni di feature service e utilizza il seguente formato:

${layerName | stats:"outStatistics":"groupByFieldsForStatistics":"havingClause"}

Il parametro outStatistics definisce l'operazione statistica e il campo in uso ed è semplificato per i report riepilogativi, accettando tre parametri come elenco separato da virgole. Nell'ordine, definire quanto segue:

  • Un tipo di statistiche.
  • La domanda da cui estrarre i risultati.
  • Facoltativamente, includere un nome del campo per il calcolo risultante; in tal caso, è possibile fare riferimento al nome del campo altrove nello stesso modo di qualsiasi domanda del rilevamento.

I parametri groupByFieldsForStatistics e havingClause accettano gli stessi valori delle interrogazioni di feature service e sono opzionali. Possono essere omessi, se non sono necessari.

L'esempio seguente crea una somma di tutti i risultati forniti alla domanda denominata pop2000:

${mainLayer | stats:"sum,pop2000"}

I tipi di statistiche supportati sono i seguenti:

ValoreDescrizione

avg

Media di tutte le risposta

count

Quantità di risposte

sum

Somma totale di tutte le risposte

stddev

Deviazione standard dalla media

min

Risposta più bassa alla domanda

max

Risposta più alta alla domanda

var

Varianza dalla media

range

Intervallo di valori in tutte le risposte (massimo meno minimo)

first

Prima risposta alla domanda

last

Ultima risposta alla domanda

median

Media di tutte le risposte

È possibile impostare più parametri outStatistics separandoli con un punto e virgola. Se vengono utilizzati più parametri, l'interrogazione restituirà un array di risultati. Nel seguente esempio, sia il totale della popolazione che il reddito medio vengono calcolati e mostrati dai record nel layer principale:

${#mainLayer | stats:"sum,pop2000,populationTotal;avg,income,averageIncome"}
Population total: ${populationTotal} 
Average income: ${averageIncome}
${/}

Includere valori selezionati

I singoli valori delle domande possono essere stampati utilizzando la stessa funzionalità utilizzata per le ripetizioni nei singoli report. Costruendo un filtro per estrarre solo i valori selezionati, è possibile aumentare il riepilogo con informazioni specifiche estratte dal riepilogo.

Nota:

Se si utilizza un filtro in un singolo report, il singolo record viene utilizzato come contesto predefinito per il filtro. Potrebbe essere necessario utilizzare una sintassi aggiuntiva per produrre il risultato desiderato.

Di seguito è riportato un esempio di filtro che usa solo informazioni selezionate, seguito da spiegazioni dei singoli elementi.

Popolazione mediaNome organizzazione

${#All_Orgs | stats:"avg,POP,AvgPOP":"Org_NAME":"AVG(POP)>200" | orderByFields:"AvgPOP DESC" | resultRecordCount:5}${AvgPOP | round:2}

${Org_NAME}${/}

  • #All_Orgs: il layer specifico a cui si fa riferimento per i dati richiesti. Ciò avvia la dichiarazione di un'area in cui estrarre i dati di risposta, nonché per il filtro stats.
  • "avg,POP,AvgPOP": il parametro outStatistics per il filtro delle statistiche. In tal caso, restituisce il numero medio di risposte alla domanda denominata POP e le salva in un campo denominato AvgPOP.
  • "Org_NAME": il parametro groupByFieldsForStatistics per il filtro delle statistiche. Ciò raggruppa le risposte medie in base alle risposte alla domanda denominata Org_NAME.
  • "AVG(POP)>200": il parametro havingClause per il filtro delle statistiche. Ciò garantisce che siano incluse solo le risposte con una popolazione media superiore a 200.
  • orderByFields:"AvgPOP DESC": il filtro orderByFields elenca le risposte in base al contenuto di un campo specifico. In tal caso, le risposte sono elencate in base al campo AvgPOP creato dal parametro outStatistic, in ordine decrescente.
  • resultRecordCount:5: il filtro resultRecordCount limita le risposte solo a un numero specifico; in tal caso, 5.
  • ${AvgPOP | round:2}: il contenuto del campo AvgPOP, arrotondato due cifre decimali. Questo è l'unico elemento nella prima cella che viene visualizzato nel riepilogo; il filtro delle statistiche stesso non viene visualizzato.
  • ${Org_NAME}: il contenuto del campo Org_NAME dalle risposte al rilevamento.
  • ${/}: termina la dichiarazione di un'area in cui estrarre i dati di risposta. Poiché tutte queste informazioni sono solo in una tabella, sia l'inizio che la fine di quest'area devono essere dichiarate all'interno della stessa tabella.

Il risultato di questo filtro visualizza cinque righe di risposte nella tabella, aggiungendo le righe extra necessarie. Il rapporto riepilogativo risultante sarà simile al seguente:

Popolazione mediaNome organizzazione

2360,23

A

1639,75

C

1179,7

B

915,93

D

795,57

E

Sintassi aggiuntiva

Oltre ai parametri precedenti utilizzati per impostare un filtro per il rilevamento, esistono altri parametri e qualificatori che possono essere utilizzati per migliorare l'interrogazione.

  • where: una clausola SQL WHERE legale che opera nei campi del layer.
    • Un valore esplicito: ad esempio, where:"weather='sunny'" farà in modo che il filtro utilizzi solo le risposte in cui il campo weather è esattamente il valore sunny.
    • I contenuti di un campo: ad esempio, where:"weather='"+cloudCover+"'" utilizzerà i contenuti del campo cloudCover come requisito per il campo weather.
    • Parametri aggiuntivi: ad esempio, where:"weather='"+cloudCover+"' AND temperature='high'" utilizzerà le risposte in cui il tempo corrisponde al campo cloudCover e il campo temperatura corrisponde esattamente al valore high.
  • !important: questo qualificatore può essere aggiunto a qualsiasi filtro diverso da resultRecordCount per sovrascrivere eventuali vincoli sui valori restituiti dal filtro. Ad esempio, se si sono stampati report solo negli ultimi sette giorni, where:"weather='sunny' !important" fa in modo che il filtro utilizzi solo le risposte in cui il campo weather corrisponde esattamente al valore sunny, ma estrae da tutte le risposte applicabili nel feature layer, anziché solo le risposte selezionate per la stampa.
  • $inputParams: questo segnaposto può essere utilizzato in qualsiasi filtro diverso da resultRecordCount per fare riferimento ai parametri impostati sul sito Web Survey123 durante la stampa di un report. Questi parametri possono quindi essere ulteriormente qualificati per restringere la risposta. Ad esempio, orderByFields:"$inputParams, objectid DESC" ordina i campi utilizzando il set di ordinamento nel sito Web Survey123, quindi in senso decrescente per il valore ID dell'oggetto per tutti i campi con parametri corrispondenti. È inoltre possibile utilizzare $inputParams per applicare questi parametri alle ripetizioni.
Nota:

Se where viene utilizzato con altri filtri, essi devono essere implementati nel seguente ordine: where, stats, orderByFields, resultRecordCount.