Resumen
En ArcGIS Survey123 Connect, los valores de varias preguntas se pueden concatenar utilizando la función concat(). No obstante, al concatenar el tiempo con valores de texto, el tiempo se muestra en tiempo de época en lugar de un tiempo legible por humanos.
La siguiente imagen muestra la encuesta donde aparece una época en la que se concatenan los valores de las preguntas "Nombre de ID" y "Hora".
Siga el flujo de trabajo de este artículo para mostrar la hora en un formato legible cuando se concatena con valores de texto en ArcGIS Survey123 Connect.
Procedimiento
- En ArcGIS Survey123 Connect, abra el XLSForm de la encuesta.
- Cree una pregunta de encuesta para introducir el valor de texto.
- En la hoja de cálculo de la encuesta, en la columna de tipo, seleccione texto en la lista desplegable.
- Especifique los valores en las columnas name y label. En este ejemplo, la pregunta se denomina my_id y se etiqueta como nombre de ID.
- Cree una pregunta de encuesta para introducir el valor de fecha u hora.
- En una nueva fila, en la columna tipo, seleccione fecha, hora o fechaHora en la lista desplegable. En este ejemplo, se selecciona la hora.
- Especifique los valores en las columnas name y label. En este ejemplo, la pregunta se denomina my_time y se etiqueta como Tiempo.
Para mostrar el tiempo en un formato legible, se deben extraer tres componentes temporales distintos, la hora, el minuto y el periodo (AM/PM), del valor antes de la concatenación con el valor de texto.
- Cree una nota para devolver la hora en formato de 24 horas.
- En una nueva fila, en la columna tipo, seleccione nota en la lista desplegable.
- Especifique los valores en las columnas name y label. En este ejemplo, la nota se denomina my_test y se etiqueta como "hora de 24 horas".
- En la columna de apariencia, seleccione oculto en la lista desplegable para ocultar la pregunta de nota en la encuesta.
- En la columna cálculo, introduzca la siguiente expresión: Si es necesario, reemplace el nombre de la pregunta en la expresión según corresponda.
format-date(${my_time}, '%h:%M')
- Cree una nota para devolver solo la hora en formato de 12 horas.
- En una nueva fila, en la columna tipo, seleccione nota en la lista desplegable.
- Especifique los valores en las columnas name y label. En este ejemplo, la nota se denomina my_hour y se etiqueta como Hora.
- En la columna de apariencia, seleccione oculto en la lista desplegable para ocultar la pregunta de nota en la encuesta.
- En la columna cálculo, introduzca la siguiente expresión: Si es necesario, reemplace el nombre de la pregunta en la expresión según corresponda.
if(format-date(${my_test}, '%h') >12, (format-date(${my_test}, '%h')-12), if(format-date(${my_test}, '%h') = 0, '12', format-date(${my_test}, '%h')))
- Cree una nota para devolver solo el minuto de la hora.
- En una nueva fila, en la columna tipo, seleccione nota en la lista desplegable.
- Especifique los valores en las columnas name y label. En este ejemplo, la nota se denomina my_min y se etiqueta como Min.
- En la columna de apariencia, seleccione oculto en la lista desplegable para ocultar la pregunta de nota en la encuesta.
- En la columna cálculo, introduzca la siguiente expresión: Si es necesario, reemplace el nombre de la pregunta en la expresión según corresponda.
format-date(${my_time}, '%M')

- Cree una nota para calcular y mostrar el periodo en AM o PM.
- En una nueva fila, en la columna tipo, seleccione nota en la lista desplegable.
- Especifique los valores en las columnas name y label. En este ejemplo, la nota se denomina my_ampm y se etiqueta como AMPM.
- En la columna de apariencia, seleccione oculto en la lista desplegable para ocultar la pregunta de nota en la encuesta.
- En la columna cálculo, introduzca la siguiente expresión: Si es necesario, reemplace el nombre de la pregunta en la expresión según corresponda.
if(format-date(${my_time}, '%h') >11, 'PM', 'AM')
- Cree una nota para concatenar los componentes de tiempo.
- En una nueva fila, en la columna tipo, seleccione nota en la lista desplegable.
- Especifique los valores en las columnas name y label. En este ejemplo, la nota se denomina concattime y se etiqueta como Concat Time.
- En la columna de apariencia, seleccione oculto en la lista desplegable para ocultar la pregunta de nota en la encuesta.
- En la columna cálculo, introduzca la siguiente expresión: Si es necesario, reemplace el nombre de la pregunta en la expresión según corresponda.
concat(${my_hour}, ':', ${my_min}, ' ', ${my_ampm})
- Cree una nota para concatenar los valores de texto y tiempo.
- En una nueva fila, en la columna tipo, seleccione nota en la lista desplegable.
- Especifique los valores en las columnas name y label. En este ejemplo, la nota se denomina myconcat y se etiqueta como My Concat Time.
- En la columna cálculo, introduzca la siguiente expresión: Si es necesario, reemplace el nombre de la pregunta en la expresión según corresponda.
${my_id} + ' ' + string(${concattime})
En la imagen siguiente se muestra el XLSForm configurado.
- Guarde el XLSForm y publique la encuesta.
La siguiente imagen muestra la encuesta en la que aparece la hora en un formato legible cuando se concatena con el valor de texto.