Consultas de informes

La funcionalidad de informe del sitio web de Survey123 le permite crear informes detallados de respuestas de encuestas individuales, resumir sus datos en varias respuestas y agregar resultados. Este tema describe cómo utilizar consultas para resumir y agregar resultados y presentarlos en una sección de resumen.

Las funciones de resumen no consumen créditos más allá del coste de algún informe impreso al mismo tiempo.

Agregar una sección de resumen

Para agregar una sección de resumen a un informe, incluya etiquetas de resumen en su plantilla de informe. Solo se producirá una sección de resumen cuando se hayan seleccionado varios registros para el informe, mientras que el resto de la plantilla de informe se producirá para cada registro. Para realizarlo se utiliza la siguiente sintaxis:

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

Las secciones de resumen se pueden colocar al inicio y al final de los informes, pero no se pueden colocar dentro del contenido de un informe. Por ejemplo, si su plantilla incluye un título, este título debe estar dentro de una sección de resumen al inicio del informe o después de cerrar la sección de resumen.

Si se incluye un mapa en una sección de resumen, imprimirá todas las geometrías de todos los registros de entrada en un único mapa. También puede utilizar la Sintaxis adicional para especificar aún más la geometría que se muestra. Vea el siguiente ejemplo:

  • ${inspectionLocation | size:400:300}: muestra todos los registros de entrada.
  • ${inspectionLocation | orderByFields:"creationDate DESC" | resultRecordCount:3 | size:400:300}: muestra los tres registros más recientes entre todos los registros de entrada.
  • ${$shape | where:"1=1 !important" | drawingInfo:"currentLayer" | size:400:300}: imprime todas las geometrías de la capa principal usando la información de dibujo de la capa principal.
Nota:

En una sección de resumen, la impresión de un mapa o imagen, incluida la recuperación de propiedades de un archivo adjunto, excepto el nombre y el tamaño del adjunto, solo se admite fuera de repeticiones. De lo contrario, aparecerá un mensaje de error.

La tabla que aparece a continuación contiene los métodos admitidos que resultan útiles a la hora de presentar estadísticas o dar forma a la presentación de los datos de su informe:

MétodoDescripciónEjemplo

donde

Devuelve solo los registros que satisfacen un determinado criterio.

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

stats

Una función agregada derivada de ciertos registros de la capa.

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

orderByFields

Ordena los registros impresos de un informe por uno o varios campos, en orden ascendente o descendente.

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

resultRecordCount

Establece un número específico de registros que se desea imprimir.

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

returnDistinctValues

Si se cambia a true, devuelve valores únicos si se utiliza con outFields. Si se utiliza con el tipo estadístico count, este método devuelve el recuento de valores únicos presentes en el campo.

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

outFields

Utilícelo junto con returnDistinctValues para obtener valores únicos de un campo o una combinación de campos. Este método acepta una lista de campos separada por comas.

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

Funciones de agregación

Las secciones de resumen, además de aceptar todas las expresiones para las plantillas de informe, son ideales para el uso de varias funciones de agregación. Estas funciones se pueden utilizar para devolver un resultado derivado de cada respuesta impresa para el informe. No devuelven resultados de toda la capa de entidades, a menos que se genere un informe para todas las entidades o se utilice el calificador !important descrito en Sintaxis adicional. Las funciones de agregación también se pueden utilizar en informes individuales, así como en repeticiones.

Sugerencia:

Al obtener una vista previa de un informe, las funciones de agregación generan resultados de cada respuesta seleccionada para imprimir, aunque los informes de ejemplo de vista previa solo imprimen un máximo de 20 resultados a la vez.

Para extraer y agregar valores en la sección de resumen, debe definir la capa o el nombre de repetición con el nombre de campo desde el que desea extraer los valores. Tenga en cuenta que para las encuestas creadas en el diseñador web Survey123, el nombre de capa predeterminado utilizado para las encuestas es survey. El nombre de capa utilizado para las respuestas de la encuesta se puede encontrar en la Referencia rápida disponible en el cuadro de diálogo Administrar plantillas.

Las funciones de agregación se controlan mediante el uso de un filtro llamado stats. Este filtro se comporta de forma idéntica a las consultas del servicio de entidades y utiliza el siguiente formato:

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

El parámetro outStatistics define la operación estadística y el campo que se utiliza, y se simplifica para los informes de resumen, aceptando tres parámetros como una lista separada por comas. En orden, defina lo siguiente:

  • Un tipo de estadísticas.
  • La pregunta de la que desea extraer los resultados.
  • Opcionalmente, incluya un nombre de campo para el cálculo resultante; si se hace, el nombre de campo se puede mencionar en cualquier otro lugar del mismo modo que cualquier pregunta de encuesta.

Los parámetros groupByFieldsForStatistics y havingClause aceptan los mismos valores que con las consultas de servicio de entidades y son opcionales. Se pueden omitir si no se necesitan.

El siguiente ejemplo crearía una suma de todos los resultados proporcionados a la pregunta llamada pop2000:

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

Los tipos de estadísticas compatibles son los siguientes:

ValorDescripción

avg

Media de todas las respuestas

count

Cantidad de respuestas

sum

Suma total de todas las respuestas

stddev

Desviación estándar del valor medio

min

Respuesta más baja a la pregunta

max

Respuesta más alta a la pregunta

var

Varianza del valor medio

range

Rango de valores del conjunto de todas las respuestas (máximo menos mínimo)

first

Primera respuesta a la pregunta

last

Última respuesta a la pregunta

median

Mediana de todas las respuestas

Se pueden establecer varios parámetros outStatistics separándolos con un punto y coma. Si se utilizan varios parámetros, la consulta generará un conjunto de resultados. En el siguiente ejemplo, tanto el total de población como el promedio de ingresos se calculan y se muestran a partir de los registros de la capa principal:

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

Incluir valores seleccionados

Los valores individuales de las preguntas se pueden imprimir utilizando la misma funcionalidad utilizada para las repeticiones en informes individuales. Al construir un filtro para extraer solo los valores seleccionados, puede ampliar su resumen con información específica extraída de su encuesta.

Nota:

Si utiliza un filtro en un informe individual, el registro individual se utiliza como contexto predeterminado para su filtro. Es posible que tenga que utilizar sintaxis adicional para producir el resultado que desea.

A continuación, se muestra un ejemplo de un filtro que solo utiliza información seleccionada, seguida de explicaciones de sus elementos individuales.

Población mediaNombre de organización

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

${Org_NAME}${/}

  • #All_Orgs: la capa específica a la que se hace referencia para los datos requeridos. Con ello, se inicia la declaración de un área en la que extraer los datos de respuesta, así como para el filtro stats.
  • "avg,POP,AvgPOP": el parámetro outStatistics para el filtro de estadísticas. En este caso, devuelve el número medio de respuestas a la pregunta llamada POP y las guarda en un campo llamado AvgPOP.
  • "Org_NAME": el parámetro groupByFieldsForStatistics para el filtro de estadísticas. Esto agrupará la media de respuestas según las respuestas a la pregunta llamada Org_NAME.
  • "AVG(POP)>200": el parámetro havingClause para el filtro de estadísticas. Esto garantiza que solo se incluyan las respuestas con una población media superior a 200.
  • orderByFields:"AvgPOP DESC": el filtro orderByFields enumera las respuestas en función del contenido de un campo específico. En este caso, las respuestas se enumeran según el campo AvgPOP creado por el parámetro outStatistic, en orden descendente.
  • resultRecordCount:5: el filtro resultRecordCount limita las respuestas solo a un número específico, en este caso, a 5.
  • ${AvgPOP | round:2}: el contenido del campo AvgPOP redondeado a dos decimales. Este es el único elemento de la primera celda que se mostrará en el resumen; el filtro de estadísticas en sí no se mostrará.
  • ${Org_NAME}: contenido del campo Org_NAME respecto a las respuestas de la encuesta.
  • ${/}: termina la declaración de un área en la que extraer datos de respuesta. Dado que toda esta información solo está en una tabla, tanto el inicio como el final de esta área se deben declarar dentro de la misma tabla.

El resultado de este filtro mostrará cinco filas de respuestas en la tabla, agregando las filas adicionales que necesita. El informe de resumen resultante tendrá un aspecto similar al siguiente:

Población mediaNombre de organización

2360,23

A

1639,75

C

1179,7

B

915,93

D

795,57

E

Sintaxis adicional

Además de los parámetros anteriores utilizados para crear un filtro para la encuesta, existen parámetros y calificadores adicionales que se pueden utilizar para mejorar la consulta.

  • where: una cláusula WHERE de SQL legal que funciona en los campos de la capa.
    • Un valor explícito: por ejemplo, where:"weather='sunny'" hará que el filtro utilice únicamente respuestas en las que el campo weather sea exactamente el valor sunny.
    • El contenido de un campo: por ejemplo, where:"weather='"+cloudCover+"'" utilizarán el contenido del campo cloudCover como requisito para el campo weather.
    • Parámetros adicionales: por ejemplo, where:"weather='"+cloudCover+"' AND temperature='high'" utilizará respuestas en las que el tiempo coincida con el campo cloudCover y el campo de temperatura sea exactamente el valor high.
  • !important: este calificador se puede agregar a cualquier filtro excepto resultRecordCount para invalidar cualquier restricción de los valores que devuelve el filtro. Por ejemplo, si estuviera imprimiendo informes solo de los últimos siete días, where:"weather='sunny' !important" provocaría que el filtro solo utilice respuestas en las que el campo weather es exactamente el valor sunny, pero deriva de todas las respuestas aplicables en la capa de entidades, en lugar de solo las respuestas seleccionadas para imprimir.
  • $inputParams: este marcador de posición se puede utilizar dentro de cualquier filtro excepto resultRecordCount para hacer referencia a los parámetros que defina en el sitio web de Survey123 al imprimir un informe. Estos parámetros se pueden calificar aún más para limitar su respuesta. Por ejemplo, orderByFields:"$inputParams, objectid DESC" ordenará los campos utilizando el orden definido en el sitio web de Survey123 y, a continuación, en orden descendente por el valor de Id. de objeto de todos los campos con parámetros coincidentes. También puede utilizar $inputParams para aplicar estos parámetros a las repeticiones.
Nota:

Si where se utiliza con otros filtros, se deben implementar en el orden siguiente: where, stats, orderByFields, resultRecordCount.