Resumo
No ArcGIS Survey123 Connect, os valores de múltiplas perguntas podem ser concatenados utilizando a função concat(). No entanto, ao concatenar o tempo com valores de texto, o tempo é exibido no tempo da época em vez de um tempo legível por humanos.
A imagem abaixo mostra a pesquisa exibindo um tempo de época em que os valores das perguntas 'Nome do ID' e 'Hora' são concatenados.
Siga o fluxo de trabalho neste artigo para exibir o tempo em um formato legível quando concatenado com valores de texto no ArcGIS Survey123 Connect.
Procedimento
- No ArcGIS Survey123 Connect, abra o XLSForm da pesquisa.
- Crie uma pergunta de pesquisa para inserir o valor do texto.
- Na planilha de pesquisa, na coluna tipo , selecione o texto na lista suspensa.
- Especifique os valores nas colunas de nome e rótulo. Neste exemplo, a pergunta é denominada my_id e rotulada como nome do ID.
- Crie uma pergunta de pesquisa para inserir o valor de data ou hora.
- Em uma nova linha, na coluna de tipo, selecione data, hora ou dateTime na lista suspensa. Neste exemplo, o tempo é selecionado.
- Especifique os valores nas colunas de nome e rótulo. Neste exemplo, a pergunta é denominada my_time e rotulada como Tempo.
Para exibir a hora em um formato legível, três componentes distintos de tempo: hora, minuto e período (AM/PM) devem ser extraídos do valor antes de concatenar com o valor do texto.
- Crie uma anotação para retornar a hora em 24 horas.
- Em uma nova linha, na coluna de tipo, selecione anotação na lista suspensa.
- Especifique os valores nas colunas de nome e rótulo. Neste exemplo, a anotação é denominada my_test e rotulada como 'tempo de 24 horas'.
- Na coluna de aparência , selecione oculto na lista suspensa para ocultar a pergunta da anotação na pesquisa.
- Na coluna de cálculo, insira a seguinte expressão. Se necessário, substitua o nome da pergunta na expressão de acordo.
format-date(${my_time}, '%h:%M')
- Crie uma anotação para retornar apenas a hora no formato de 12 horas.
- Em uma nova linha, na coluna de tipo, selecione anotação na lista suspensa.
- Especifique os valores nas colunas de nome e rótulo. Neste exemplo, a anotação é denominada my_hour e rotulada como Hora.
- Na coluna de aparência , selecione oculto na lista suspensa para ocultar a pergunta da anotação na pesquisa.
- Na coluna de cálculo, insira a seguinte expressão. Se necessário, substitua o nome da pergunta na expressão de acordo.
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')))
- Crie uma anotação para retornar apenas o minuto da hora.
- Em uma nova linha, na coluna de tipo, selecione anotação na lista suspensa.
- Especifique os valores nas colunas de nome e rótulo. Neste exemplo, a anotação é denominada de my_min e rotulada como Min.
- Na coluna de aparência , selecione oculto na lista suspensa para ocultar a pergunta da anotação na pesquisa.
- Na coluna de cálculo, insira a seguinte expressão. Se necessário, substitua o nome da pergunta na expressão de acordo.
format-date(${my_time}, '%M')

- Crie uma anotação para calcular e exibir o período em AM ou PM.
- Em uma nova linha, na coluna de tipo, selecione anotação na lista suspensa.
- Especifique os valores nas colunas de nome e rótulo. Neste exemplo, a anotação é denominada de my_ampm e rotulada como AMPM.
- Na coluna de aparência , selecione oculto na lista suspensa para ocultar a pergunta da anotação na pesquisa.
- Na coluna de cálculo, insira a seguinte expressão. Se necessário, substitua o nome da pergunta na expressão de acordo.
if(format-date(${my_time}, '%h') >11, 'PM', 'AM')
- Crie uma anotação para concatenar os componentes de tempo.
- Em uma nova linha, na coluna de tipo, selecione anotação na lista suspensa.
- Especifique os valores nas colunas de nome e rótulo. Neste exemplo, a anotação é denominada de concattime e rotulada como Tempo de concatenação.
- Na coluna de aparência , selecione oculto na lista suspensa para ocultar a pergunta da anotação na pesquisa.
- Na coluna de cálculo, insira a seguinte expressão. Se necessário, substitua o nome da pergunta na expressão de acordo.
concat(${my_hour}, ':', ${my_min}, ' ', ${my_ampm})
- Crie uma anotação para concatenar os valores de texto e tempo.
- Em uma nova linha, na coluna de tipo, selecione anotação na lista suspensa.
- Especifique os valores nas colunas de nome e rótulo. Neste exemplo, a anotação é denominada myconcat e rotulada como Meu tempo de concatenação.
- Na coluna de cálculo, insira a seguinte expressão. Se necessário, substitua o nome da pergunta na expressão de acordo.
${my_id} + ' ' + string(${concattime})
A imagem abaixo mostra o XLSForm configurado.
- Salve o XLSForm e publique a pesquisa.
A imagem abaixo mostra a pesquisa exibindo a hora em um formato legível quando concatenada com o valor do texto.