Plantillas de informe

La funcionalidad de generación de informes del sitio web Survey123 permite diseñar sus propias plantillas personalizadas y producir varios informes a la vez.

Un informe puede contener lo siguiente:

  • Una sección de resumen
  • Un único registro de encuesta
  • Un único registro de encuesta y una sección de resumen
  • Varios registros de encuesta
  • Varios registros de encuesta y una sección de resumen
Nota:

La impresión de informes es un servicio Premium de ArcGIS Online y consume créditos. Para obtener más información, consulte Imprimir informes.

La impresión de informes en ArcGIS Enterprise no consume créditos, pero tiene limitaciones.

La plantilla de informe es un archivo de Microsoft Word (.docx) que proporciona texto de marcador de posición con una sintaxis específica. Al imprimir un informe, este texto marcador de posición se reemplaza con el contenido de los campos correspondientes de la respuesta a la encuesta. Este texto marcador de posición puede usarse con cualquier formato, tablas, imágenes u otras personalizaciones para crear una plantilla específica para sus necesidades.

Para crear una plantilla, haga clic en el botón Informe de la barra situada sobre el mapa, en la pestaña Datos y haga clic en Administrar plantillas. Aparece una nueva ventana que permite descargar un ejemplo, cargar una nueva plantilla o editar el nombre y el resumen de una plantilla existente. Haga clic en Nueva plantilla para cargar una nueva plantilla de informe y, a la vez, proporcione un nombre y un resumen para su plantilla una vez cargada. Como alternativa, puede usar el vínculo Descargar una plantilla de muestrapara descargar una plantilla de muestra basada en su encuesta.

Nota:

Solo el propietario de la encuesta y los administradores de la organización pueden cargar plantillas de informe.

Al compartir los resultados de una encuesta con todos, una organización o un grupo, también se compartirán las plantillas de informes asociadas con la encuesta.

Expresiones

La respuesta a una pregunta se puede mostrar en una plantilla de informe proporcionando su nombre entre llaves, como { y }, y precedido de un signo de dólar. Cualquier valor de cadena de caracteres incluido en una expresión debe incluirse en comillas dobles.

Lo siguiente mostraría la respuesta de una pregunta de texto llamada firstname.

${firstname}

Además de mostrar la respuesta a una pregunta en un informe, pueden utilizarse palabras clave para mostrar otros datos de utilidad. Lo siguiente mostraría la fecha y hora actuales al imprimir un informe:

${$date}

Si el resultado es una matriz, la matriz se puede iterar utilizando # como etiqueta inicial y / como etiqueta final dentro de las llaves. Lo siguiente imprimiría todos los archivos de imagen en líneas separadas:

${#image1}
${$file}
${/}

También puede utilizar expresiones para precisar cómo se muestran las respuestas. Una expresión puede ser un solo nombre de pregunta o una palabra clave (como en el caso anterior), un cálculo que incluya una o varias preguntas o palabras clave, o un nombre de pregunta o palabra clave con métodos y parámetros para restringir o aplicar estilo a la respuesta. Una expresión utiliza la siguiente notación:

${questionname or keyword | method:parameter}

Una expresión puede incluir varios métodos y parámetros o ninguno. Los parámetros pueden ser valores de otras preguntas o un valor fijo.

La siguiente expresión mostraría el cálculo de una pregunta numérica denominada floweringtrees dividida entre una pregunta numérica denominada totaltrees. Cuando se hace referencia a varias preguntas en la misma expresión, los nombres de las preguntas individuales solo tienen que nombrarse directamente y no necesitan llaves adicionales.

${floweringtrees / totaltrees}

La siguiente expresión mostraría el valor de la coordenada x de la pregunta de ubicación, donde getValue es el método y x es el parámetro.

${location | getValue:"x"}

La siguiente expresión se evaluaría como verdadero si la respuesta a una pregunta denominada fruitcolor no es igual a rojo.

${if fruitcolor!="red"}The fruit is not red.${/}

Las cadenas pueden concatenarse en una expresión uniéndolas mediante el signo más. Esta expresión utiliza la concatenación para pasar el contenido de una pregunta field_0 a un servicio de generación de códigos QR, con lo que se crea un código QR para la respuesta a la pregunta.

${$image | src:"https://barcode.tec-it.com/barcode.ashx?code=QRCode&data="+field_0}

No todos los tipos de preguntas admiten expresiones y métodos. La siguiente tabla enumera qué métodos y parámetros puede utilizar con los diferentes tipos de preguntas.

MétodoParámetrosTipo de pregunta de ConnectTipo de pregunta del diseñador webDescripción

getValue

-

Todos los tipos de preguntas

Todos los tipos de preguntas

Recupera el valor de datos sin procesar de la capa de entidades o la imagen sin procesar de un adjunto.

getValue

x, y, z, wkid

geopunto

Mapa

Recupera las coordenadas x, y, z individualmente en una referencia espacial especificada. El parámetro wkid es opcional y será igual que la referencia espacial de la capa de entidades si se omite.

getValue

longitud, área, unidad, tipo de medición

geotrace, geoshape

Mapa

Devuelve la longitud de una polilínea, o el perímetro o área de un polígono, en unidades determinadas y si las mediciones son planares o geodésicas. El tipo de medición predeterminado es geodésico.

getValue

nombre, tamaño

imagen, audio, archivo

Imagen, Firma, Audio, Archivo

Devuelve el nombre o el tamaño de archivo de un adjunto.

getValue

ancho, altura, x, y, fecha, hora, dirección

imagen

Imagen, firma

Ancho y altura devuelven el valor entero del ancho y la altura de la imagen en píxeles, y x, y, fecha, hora y dirección devuelven valores leídos desde el EXIF de la imagen si están presentes.

getValue

recuento

iniciar repetición, imagen, audio, archivo

Repetir, Imagen, Firma, Audio, Archivo

Devuelve el número total de repeticiones o elementos adjuntos.

getValue

posición

iniciar repetición, imagen, audio, archivo

Repetir, Imagen, Firma, Audio, Archivo

Devuelve un entero igual a la posición indexada 1 en la matriz.

getValue

duración

audio, archivo

Audio, Archivo

Devuelve la duración de las grabaciones de audio en segundos.

Precaución:

La duración no se devolverá en las respuestas recopiladas en la aplicación web al usar Safari.

apariencia

multilínea

texto

Texto de varias líneas

Se utiliza para conservar los saltos de línea en la cadena de caracteres. Si no se especifica ninguna apariencia, la respuesta devuelve una cadena de una sola línea.

apariencia

viñetas

select_multiple

Selección múltiple

Devuelve la respuesta en formato viñeta.

verificado

nombre de opción

select_one, select_multiple

Selección múltiple, Selección única, Cuadrícula de selección única, Desplegable, Escala de Likert, Calificación

Devuelve una casilla de verificación activada si el valor de campo es igual al nombre de opción; de lo contrario, devuelve una casilla de verificación desactivada.

seleccionado

nombre de opción

select_one, select_multiple

Selección múltiple, Selección única, Cuadrícula de selección única, Desplegable, Escala de Likert, Calificación

Si existe un dominio de valor codificado, devuelve true si el valor de campo es igual al nombre de opción; de lo contrario, devuelve false.

countSelected

-

select_one, select_multiple

Selección múltiple, Selección única, Cuadrícula de selección única, Desplegable, Escala de Likert, Calificación

Devuelve el número de opciones seleccionadas.

selectedAt

índice

select_one, select_multiple

Selección múltiple, Selección única, Cuadrícula de selección única, Desplegable, Escala de Likert, Calificación

Devuelve la cadena de caracteres en la posición del índice en la lista de opciones. El índice comienza en cero.

regional

código de idioma

fecha, dateTime, comienzo, fin, decimal

Fecha, Fecha y hora, Número

Devuelve fecha, hora y número localizados.

formato

cadena de formato

fecha, dateTime, entero, decimal, comienzo, fin

Fecha, Fecha y hora

Devuelve una cadena de caracteres de fecha con formato.

utcOffset

valor de desplazamiento

fecha, dateTime, comienzo, fin

Fecha, Fecha y hora

Devuelve un valor de fecha o de fecha y hora que se desplaza por el valor de desplazamiento UTC.

mapSettings

Id. de elemento de mapa web, escala de mapa

geopunto, geotrace, geoshape

Mapa

Especifica el mapa base y la escala al imprimir la imagen de mapa.

Heredado:

Reemplazado por mapa y mapScale.

mapExtent

xmín, ymín, xmáx, ymáx, wkid

geopunto, geotrace, geoshape

Mapa

Especifica la extensión de mapa fija al imprimir la imagen de mapa. El parámetro wkid es opcional y se establecerá en 4326 (WGS 1984) si se omite.

mapa

Id. de elemento de mapa web

geopunto, geotrace, geoshape

Mapa

Especifica el mapa base al imprimir la imagen de mapa.

mapScale

escala de mapa

geopunto, geotrace, geoshape

Mapa

Especifica la escala del mapa al imprimir la imagen de mapa.

mapFilters

Id. de capa en los parámetros de consulta, JSON del mapa web

geopunto, geotrace, geoshape

Mapa

Especifica uno o varios filtros de las capas de entidades de un mapa web al imprimir la imagen del mapa.

rotar

grados

geopoint, geotrace, geoshape, image

Mapa, imagen

Especifica el ángulo de rotación del mapa o la imagen.

drawingInfo

currentLayer, URL de capa de entidades

geopunto, geotrace, geoshape

Mapa

Especifica la información del dibujo al imprimir la imagen de mapa, incluidos el símbolo, la etiqueta y la transparencia.

src

URL de la imagen

-

-

Especifica la URL de origen de un elemento de imagen dinámico.

tamaño

ancho, altura, ancho máximo, altura máxima

imagen

Imagen

Especifica el tamaño de la imagen impresa.

redondear

lugares

decimal, geopoint, geoshape, geotrace

Número

Redondea un número decimal las posiciones decimales especificadas.

useGrouping

booleano

decimal

Número

Si es true, devuelve un número con separadores de agrupación determinados por la configuración regional; de lo contrario, si es false, no se utilizan separadores.

toFixed

lugares

decimal, geopoint, geoshape, geotrace

Número

Especifica una cantidad de dígitos fija después del separador decimal. Rellena con ceros si es necesario para tener un número fijo de dígitos.

En la tabla siguiente se enumeran todas las palabras clave que pueden utilizarse en una expresión.

Palabra claveDescripción

$date

Inserta la fecha y hora actuales al imprimir un informe. De forma predeterminada, muestra la fecha actual en el formato de la configuración regional actual.

Ejemplos:

${$date | format:"MM/DD/YYYY"}
$($date | utcOffset:"+08:00"}
$($date | locale:"zh-cn"}

$image

Inserta un elemento de imagen en el informe. Utilice el método src para especificar la URL de la imagen.

Ejemplo:

${$image | src:"https://upload.wikimedia.org/wikipedia/commons/1/13/Esri_Headquarters%2C_Building_Q.jpg"}

$map

Inserta un elemento de mapa en el informe sin hacer referencia a una pregunta de la encuesta.

Ejemplo:

${$map | map:"10df2279f9684e4a9f6a7f08febac2a9" | mapScale:4000000 | size:200:100}

$shape

Imprime la geometría (punto, polilínea o polígono) de la entidad actual en un mapa.

Ejemplos:

${$shape}
${$shape | map:"10df2279f9684e4a9f6a7f08febac2a9" | mapScale:4000000 | size:200:100}

$attachment

Representa el primer archivo adjunto, o todos los archivos adjuntos de la entidad actual.

Ejemplos:

${$attachment | getValue:"name"}
${$attachment | getValue:"size"}
${$attachment | size:200:300}

Para iterar todos los adjuntos, incluya etiquetas de inicio y fin:

${#$attachment}
${$file}
${/}

$file

Representa el archivo actual cuando se iteran varios archivos de una pregunta de encuesta adjunta o archivos adjuntos de una entidad.

Ejemplos:

${#image1}
${$file | size:460:0}
{/}

${#$attachment}
${$file | getValue:"position"}. ${$file | getValue:"name"}
${/}

$feature

Representa la entidad actual dentro de una matriz de entidades.

Ejemplo:

{#repeat1}
{$feature | getValue: "position"}
{/}

$layers["<layername>"] o

$layers[<layerId>]

Hace referencia a cualquier capa por nombre o ID en el mismo servicio de entidades que la capa de la encuesta.

Ejemplos:

${$layers["cities"] | where:”1=1 !important” | stats:”count,objectid”}
${#$layers["states"]}...${/}

En la ventana Administrar plantillas, seleccione Referencia rápida para abrir una página que contiene una sintaxis de ejemplo para que las expresiones modifiquen la respuesta que se muestra en un informe para cada pregunta de la encuesta. Para copiar esta sintaxis, haga clic en el botón Copiar al portapapeles y pegue la sintaxis en un documento de plantilla. Una vez cargada una plantilla, utilice las opciones del panel Informe para generar el informe. Para obtener más información, consulte Imprimir informes.

Referencia rápida de informe con ejemplos de sintaxis

En las secciones siguientes se describen escenarios de uso común de expresiones para cada tipo de pregunta y se proporcionan ejemplos.

Texto

Las preguntas de texto de varias líneas, ya sean creadas al agregar una pregunta Texto de varias líneas en el diseñador web de Survey123 o al utilizar la apariencia multiline para una pregunta de texto en Survey123 Connect, ignorarán los retornos de carro de forma predeterminada y mostrarán la respuesta en un solo bloque de texto. Puede usar expresiones para mostrar la respuesta a la pregunta con retornos de carro de la siguiente forma:

${multilinetext1 | appearance:"multiline"}

Coloque esta expresión en una línea dedicada; de lo contrario, se producirán errores.

Números

Es posible utilizar operadores matemáticos básicos con preguntas numéricas para realizar sumas, restas, multiplicaciones o divisiones, o bien para hallar el módulo de las respuestas a estas preguntas. A continuación, se muestran algunos ejemplos:

${number1 - 15}

${number1 * 6}

${number1 / number2}

${number1 % number2}

Sugerencia:

Si la expresión contiene una expresión matemática compleja, plantéese utilizar corchetes para asegurarse de que la generación del informe produzca el resultado esperado.

En las preguntas de decimales, la expresión round se puede utilizar para establecer un número máximo de posiciones decimales a las que redondear el valor. En el siguiente ejemplo se redondea el número 3,141592 a las cuatro posiciones decimales de 3,1416:

${decimal1 | round:4}

La expresión toFixed se puede utilizar para establecer un número máximo de posiciones decimales a las que redondear el valor. En el siguiente ejemplo se corrige el número de posiciones decimales de 3,14 a 3,140:

${decimal1 | toFixed:3}

Puede utilizar la expresión de formato para mostrar la respuesta a una pregunta numérica de una forma específica utilizando caracteres de marcador de posición. Se admiten los siguientes caracteres de marcador de posición.

CarácterDescripción

.

Separador decimal.

,

Si se coloca en el formato, agrega separadores de grupo con el tamaño del grupo determinado por el número de dígitos que hay entre el primer marcador de posición del separador de grupo y el marcador de posición de punto decimal o el final de la expresión. Si no se agrega, no se utilizan separadores de grupo.

0

Dígitos requeridos. Si la respuesta tiene menos dígitos que el número requerido de dígitos, se rellenará con ceros.

#

Dígitos opcionales. Si la respuesta tiene más dígitos que la cantidad de dígitos proporcionada, el número se redondeará.

Sugerencia:

Los separadores decimal y de miles se mostrarán en el resultado impreso en función de la configuración regional elegida.

El siguiente ejemplo devuelve la respuesta a un máximo de tres posiciones decimales con separadores de miles, si es necesario.

${decimal1 | format:"#,##0.###"}

Imágenes y otros adjuntos

En las preguntas de imagen, es posible definir tamaños para asegurarse de que sus informes presenten imágenes de un tamaño uniforme. El formato de estas expresiones es el siguiente:

${image1 | size:width:height:max_width:max_height}

Los valores de ancho y alto controlan el tamaño definido para su imagen, medido en píxeles. Aunque estos valores son obligatorios en la expresión, si indica el valor 0 en una dimensión de su imagen, no habrá restricción en esa dimensión. Por ejemplo, la siguiente expresión obliga a que la anchura de su imagen sea de 300 píxeles, conservando al mismo tiempo la relación de aspecto de la imagen:

${image1 | size:300:0}

Los valores de altura y anchura máximas limitan el tamaño máximo de una imagen y son valores opcionales. El siguiente ejemplo obliga a que la anchura de la imagen sea de 300 píxeles, pero restringe la altura de la imagen a no más de 200 píxeles:

${image1 | size:300:0:0:200}

Puede utilizar el método rotate para definir la rotación en el sentido de las agujas del reloj de la imagen. Acepta valores del 0 al 360.

${image1 | size:300:0:0:200 | rotate:90}

A las preguntas de imagen también se les pueden extraer detalles de imagen, los cuales se pueden mostrar en una respuesta de encuesta. Esto se puede utilizar para visualizar el nombre de archivo y el tamaño de la imagen, como se indica a continuación:

${image1 | getValue:"name"}

${image1 | getValue:"size"}

${image1 | getValue:"width"}

${image1 | getValue:"height"}

Puede aplicar el mismo método para visualizar los datos EXIF de la imagen, que muestran la información sobre la fecha y el lugar en que se tomó la foto, como se indica a continuación:

${image1 | getValue:"x"}

${image1 | getValue:"y"}

${image1 | getValue:"date"}

${image1 | getValue:"time"}

${image1 | getValue:"direction"}

Para mostrar la imagen original en calidad y tamaño completos, use la expresión sin ningún método, o use la expresión getValue sin ningún valor:

${image1} o ${image1 | getValue:""}

Para mostrar la imagen original en calidad completa pero con un tamaño definido, utilice las expresiones getValue y size juntas.

${image1 | getValue:"" | size:300:0}

Nota:

Si va a configurar el tamaño de imagen y va a utilizar cualquier otro parámetro de expresión, size debe estar situado en último lugar en la expresión.

Las fechas y las horas se almacenan como cadenas de caracteres en los datos EXIF, por lo que estos valores no se pueden formatear en un informe utilizando la expresión format para las preguntas de fecha y hora. Si es importante dar formato a estos valores, considere la posibilidad de realizar la extracción EXIF como parte de la encuesta utilizando la función pulldata("@exif"). Para obtener más información, consulte Imágenes.

Las expresiones getValue anteriores también se pueden utilizar para extraer datos de cualquier propiedad válida de cualquier tipo de adjunto, incluidos los resultados de las preguntas de imagen, audio y archivo. Las propiedades que se pueden extraer de todos los adjuntos son las siguientes:

${file1 | getValue:"name"}

${file1 | getValue:"size"}

${file1 | getValue:"globalId"}

${file1 | getValue:"id"}

${file1 | getValue:"contentType"}

${file1 | getValue:"keywords"}

Si todos los adjuntos de la entidad son imágenes, utilice los siguientes marcadores de posición, situando cada uno en una línea dedicada:

${#$attachment}
${$file}
${/}

Para devolver varias imágenes enviadas a la misma pregunta en una respuesta, utilice el nombre de la pregunta de imagen en lugar de $attachment:

${#image1}
${$file}
${/}

Este método resulta útil a la hora de mostrar imágenes en versiones de ArcGIS Enterprise anteriores a la 10.8.1 o para visualizar imágenes agregadas a una entidad fuera de Survey123. El siguiente ejemplo muestra los nombres de archivo de todos los adjuntos de una entidad:

${#$attachment}
${$file|getValue:"name"}
${/}

Para mostrar una imagen en línea, proporcione su dirección URL de origen con la expresión src al hacer referencia a la palabra clave $image en lugar de un nombre de pregunta:

${$image |
src:"https://upload.wikimedia.org/wikipedia/commons/1/13/Esri_Headquarters%2C_Building_Q.jpg"
| size:400:0}

Mapa

Todas las preguntas que utilizan un mapa (incluidas geopoint, geotrace y geoshape) tienen métodos y parámetros comunes que puede utilizar para modificar su presentación en informes.

De forma predeterminada, un mapa de un informe utilizará el mapa web definido para la pregunta. Si la escala del mapa se establece en 0 o se omite el parámetro, la escala del mapa está determinada por las entidades del mapa de la siguiente manera:

  • Si solo hay una entidad de puntos en el mapa, la escala de mapa coincide con la escala definida para la pregunta.
  • Si solo hay una entidad poligonal o de línea en el mapa, la escala de mapa viene determinada por la extensión de la entidad.
  • Si hay varias entidades en el mapa, la escala viene determinada por la extensión de todas las entidades.

Las preguntas de mapa admiten la definición del Id. de elemento del mapa web y la escala de mapa como parámetros opcionales. En el siguiente ejemplo, se utiliza una escala de mapa de 1:100.000:

${location | map:"7e2b9be8a9c94e45b7f87857d8d168d6" | mapScale:100000}

Para todas las preguntas de mapa, puede utilizar el método rotate para definir la rotación en el sentido de las agujas del reloj rumbo norte en relación con la vista. Acepta valores del 0 al 360.

${location | map:"7e2b9be8a9c94e45b7f87857d8d168d6" | mapScale:100000 | rotate:90}

Si deja el Id. de elemento de mapa web como una cadena vacía, se utiliza el mapa base predeterminado de la pregunta. Si establece la escala del mapa en 0 u omite este parámetro, el mapa utilizará la extensión predeterminada establecida para la pregunta.

El método mapExtent se puede utilizar para establecer explícitamente la extensión de un mapa en un informe. En el siguiente ejemplo, se muestra una extensión de mapa fija de Tokio (Japón):

${location | mapExtent:139.7:35.6:139.9:35.8:4326}

Las preguntas de mapa también admiten la expresión de tamaño disponible para las preguntas de imagen. Puede utilizar esta expresión para controlar la resolución del mapa mostrado en el informe, como se puede ver en el siguiente ejemplo:

${location | size:400:400}

Puede utilizar las expresiones map, mapScale y size juntas para proporcionar un Id. de mapa web y una escala de mapa, así como una resolución de imagen de mapa, como se muestra en el siguiente ejemplo:

${location | map:"7e2b9be8a9c94e45b7f87857d8d168d6" | mapScale:100000 | size:400:400}

Nota:

Si va a configurar el tamaño de mapa y va a utilizar cualquier otro método de expresión, size debe estar situado en último lugar en la expresión.

Si el mapa contiene un gran número de registros, puede utilizar el método mapFilters para limitar los registros que se muestran. En el ejemplo siguiente, el parámetro dónde se utiliza para filtrar un mapa web que solo tiene una capa para mostrar registros con un POP2000 superior a 999999:

${location | map:"7e2b9be8a9c94e45b7f87857d8d168d6" | mapFilters:"where=POP2000>999999"}

En el ejemplo siguiente de mapFilters, el primer parámetro filtra la capa de ciudades (cuyo Id. de capa es 18ece64a1fc-layer-5) para mostrar solamente los tres primeros registros que tienen la mayor población y se encuentran en el estado de California. El segundo parámetro, que está separado del primero mediante dos puntos, filtra la capa de estados (cuyo Id. de capa es 18ece64a1fc-layer-6) para mostrar solamente el estado de California:

${$map | map:"7e2b9be8a9c94e45b7f87857d8d168d6" | mapFilters:"'18ece64a1fc-layer-5':where=ST='CA'&orderByFields=POP2000 ASC&resultRecordCount=3":"'18ece64a1fc-layer-6':where=stateName='California'"}

Nota:

El Id. de capa es una propiedad del objeto de capa de entidades del JSON del mapa web.

De forma predeterminada, una pregunta de mapa se mostrará utilizando un símbolo de mapa predeterminado, independientemente de la simbología definida en la capa de entidades. Puede utilizar el método drawingInfo para extraer y utilizar la información de dibujo almacenada en una capa de entidades específica, incluidos el símbolo, la etiqueta y la transparencia utilizados. Puede especificar esta información desde la capa actual o desde una capa de entidades concreta a través de una dirección URL proporcionada.

${location | drawingInfo:"currentLayer"}

${location | drawingInfo:"https://.../FeatureServer/0"}

Si su encuesta no contiene preguntas de mapa, o si está creando informes para capas de entidades sin una encuesta asociada, se puede seguir devolviendo la geometría de un registro con el marcador de posición ${$shape}.

En una sección de resumen, una expresión para una pregunta de mapa muestra varias geometrías en la entrada de la pregunta. Si desea incluir otras respuestas para un informe individual, proporcione una expresión where con la etiqueta !important. Para obtener más información, consulte Sintaxis adicional. La siguiente expresión muestra todas las geometrías de la capa donde el valor de campo de estado es igual a 'broken':

${location | where:"status='broken' !important" | map:"<itemID>" | size:400:300}

Nota:

En el ejemplo anterior, se omite la escala del mapa. Si establece la escala del mapa en 0 u omite el parámetro, y el mapa contiene varios registros, el mapa utilizará la extensión combinada para todos los registros.

Puede establecer la expresión where para que sea siempre una sentencia true a fin de garantizar que todas las geometrías de la capa se muestren:

${location | where:"1=1 !important"}

Esto también puede utilizarse para mostrar todos los puntos de una repetición:

${repeat1.repeatLocation | where:"inspectionId=123 !important" | size:400:300}

La palabra clave $shape también se puede utilizar para devolver varias geometrías de mapa.

${$shape | where:"1=1 !important" | drawingInfo:"currentLayer" | size:400:300}

La palabra clave $map puede utilizarse para imprimir un mapa web que no haga referencia a una pregunta de la encuesta.

${$map | map:"7e2b9be8a9c94e45b7f87857d8d168d6" | mapScale:100000 | size:400:400}

Geopuntos

En las preguntas geopoint, puede utilizar expresiones para visualizar los valores de latitud o longitud de la pregunta, como se indica a continuación:

${location | getValue:"x"}

${location | getValue:"y"}

No puede mostrar ambos valores con una expresión; si ambos valores son necesarios, debe utilizar ambas expresiones.

Sugerencia:

También puede mostrar el valor de altitud con una expresión similar, pero solo si la capa de entidades subyacente admite valores z:

${location | getValue:"z"}

De forma predeterminada, los valores de latitud, longitud y altitud devuelven el valor original proporcionado en la respuesta de la encuesta, sin truncar. Dado que estos valores suelen ser mucho más largos de lo necesario en un informe, plantéese utilizar las expresiones round o toFixed para redondear el valor a una posición decimal específica.

${location | getValue:"x" | round:3}

${location | getValue:"x" | toFixed:3}

De forma predeterminada, estos valores son la salida de la misma referencia espacial utilizada por la capa de entidades de la encuesta. Puede establecer una referencia espacial diferente como parámetro adicional proporcionando su WKID:

${location | getValue:"x":4326}

Geotrace y geoshape

En preguntas geotrace y geoshape, puede utilizar la expresión getValue para visualizar la longitud de la línea o el perímetro del polígono, respectivamente:

${polyline1 | getValue:"length":"meters":"planar"}

En las preguntas de geoshape, también puede utilizar la expresión getValue para visualizar el área del polígono:

${polygon1 | getValue:"area":"hectares":"geodesic"}

Las unidades y el método de cálculo son parámetros opcionales. Se admiten las siguientes unidades para la longitud:

  • feet
  • kilometers
  • meters
  • miles
  • nautical-miles
  • yards

Se admiten las siguientes unidades para el área:

  • acres
  • hectares
  • square-miles
  • square-kilometers
  • square-meters
  • square-feet
  • square-yards

Como alternativa, puede utilizar cualquiera de las Constantes esriSRUnitType o Constantes esriSRUnit2Type compatibles con API REST de ArcGIS. En su expresión, utilice el código numérico para la constante sin comillas de la siguiente forma:

${polyline1 | getValue:"length":109002:"geodesic"}

Si no se especifican las unidades, el valor predeterminado es kilometers para la longitud o square-kilometers para el área.

El método puede ser geodesic o planar. Si no se especifica el método, se utiliza geodesic de forma predeterminada.

Fecha, hora y fecha-hora

Para garantizar que las preguntas de fecha y fecha y hora se presentan de forma que sean precisas según el formato de su región, puede usar una expresión para dar formato a la pregunta de manera que coincida con una configuración regional proporcionada. Coloque el parámetro locale primero en una expresión y el código de configuración regional debe estar en minúscula.

${datetime | locale:"pt-br"}

Nota:

Para obtener información sobre el código de configuración regional de un idioma concreto, consulte la Lista de códigos ISO 639-1 de la Wikipedia. No obstante, recuerde que Survey123 no admite todos estos idiomas.

Todos los valores de fecha y de fecha y hora en una capa de entidades se almacenan en formato de hora universal coordinada (UTC). De forma predeterminada, todos los valores de fecha y de fecha y hora devueltos en un informe están en la misma zona horaria que el navegador web que solicitó la generación del informe. Puede usar el método utcOffset para alterar la visualización de estos valores en un informe y referirlos a una zona horaria específica. La siguiente expresión muestra la respuesta a una pregunta de fecha y hora con una diferencia de una hora respecto de la hora UTC:

${datetime | utcOffset:"+01:00"}

El método utcOffset admite los formatos +01:00, +0100 y +01, y devuelve el mismo resultado. También puede utilizar este método para modificar la visualización de la hora de envío de la respuesta. Tenga en cuenta que utcOffset no trabaja con preguntas de hora.

Para las preguntas de fecha y fecha-hora, puede usar una expresión para formatear la fecha con los marcadores de posición DD, MM y YYYY para el día, el mes y el año, respectivamente. La siguiente expresión solo muestra el día y el mes, omitiendo el año:

${date | format:"DD/MM"}

También puede formatear la hora en las preguntas de fecha y hora, usando HH, mm y ss como marcadores de posición para las horas, los minutos y los segundos, respectivamente. La siguiente expresión visualiza el día, el mes, las horas y los minutos:

${datetime | format:"DD/MM HH:mm"}

Puede mostrar las fechas y horas en el formato ISO 8601 de YYYY-MM-DDTHH:mm:ss±HH:mm; para ello, deje en blanco el valor del método format, como se muestra en el siguiente ejemplo:

${datetime | format:""}

Para más información sobre los formatos de fecha y hora, consulte la tabla siguiente.

Nota:

Debe colocar el método format al final de la expresión.

Puede imprimir la fecha y hora de creación del informe utilizando la palabra clave $date. Utilice el método format para controlar si se imprime la fecha, la hora o ambas. La siguiente sintaxis imprime la fecha en la que se generó el informe (sin la hora) en el formato de fecha predeterminado para su configuración regional:

${$date}

La siguiente expresión imprime el mes, día, año, horas y minutos de la fecha y hora en que se generó el informe:

${$date | format:"MM/DD/YYYY HH:mm"}

La siguiente expresión imprime la hora a la que se generó el informe (sin la fecha) en horas, minutos y segundos en formato de 12 horas:

${$date | format:"h:mm:ss A"}

La palabra clave $date también admite los métodos utcOffset y locale. El método locale se ignora si se especifica tanto format como locale.

Formatos de fecha y hora

En la siguiente tabla se indican los marcadores de posición más comunes que pueden utilizarse con el método format para dar formato a fechas y horas en un informe:

Marcador de posiciónDescripción

AA

Los dos últimos dígitos del año.

Por ejemplo: 2023 se representaría como 23.

AAAA

Cuatro dígitos del año.

Por ejemplo: 2023 se representaría como 2023.

M

Número de mes entre 1 y 12.

Por ejemplo: enero se representaría como 1.

MM

Número de mes en dos dígitos.

Por ejemplo: enero se representaría como 01.

MMM

Mes en tres letras.

Por ejemplo: enero se representaría como Ene.

MMMM

Mes escrito con su nombre completo.

Por ejemplo: enero se representaría como Enero.

D

Número de día entre 1 y 31.

Por ejemplo: el primer día del mes se representa como 1.

DD

Número de día en dos dígitos.

Por ejemplo: el primer día del mes se representa como 01.

Permitido

Número de día con sufijos ordinales.

Por ejemplo: el primer día del mes se representa como 1.º.

H

Número de hora en formato de 24 horas.

Por ejemplo: 11 p. m. se representaría como 23.

HH

Número de hora en formato de 24 horas con dos dígitos.

Por ejemplo: 2 a.m. se representaría como 02.

h

Número de hora en formato de 12 horas.

Por ejemplo: 11 p. m. se representaría como 11.

hh

Número de hora en formato de 12 horas con dos dígitos.

Por ejemplo: 2 a.m. se representaría como 02.

m

Número de minutos entre 0 y 59.

Ejemplo: 8 minutos se representarían como 8.

mm

Número de minutos en dos dígitos.

Ejemplo: 8 minutos se representarían como 08.

ss

Número de segundos en dos dígitos.

Ejemplo: 9 segundos se representaría como 09.

Z

Desplazamiento de zona horaria en horas usando separador.

Ejemplos: -07:00, +13:00

ZZ

Desplazamiento de zona horaria en horas sin separador.

Ejemplos: -0700, +1300

x

Marca de tiempo con milisegundos Unix.

Ejemplo: las 9 p.m. del 4 de mayo de 2023 GMT se representaría como 1683234000000.

X

Marca de tiempo Unix.

Ejemplo: las 9 p.m. del 4 de mayo de 2023 GMT se representaría como 1683234000.

a

Notación de la mañana o de la tarde en minúscula.

Ejemplo: a.m. se representaría como am y p.m. se representaría como pm.

A

Notación de la mañana o de la tarde en mayúscula.

Ejemplo: a.m. se representaría como AM y p.m. se representaría como PM.

Varias opciones

Si se hace referencia a una pregunta de selección única en un marcador de posición, por ejemplo, ${select_one}, devolverá la etiqueta seleccionada. Si se utiliza una pregunta de selección única dentro de una expresión, o si la pregunta utiliza una selección externa, una preguntas de selección única devolverán el nombre de un elemento seleccionado. El siguiente ejemplo utiliza un nombre de opción, en lugar de una etiqueta, en una declaración condicional:

${if select_one=="choice1Name"}The user selected the first choice.${/}

Para mostrar intencionadamente el nombre de una opción, en lugar de la etiqueta, utilice la expresión getValue:

${select_one | getValue:""}

Tanto para las preguntas de selección única como de selección múltiple, puede usar una expresión para colocar una casilla de verificación junto a un elemento de opción, que se rellena en función de la respuesta a la pregunta. Se debe utilizar el nombre de opción, en lugar de la etiqueta de opción. Las expresiones siguientes mostrarían las frutas seleccionadas:

${select_one | checked:"apple"} Apple

${select_one | checked:"pear"} Pear

Cuando se habilita Permitir "Otro" para una pregunta de selección única o múltiple, utilice el nombre de opción de other:

${select_one | checked:"other"} Other fruits you like: ${favFruits_other}

Las preguntas de selección múltiple admiten expresiones para generar la cantidad total de opciones seleccionadas, así como para generar una opción seleccionada concreta:

${select_multiple | countSelected}

${choiceQuestion1 | selectedAt:2}

Nota:

La expresión selectedAt empieza a contar las opciones seleccionadas a partir de 0. Significa que ${choiceQuestion1 | selectedAt:2} devolverá la tercera opción seleccionada.

Las preguntas de selección múltiple también cuentan con una expresión compatible para devolver todos los elementos de opción seleccionados en forma de una lista con viñetas, como se indica a continuación:

${select_multiple | appearance:"bullets"}

Nota:

Si la etiqueta del elemento elegido contiene comillas dobles, deben estar precedidas por una barra inversa; de lo contrario, el informe no se imprimirá. No se necesita la barra inversa para las comillas simples. A continuación, encontrará un ejemplo:

${select_one | checked:"Service provided by \"Greg's Plumbing\""} Service provided by "Greg's Plumbing"

Repeticiones

Para acceder a preguntas de una repetición, agregue una sección de repetición a su plantilla. En una repetición denominada "defects", el marcador de posición ${#defects} denota el inicio de una sección de repetición, mientras que ${/} denota el final. Los marcadores de posición que apuntan a preguntas de la repetición deben estar entre los marcadores de posición de inicio y final de la sección de repetición.

Nota:

Para imprimir el contenido de una repetición dentro de una tabla, asegúrese de que tanto las etiquetas de inicio como las de fin se encuentren dentro de la tabla o fuera de ella. No puede generar un informe si una de estas etiquetas está dentro de la tabla y otra está fuera. En la mayoría de los casos, si se colocan una etiqueta de inicio y de fin dentro de una tabla, la etiqueta de inicio debería estar en la primera celda y la de fin en la última.

Para acceder a preguntas dentro de una repetición anidada, coloque sus etiquetas entre las etiquetas de cada capa de repetición sobre la sección de repetición prevista. A continuación, encontrará un ejemplo:

${#repeat1}
${#repeat2}
${#repeat3}
${field1InRepeat3}, ${repeat2.field1}, ${repeat1.field1}, ${mainLayer.field1} 
${/}
${/}
${/}

Las expresiones de informe no pueden leer caracteres especiales, como guiones, al hacer referencia a nombres de capa utilizando la sintaxis ${layername}. Cuando se referencie una capa con un carácter especial en su nombre, utilice un guion bajo en lugar de caracteres especiales. También puede hacer referencia a la capa a través de la palabra clave $layers y el nombre de capa o el Id. de capa, por ejemplo, ${$layers["my layer name"]} o ${$layers[0]}. Esto puede ser útil con nombres de capa duplicados.

Para hacer referencia a un campo en su repetición que tenga el mismo nombre que su repetición principal, utilice la sintaxis de ruta completa, incluidos el nombre de campo y repetición, por ejemplo, ${sharedName.sharedName}.

Para visualizar el índice de un registro repetido, utilice la expresión getValue con la palabra clave reservada $feature. En este ejemplo se producirá 1 para el primer registro de una repetición, 2 para el segundo y así sucesivamente:

${#defects}
${$feature | getValue: "position"}
${/}

Consultas de informes

Puede utilizar funciones de agregación para producir consultas de los valores de las respuestas impresas. Estas consultas son más adecuadas en una sección de resumen, que solo aparecerá una vez en un informe, independientemente de la cantidad de respuestas impresas. Para obtener más información, consulte Consultas de informes.

Para limitar la impresión del informe a un número específico de repeticiones, en lugar de cada repetición asociada a la respuesta, utilice el método resultRecordCount para establecer un número específico de repeticiones que se desea imprimir:

${#defects | resultRecordCount:20}...${/}

Puede usar el método orderByFields para determinar el orden en el que se imprimirán las repeticiones. Declare un nombre de campo, seguido de ASC o DESC, y las repeticiones se imprimirán de acuerdo con la entrada de ese campo en orden ascendente o descendente, respectivamente:

${#defects | orderByFields:"state_name ASC, pop2000 DESC"}...${/}

Elementos de informe condicionales

Puede mostrar u ocultar elementos de un informe condicionalmente mediante sentencias if. Puede utilizar la sentencia if escribiendo una expresión en el marcador de posición ${if expression} de inicio, en la que ${/} denota el final del segmento condicional. Estos son algunos ejemplos de sentencias if que puede utilizar para mostrar u ocultar partes de un informe:

  • ${if photo1} muestra la sección únicamente si la pregunta photo1 se ha respondido.
  • ${if integer1>0} muestra la sección únicamente si la respuesta a la pregunta integer1 es un número positivo.
  • ${if ((geopoint1 | getValue:"y")>0)} muestra la sección únicamente si el geopunto está en el hemisferio norte.
  • ${if multiple_choice1 | selected:"A"} muestra la sección únicamente si la pregunta con varias opciones tenía la opción "A" seleccionada.
  • ${if (repeat1 | getValue:"count")>=3} muestra la sección solo si repeat1 contiene tres o más registros.

En el siguiente ejemplo, el texto de la segunda línea solo aparecerá en el informe si high está seleccionado para una pregunta de selección única prioritaria:

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

Para comprobar si una respuesta contiene un valor para una pregunta, utilice únicamente una sentencia if que haga referencia al nombre de campo directamente sin ningún otro operador, por ejemplo, ${if photo1}. Este formato garantiza que las cadenas vacías, los valores nulos y los valores no definidos se consideren valores vacíos. Este formato se aplica a tipos de campo de cadena de caracteres, número, fecha y adjunto. Al utilizar este formato con repeticiones, la sección aparecerá siempre y cuando haya al menos una instancia en la repetición.

Para utilizar declaraciones condicionales con preguntas de fecha y hora, realice cálculos utilizando el tiempo Epoch (milisegundos transcurridos desde el 1 de enero de 1970). Por ejemplo, ${if (date1|getValue:"") < 1602735375000} muestra la sección únicamente si el valor del campo de fecha es anterior al 14 de octubre de 2020. Tenga en cuenta que la sintaxis del informe no tiene un equivalente a las funciones today() o now() del XLSForm, por lo que es imposible crear una declaración condicional para las horas en que se imprimió el informe.

Las sentencias if admiten los siguientes operadores lógicos:

OperadorDescripción

||

True si una de las dos sentencias devuelve el valor True

&&

True si las dos sentencias proporcionadas devuelven el valor True

!

True si la sentencia no devuelve el valor True

==

True si los dos valores proporcionados son equivalentes

!=

True si los dos valores proporcionados no son equivalentes

>

Evalúa si el primer valor es mayor que el segundo valor

>=

Evalúa si el primer valor es mayor o igual que el segundo valor

<

Evalúa si el primer valor es menor que el segundo valor

<=

Evalúa si el primer valor es menor o igual que el segundo valor

Limitaciones

Existen las siguientes limitaciones al utilizar plantillas de informe:

  • Los filtros aplicados a repeticiones en el sitio web Survey123 no se aplicarán a informes. Solo pueden filtrarse repeticiones de un informe mediante el uso de expresiones.
  • El mapa no aparecerá en su informe si el mapa utiliza una versión de mapa web anterior a la 2.0, publicada en julio de 2014.
  • El mapa no aparecerá en su informe si su portal de ArcGIS Enterprise no tiene un certificado SSL válido.
  • La impresión con plantillas de informe no funciona con implementaciones de ArcGIS Enterprise que no estén orientadas al público. Intentar hacerlo presentará un error getaddrinfo ENOTFOUND.
  • La impresión con plantillas de informe no funciona con implementaciones de ArcGIS Enterprise que utilicen la Autenticación integrada de Windows (IWA).
  • Puede incluirse un máximo de 2000 registros por solicitud de informe.
  • Cuando se instala el sitio web de Survey123 en su infraestructura, no se puede utilizar la API de informes. Solo se pueden generar informes al utilizar https://survey123.arcgis.com/.