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étodo | Parámetros | Tipo de pregunta de Connect | Tipo de pregunta del diseñador web | Descripció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 clave | Descripció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:
|
$image | Inserta un elemento de imagen en el informe. Utilice el método src para especificar la URL de la imagen. Ejemplo:
|
$map | Inserta un elemento de mapa en el informe sin hacer referencia a una pregunta de la encuesta. Ejemplo:
|
$shape | Imprime la geometría (punto, polilínea o polígono) de la entidad actual en un mapa. Ejemplos:
|
$attachment | Representa el primer archivo adjunto, o todos los archivos adjuntos de la entidad actual. Ejemplos:
Para iterar todos los adjuntos, incluya etiquetas de inicio y fin:
|
$file | Representa el archivo actual cuando se iteran varios archivos de una pregunta de encuesta adjunta o archivos adjuntos de una entidad. Ejemplos:
|
$feature | Representa la entidad actual dentro de una matriz de entidades. Ejemplo:
|
$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:
|
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.
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ácter | Descripció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ón | Descripció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:
Operador | Descripció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/.