A funcionalidade de relatório do site Survey123 permite que você crie seus próprios modelos personalizados e produza vários relatórios de uma só vez.
Um relatório pode conter o seguinte:
- Uma seção de resumo
- Um registro de pesquisa única
- Um único registro de pesquisa e uma seção de resumo
- Vários registros de pesquisa
- Vários registros de pesquisa e uma seção de resumo
Anotação:
Imprimir relatórios é um Serviço Premium do ArcGIS Online e consome créditos. Para mais informações, consulte Imprimir relatórios.
Imprimir relatórios no ArcGIS Enterprise não consome créditos mas tem limitações.
Um modelo de relatório é um arquivo do Microsoft Word (.docx) que fornece texto de espaço reservado com sintaxe específica. Ao imprimir um relatório, este texto de espaço reservado será substituído com o conteúdo dos campos correspondentes a partir da resposta de pesquisa. Este texto de espaço reservado pode ser utilizado com qualquer formatação, tabelas, imagens ou outra personalização para criar um modelo específico para suas necessidades.
Para criar um modelo, clique no botão Relatório na barra acima do mapa na guia Dados e clique em Gerenciar modelos. Uma nova janela aparece, permitindo que você baixe uma amostra, carregue um novo modelo ou edite o nome e o resumo de um existente. Clique em Novo Modelo para carregar um novo modelo de relatório, ao mesmo tempo que fornece um nome e um resumo para o seu modelo depois de carregado. Como alternativa, você pode usar o link Baixar modelo de amostra para baixar um modelo de amostra com base em sua pesquisa.
Anotação:
Os modelos de relatório só podem ser transferidos pelo proprietário da pesquisa e pelos administradores da organização.
Compartilhar os resultados de uma pesquisa com todos, uma organização ou um grupo também compartilhará os modelos de relatório associados à pesquisa.
Expressões
A resposta a uma pergunta pode ser exibida em um modelo de relatório, fornecendo seu nome entre chaves, como { e }, precedido por um cifrão. Qualquer valor de string incluído em uma expressão deve ser colocado entre aspas duplas.
O seguinte exibirá a resposta de uma pergunta de texto denominada firstname.
${firstname}
Além de exibir a resposta a uma pergunta em um relatório, palavras-chaves podem ser usadas para exibir outras informações úteis. O seguinte exibirá a data e hora atuais ao imprimir um relatório:
${$date}
Se o resultado for uma matriz, a matriz poderá ser iterada usando # como tag inicial e / como tag final entre chaves. O seguinte imprimirá todos os arquivos de imagem em linhas separadas:
${#image1}
${$file}
${/}
Você também pode usar expressões para refinar a maneira como as respostas são exibidas. Uma expressão pode ser um único nome de pergunta ou palavra-chave (como acima), um cálculo envolvendo uma ou mais perguntas ou palavras-chaves, ou um nome de pergunta ou palavra-chave com métodos e parâmetros para restringir ou aplicar estilo à resposta. Uma expressão usa a seguinte notação:
${questionname or keyword | method:parameter}
Uma expressão pode incluir vários métodos e parâmetros ou nenhum. Os parâmetros podem ser valores de outras perguntas ou um valor fixo.
A seguinte expressão exibiria o cálculo de uma pergunta de número denominada floweringtrees dividida por uma pergunta de número denominada totaltrees. Ao fazer referência a várias perguntas na mesma expressão, os nomes das perguntas individuais precisam apenas ser nomeados diretamente e não precisam de colchetes adicionais.
${floweringtrees / totaltrees}
A seguinte expressão exibiria o valor da coordenada x da pergunta de localização, onde getValue é o método e x é o parâmetro.
${location | getValue:"x"}
A expressão a seguir seria avaliada como verdadeira se a resposta a uma pergunta denominada fruitcolor não fosse igual a red.
${if fruitcolor!="red"}The fruit is not red.${/}
Strings podem ser concatenadas em uma expressão juntando-as com um sinal de mais. Essa expressão usa essa concatenação para passar o conteúdo de uma pergunta chamada field_0 para um serviço de geração de código QR, criando um código QR para a resposta da pergunta.
${$image | src:"https://barcode.tec-it.com/barcode.ashx?code=QRCode&data="+field_0}
Nem todos os tipos de perguntas oferecem suporte a expressões e métodos. A seguinte tabela lista quais métodos e parâmetros você pode usar com quais tipos de perguntas.
Método | Parâmetros | Tipo de pergunta do Connect | Tipo de pergunta do web designer | Descrição |
---|---|---|---|---|
getValue | - | Todos os tipos de perguntas | Todos os tipos de perguntas | Recupera o valor dos dados brutos da camada de feição ou imagem bruta de um anexo. |
getValue | x, y, z, wkid | ponto geográfico | Mapa | Recupera as coordenadas x, y, z individualmente em uma referência espacial especificada. O parâmetro wkid é opcional e será o mesmo que a referência espacial da camada de feição se omitido. |
getValue | tipo de medição, unidade, área, comprimento | traçado geográfico, formato geográfico | Mapa | Retorna o comprimento de uma polilinha, ou o perímetro ou área de um polígono, em unidades fornecidas e se as medidas são planas ou geodésicas. O tipo de medição padrão é geodésico. |
getValue | nome, tamanho | imagem, áudio arquivo | Imagem, Assinatura, Áudio, Arquivo | Retorna o nome de arquivo ou tamanho de um anexo. |
getValue | largura, altura, x, y, data, hora, direção | imagem | Imagem, Assinatura | Largura e altura retornam o valor inteiro da largura e altura da imagem em pixels, e x, y, data, hora e direção, retornam valores lidos da imagem EXIF, se houver. |
getValue | contagem | começar repetição, imagem, áudio, arquivo | Repetir, Imagem, Assinatura, Áudio, Arquivo | Retorna a contagem total de repetições ou anexos. |
getValue | posição | começar repetição, imagem, áudio, arquivo | Repetir, Imagem, Assinatura, Áudio, Arquivo | Retorna um número inteiro igual à posição indexada em 1 na matriz. |
getValue | duração | áudio, arquivo | Áudio, Arquivo | Retorna a duração das gravações de áudio em segundos. Aviso:A duração não será retornada nas respostas coletadas no aplicativo da web ao usar Safari. |
aparência | múltiplas linhas | texto | Texto de múltiplas linhas | Usado para reter as quebras de linha na string. Se nenhuma aparência for especificada, a resposta retornará uma string de única linha. |
aparência | marcadores | select_multiple | Múltipla seleção | Retorna uma resposta em formato de bala. |
marcado | opção de nome | select_one, select_multiple | Múltipla seleção, Única seleção, Grade de única seleção, Lista Suspensa, Escala de Likert, Classificação | Retorna uma caixa de seleção marcada se o valor do campo for igual ao nome da opção; caso contrário, retorna uma caixa de seleção desmarcada. |
selecionado | opção de nome | select_one, select_multiple | Múltipla seleção, Única seleção, Grade de única seleção, Lista Suspensa, Escala de Likert, Classificação | Se existir domínio de valor codificado, retorna verdadeiro se o valor do campo for igual ao valor de nome da opção; caso contrário, retorna falso. |
countSelected | - | select_one, select_multiple | Múltipla seleção, Única seleção, Grade de única seleção, Lista Suspensa, Escala de Likert, Classificação | Retorna o número de opções selecionadas. |
selectedAt | Índice | select_one, select_multiple | Múltipla seleção, Única seleção, Grade de única seleção, Lista Suspensa, Escala de Likert, Classificação | Retorna a string na posição de índice na lista de opções. O índice começa no zero. |
local | código do idioma | data, dataHora, início, término, decimal | Data, Data e Hora, Número | Retorna data, hora e número localizados. |
formato | formato da string | data, dateTime, integero, decimal, inicial, final | Data, Data e Hora | Retorna uma string de data formatada. |
utcOffset | valor de deslocamento | data, dateTime, inicial, final | Data, Data e Hora | Retorna um valor de data ou data-hora que é deslocado pelo valor de deslocamento UTC. |
mapSettings | ID do item de mapa da web, escala do mapa | ponto geográfico, traço geográfico, forma geográfica | Mapa | Especifica o mapa base e a escala ao imprimir a imagem do mapa. Validado:Substituído por map e mapScale. |
mapExtent | xmin, ymin, xmax, ymax, wkid | ponto geográfico, traço geográfico, forma geográfica | Mapa | Especifica a extensão fixa do mapa ao imprimir a imagem do mapa. O parâmetro wkid é opcional e será definido como 4326 (WGS 1984) se omitido. |
mapa | ID do item de mapa da web | ponto geográfico, traço geográfico, forma geográfica | Mapa | Especifica o mapa base ao imprimir a imagem do mapa. |
mapScale | escala do mapa | ponto geográfico, traço geográfico, forma geográfica | Mapa | Especifica a escala de mapa ao imprimir a imagem do mapa. |
mapFilters | ID da camada no JSON de mapa da web, parâmetros de consulta | ponto geográfico, traço geográfico, forma geográfica | Mapa | Especifica um ou mais filtros de camadas de feição em um mapa da web ao imprimir a imagem do mapa. |
rotacionar | graus | ponto geográfico, traço geográfico, forma geográfica, imagem | Mapa, Imagem | Especifica o ângulo de rotação do mapa ou imagem. |
drawingInfo | currentLayer, URL da camada de feição | ponto geográfico, traço geográfico, forma geográfica | Mapa | Especifica as informações do desenho ao imprimir a imagem do mapa, incluindo símbolo, etiqueta e transparência. |
src | URL da imagem | - | - | Especifica a URL de origem de um elemento de imagem dinâmica. |
tamanho | largura, altura, largura máxima, altura máxima | imagem | Imagem | Especifica o tamanho da imagem impressa. |
ao redor | lugares | decimal, ponto geográfico, traço geográfico, forma geográfica | Número | Arredonda um número decimal para casas decimais especificadas. |
useGrouping | booleano | decimal | Número | Se verdadeiro retorna um número com separadores de agrupamento determinados pela localidade, caso contrário, se falso, nenhum separador será usado. |
toFixed | lugares | decimal, ponto geográfico, traço geográfico, forma geográfica | Número | Especifica um número fixo de dígitos após o separador decimal. Preencherá zero se necessário para atender a um número fixo de dígitos. |
A tabela a seguir lista todas as palavras-chaves que podem ser usadas em uma expressão.
Palavra-Chave | Descrição |
---|---|
$date | Insere a data e hora atuais ao imprimir o relatório. Por padrão, ele exibe a data atual usando o formato de localidade atual. Exemplos:
|
$image | Insere um elemento de imagem no relatório. Use o método src para especificar a URL da imagem. Exemplo:
|
$map | Insere um elemento de mapa no relatório sem fazer referência a uma pergunta da pesquisa. Exemplo:
|
$shape | Imprime a geometria (ponto, polilinha ou polígono) da feição atual em um mapa. Exemplos:
|
$attachment | Representa o primeiro anexo ou todos os anexos da feição atual. Exemplos:
Para iterar todos os anexos, inclua tags inicial e final:
|
$file | Representa o arquivo atual ao iterar vários arquivos de uma pergunta de pesquisa de anexo ou anexos de uma feição. Exemplos:
|
$feature | Representa a feição atual dentro de uma matriz de feições. Exemplo:
|
$layers["<layername>"] ou $layers[<layerId>] | Referencia qualquer camada por nome ou ID no mesmo serviço da feição que a camada de pesquisa. Exemplos:
|
Na janela Gerenciar modelos, selecione Referência rápida para abrir uma página contendo sintaxe de exemplo para expressões para modificar a resposta exibida em um relatório para cada pergunta em sua pesquisa. Para copiar essa sintaxe, clique no botão Copiar para a área de transferência e cole a sintaxe em um documento de modelo. Depois de a transferência de um modelo, use as opções no painel Relatório para produzir seu relatório. Para mais informações, consulte Imprimir relatórios.
As seguintes seções descrevem cenários de uso comum de expressões para cada tipo de pergunta e fornecem exemplos.
Texto
Perguntas de texto de múltiplas linhas—criadas pela adição de uma pergunta de Texto de múltiplas linhas no web designer do Survey123 ou utilizando aparência de múltiplas linhas de uma pergunta de texto no Survey123 Connect—ignora retornos de carregamento por padrão, exibindo a resposta em um único bloco de texto. Uma expressão pode ser usada para exibir a resposta à pergunta com retornos de carregamento da seguinte maneira:
${multilinetext1 | appearance:"multiline"}
Coloque esta expressão em uma linha dedicada; caso contrário, ocorrerão erros.
Números
Os operadores matemáticos básicos podem ser utilizados com perguntas numéricas, que podem ser utilizado para adicionar, subtrair, multiplicar, dividir ou localizar os módulos das respostas para estas perguntas. Os seguintes são exemplos:
${number1 - 15}
${number1 * 6}
${number1 / number2}
${number1 % number2}
Dica:
Se sua expressão incluir uma expressão matemática complexa, considere utilizar parênteses para assegurar que a geração de relatório produza o resultado esperado.
Para questões decimais, a expressão round pode ser usada para definir um número máximo de casas decimais para as quais o valor é arredondado. O exemplo a seguir arredonda o número 3,141592 para as quatro casas decimais de 3,1416:
${decimal1 | round:4}
A expressão toFixed pode ser usada para definir um número máximo de casas decimais para as quais o valor é arredondado. O exemplo a seguir corrige o número de casas decimais em 3,14 a 3,140:
${decimal1 | toFixed:3}
Você pode usar a expressão de formato para exibir a resposta a uma pergunta de número em uma maneira específica, usando caracteres de espaço reservado. Os seguintes caracteres de espaço reservado são suportados.
Caractere | Descrição |
---|---|
. | Separador decimal |
, | Se colocado no formato, adiciona separadores de grupo, com o tamanho do grupo determinado pelo número de dígitos entre o primeiro marcador de posição do separador de grupo e o marcador de posição decimal ou o final da expressão. Se adicionado, nenhum separador de grupo será usado. |
0 | Dígitos exigidos. Se a resposta tiver menos do que o número necessário de dígitos, ela será preenchida com zeros. |
# | Dígitos opcionais. Se a resposta tiver mais dígitos do que o fornecido, o número será arredondado. |
Dica:
Os separadores decimais e de milhares serão exibidos no resultado impresso com base no local escolhido.
O seguinte exemplo retorna a resposta para um máximo de três casas decimais com separadores de milhares, arredondando se necessário.
${decimal1 | format:"#,##0.###"}
Imagens e outros anexos
Para perguntas de imagem, os tamanhos podem ser configurados para garantir que seus relatórios tenham imagens de tamanho consistente. O formato destas expressões é como segue:
${image1 | size:width:height:max_width:max_height}
Os valores de largura e altura controlam o tamanho definido de sua imagem, medido em pixels. Enquanto estes valores são exigidos para a expressão, o fornecimento de um valor 0 não colocará nenhuma restrição na dimensão de sua imagem. Por exemplo, a expressão seguinte força a largura de sua imagem para 300 pixels, enquanto preserva a relação entre os eixos da imagem:
${image1 | size:300:0}
Os valores máximos de altura e largura limitam o tamanho máximo de uma imagem e são valores opcionais. O exemplo seguinte força a largura da imagem para ser 300 pixels e restringe a altura da imagem para não mais do que 200 pixels:
${image1 | size:300:0:0:200}
Você pode usar o método rotate para definir a rotação no sentido horário da imagem. Aceita valores de 0 a 360.
${image1 | size:300:0:0:200 | rotate:90}
As perguntas de imagem também podem ter detalhes de imagem extraídos e exibidos em uma resposta de pesquisa. Isto pode ser utilizado para exibir o nome de arquivo e tamanho da imagem como segue.
${image1 | getValue:"name"}
${image1 | getValue:"size"}
${image1 | getValue:"width"}
${image1 | getValue:"height"}
O mesmo método pode ser utilizado para exibir dados EXIF da imagem, mostrando detalhes onde e quando uma fotografia foi tirada, como segue:
${image1 | getValue:"x"}
${image1 | getValue:"y"}
${image1 | getValue:"date"}
${image1 | getValue:"time"}
${image1 | getValue:"direction"}
Para exibir a imagem original em seu tamanho e qualidade total, use a expressão sem nenhum método ou use a expressão getValue sem nenhum valor:
${image1} ou ${image1 | getValue:""}
Para exibir a imagem original em qualidade total, mas em um tamanho definido, use as expressões getValue e size juntas.
${image1 | getValue:"" | size:300:0}
Anotação:
Se você for configurar o tamanho da imagem junto com a utilização de qualquer outro parâmetro de expressão, size deverá ser colocado por último na expressão.
Datas e horários são armazenados como sequências nos dados EXIF, portanto, esses valores não podem ser formatados em um relatório usando a expressão format para perguntas de data e hora. Se a formatação desses valores for importante, considere executar a extração EXIF como parte de sua pesquisa usando a função pulldata("@exif") . Para mais informações, consulte Imagens.
As expressões getValue acima também podem ser usadas para extrair dados de quaisquer propriedades válidas em qualquer tipo de anexo, incluindo os resultados de perguntas de imagem, áudio e arquivo. As propriedades que podem ser extraídas de todos os anexos são as seguintes:
${file1 | getValue:"name"}
${file1 | getValue:"size"}
${file1 | getValue:"globalId"}
${file1 | getValue:"id"}
${file1 | getValue:"contentType"}
${file1 | getValue:"keywords"}
Se todos os anexos do elemento forem imagens, use os seguintes marcadores de posição com cada um posicionado em uma linha dedicada:
${#$attachment}
${$file}
${/}
Para retornar várias imagens enviadas para a mesma pergunta em uma resposta, use o nome da pergunta da imagem em vez de $attachment:
${#image1}
${$file}
${/}
Este método é útil para exibir imagens em versões do ArcGIS Enterprise anteriores à 10.8.1 ou para exibir imagens que foram adicionadas a uma feição fora do Survey123. O exemplo a seguir exibe os nomes de arquivo de todos os anexos anexados a uma feição:
${#$attachment}
${$file|getValue:"name"}
${/}
Para exibir uma imagem online, forneça sua URL de origem com a expressão src ao se referir à palavra-chave $image em vez do nome de uma pergunta:
${$image |
src:"https://upload.wikimedia.org/wikipedia/commons/1/13/Esri_Headquarters%2C_Building_Q.jpg"
| size:400:0}
Mapa
Todas as perguntas que fazem uso de um mapa—incluindo ponto geográfico, traçado geográfico ou forma geográfica—têm métodos e parâmetros comuns que você pode usar para modificar sua apresentação em relatórios.
Por padrão, um mapa em um relatório usará o mapa da web definido para a pergunta. Se a escala do mapa for definida como 0 ou o parâmetro for omitido, a escala do mapa será determinada pelas feições no mapa da seguinte forma:
- Se houver apenas uma feição de ponto no mapa, a escala do mapa corresponde à escala definida para a pergunta.
- Se houver apenas uma feição de linha ou polígono no mapa, a escala do mapa será determinada pela extensão da feição.
- Se houver várias feições no mapa, a escala é determinada pela extensão de todas as feições.
As perguntas do mapa suportam a configuração da ID de item do mapa da web e da escala de mapa como parâmetros opcionais. No exemplo seguinte, uma escala do mapa de 1:100.000 é utilizada:
${location | map:"7e2b9be8a9c94e45b7f87857d8d168d6" | mapScale:100000}
Para todas as perguntas de mapa, você pode usar o método rotate para definir a rotação no sentido horário do norte devido em relação à visualização. Aceita valores de 0 a 360.
${location | map:"7e2b9be8a9c94e45b7f87857d8d168d6" | mapScale:100000 | rotate:90}
Se você deixar o ID do item de mapa da web como uma string vazia, o mapa base padrão da pergunta será utilizada. Se você definir a escala do mapa como 0 ou omitir esse parâmetro, o mapa usará a extensão padrão definida para a pergunta.
O método mapExtent pode ser usado para definir explicitamente a extensão de um mapa em um relatório. No exemplo a seguir, uma extensão de mapa fixa de Tóquio, Japão, é exibida:
${location | mapExtent:139.7:35.6:139.9:35.8:4326}
As perguntas de ponto geográfico também suportam a expressão de tamanho disponível para perguntas de imagem. Você pode usar esta expressão para controlar a resolução do mapa exibido no relatório, conforme mostrado no exemplo a seguir:
${location | size:400:400}
Você pode usar as expressões map, mapScale e size juntas para fornecer um ID de mapa da web e escala de mapa, como também, uma resolução da imagem de mapa, conforme mostrado no exemplo a seguir:
${location | map:"7e2b9be8a9c94e45b7f87857d8d168d6" | mapScale:100000 | size:400:400}
Anotação:
Se você estiver definindo o tamanho de um mapa enquanto usa qualquer outro método de expressão, size deverá ser colocado por último na expressão.
Se o seu mapa tiver um grande número de registros, você poderá usar o método mapFilters para limitar quais registros serão exibidos. No exemplo a seguir, o parâmetro where é usado para filtrar um mapa da web que tem apenas uma camada para mostrar registros com um POP2000 maior que 999999:
${location | map:"7e2b9be8a9c94e45b7f87857d8d168d6" | mapFilters:"where=POP2000>999999"}
No exemplo a seguir de mapFilters, o primeiro parâmetro filtra a camada de cidades (cujo ID de camada é 18ece64a1fc-layer-5) para mostrar apenas os três primeiros registros que têm a maior população no estado da Califórnia. Separado do primeiro parâmetro por dois pontos, o segundo parâmetro filtra a camada de estados (cujo id de camada é 18ece64a1fc-layer-6) para mostrar apenas o estado da Califórnia:
${$map | map:"7e2b9be8a9c94e45b7f87857d8d168d6" | mapFilters:"'18ece64a1fc-layer-5':where=ST='CA'&orderByFields=POP2000 ASC&resultRecordCount=3":"'18ece64a1fc-layer-6':where=stateName='California'"}
Anotação:
O ID da camada é uma propriedade do objeto da camada de feição do JSON de mapa da web.
Por padrão, uma pergunta de mapa será exibida usando um símbolo de mapa padrão, independentemente da simbologia definida na camada de feição. Você pode usar o método drawingInfo para extrair e usar as informações de desenho armazenadas em uma camada de feição específica, incluindo o símbolo, rótulo e transparência usados. Você pode especificar essas informações a partir da camada atual ou de uma camada de feição específica por uma URL fornecida.
${location | drawingInfo:"currentLayer"}
${location | drawingInfo:"https://.../FeatureServer/0"}
Se a sua pesquisa não tiver uma pergunta de mapa ou você estiver criando relatórios para camadas de feição sem uma pesquisa associada, a geometria de um registro poderá ainda ser retornada utilizando o espaço reservado ${$shape}.
Em uma seção de resumo, uma expressão para uma pergunta de mapa exibe várias geometrias na entrada para sua pergunta. Se desejar incluir outras respostas para um relatório individual, forneça uma expressãowhere com a tag !important. Para obter mais informações, consulte Sintaxe adicional. A seguinte expressão exibe todas as geometrias na camada onde o valor do campo de status é igual a 'quebrado':
${location | where:"status='broken' !important" | map:"<itemID>" | size:400:300}
Anotação:
No exemplo acima, a escala do mapa é omitida. Se você definir a escala do mapa como 0 ou omitir o parâmetro e o mapa tiver vários registros, o mapa usará a extensão combinada para todos os registros.
Você pode definir a expressão where como uma declaração sempre verdadeira para garantir que todas as geometrias na camada sejam exibidas:
${location | where:"1=1 !important"}
Isso também pode ser usado para exibir todos os pontos em uma repetição:
${repeat1.repeatLocation | where:"inspectionId=123 !important" | size:400:300}
A palavra-chave $shape também pode ser usada para retornar múltiplas geometrias de mapa.
${$shape | where:"1=1 !important" | drawingInfo:"currentLayer" | size:400:300}
A palavra-chave $map pode ser usada para imprimir um mapa que não faz referência a uma pergunta da pesquisa.
${$map | map:"7e2b9be8a9c94e45b7f87857d8d168d6" | mapScale:100000 | size:400:400}
Pontos Geográficos
Para perguntas de ponto geográfico, você pode usar expressões para exibir os valores de latitude ou longitude da pergunta da seguinte maneira:
${location | getValue:"x"}
${location | getValue:"y"}
Você não pode exibir os dois valores com uma expressão; se ambos os valores forem necessários, você deverá usar ambas as expressões.
Dica:
Você também pode exibir o valor da altitude por meio de uma expressão semelhante, mas apenas se a camada de feição subjacente suportar valores z:
${location | getValue:"z"}
Por padrão, os valores de latitude, longitude e altitude retornam o valor original fornecido na resposta da pesquisa, sem truncamento. Como esses valores geralmente podem ser muito mais longos do que o necessário em um relatório, considere usar as expressões round ou toFixed para arredondar o valor para uma casa decimal específica.
${location | getValue:"x" | round:3}
${location | getValue:"x" | toFixed:3}
Por padrão, estes valores são a saída para a mesma referência espacial utilizada pela camada de feição da pesquisa. Você pode configurar uma referência espacial diferente como um parâmetro adicional fornecendo seu WKID:
${location | getValue:"x":4326}
Traçado geográfico e forma geográfica
Para perguntas de traçado geográfico e forma geográfica, a expressão getValue pode ser utilizada para exibir o comprimento da linha ou o perímetro do polígono, respectivamente:
${polyline1 | getValue:"length":"meters":"planar"}
Para perguntas de forma geográfica, você também pode usar a expressão getValue para exibir a área do polígono:
${polygon1 | getValue:"area":"hectares":"geodesic"}
O método de unidades e de cálculo são parâmetros opcionais. As unidades seguintes são aceitas para comprimento:
- feet
- kilometers
- meters
- miles
- nautical-miles
- yards
As unidades seguintes são aceitas para área:
- acres
- hectares
- square-miles
- square-kilometers
- square-meters
- square-feet
- square-yards
Alternativamente, você pode utilizar qualquer opção esriSRUnitType Constants ou esriSRUnit2Type Constants suportada pelo ArcGIS REST API . Em sua expressão, utilize o código numérico das constantes sem citações como segue:
${polyline1 | getValue:"length":109002:"geodesic"}
Se nenhuma unidade for especificada, o padrão será kilometers para comprimento ou square-kilometers para área.
O método pode ser geodesic ou planar. Se nenhum método for especificado, geodesic será utilizado por padrão.
Data, hora e data-hora
Para garantir que suas perguntas de data e hora sejam apresentadas de forma precisa para a formatação de sua região, você pode usar uma expressão para formatar a pergunta para corresponder a uma localidade fornecida. Coloque o método locale primeiro em uma expressão e o código de localização deve estar em letras minúsculas.
${datetime | locale:"pt-br"}
Anotação:
Para informações sobre os códigos de localidade de um idioma específico, consulte Lista de códigos do ISO 639-1 do Wikipedia. No entanto, tenha em mente que nem todos estes idiomas são suportados pelo Survey123.
Todos os valores de data e data-hora em uma camada de feição são armazenados no tempo universal coordenado (UTC). Por padrão, todos os valores de data e data/hora retornados em um relatório estão no mesmo fuso horário do navegador da web que solicitou a geração do relatório. Você pode usar o método utcOffset para alterar a exibição desses valores em um relatório para corresponder a um fuso horário específico. A expressão a seguir exibe a resposta a uma pergunta de data e hora compensada +1 hora do UTC:
${datetime | utcOffset:"+01:00"}
O método utcOffset suporta os formatos +01:00, +0100, e +01 e retorna o mesmo resultado. Você também pode usar este método para alterar a exibição do tempo de envio da resposta. Esteja ciente que utcOffset não funciona com perguntas de tempo.
Para perguntas de data e hora, você pode usar uma expressão para formatar a data usando marcadores DD, MM e YYYY para dia, mês e ano, respectivamente. A expressão seguinte exibe somente o dia e mês, omitindo o ano:
${date | format:"DD/MM"}
Você também pode formatar a hora nas perguntas de data e hora, usando HH, mm e ss como marcadores de horas, minutos e segundos, respectivamente. A expressão seguinte exibe o dia, mês, horas e minutos:
${datetime | format:"DD/MM HH:mm"}
Você pode exibir datas e horas no formato ISO 8601 do YYYY-MM-DDTHH:mm:ss±HH:mm deixando o valor do método format em branco, conforme mostrado no exemplo a seguir:
${datetime | format:""}
Para obter mais informações sobre formatos de data e hora, consulte a tabela abaixo.
Anotação:
Você deve colocar o método format no final da expressão.
Você pode imprimir a data e hora na qual o relatório foi gerado usando a palavra-chave $date. Use o método format para controlar se imprimir a data, hora ou ambos. A sintaxe a seguir imprime a data na qual o relatório foi gerado (sem a hora) no formato de data padrão para sua localidade:
${$date}
A seguinte expressão imprime o mês, dia, ano, horas e minutos da data e hora na qual o relatório foi gerado:
${$date | format:"MM/DD/YYYY HH:mm"}
A expressão a seguir imprime a hora na qual o relatório foi gerado (sem a data) em horas, minutos e segundos no formato de 12 horas:
${$date | format:"h:mm:ss A"}
A palavra-chave $date também suporta os métodos utcOffset e locale. O método locale é ignorado quando ambos format e locale são especificados.
Formatos de data e hora
A tabela a seguir lista os espaços reservados mais comuns que podem ser usados com o método format para formatar datas e horas em um relatório:
Espaço Reservado | Descrição |
---|---|
YY | Últimos dois dígitos do ano. Exemplo: 2023 seria representado como 23. |
YYYY | Quatro dígitos do ano. Exemplo: 2023 seria representado como 2023. |
M | Número do mês entre 1 e 12. Exemplo: Janeiro seria representado como 1. |
MM | Número do mês em dois dígitos. Exemplo: Janeiro seria representado como 01. |
MMM | Mês em três letras. Exemplo: Janeiro seria representado como Jan. |
MMMM | Mês escrito na íntegra. Exemplo: Janeiro seria representado como Janeiro. |
D | Número do dia entre 1 e 31. Exemplo: O primeiro dia do mês é representado como 1. |
GD | Número do dia em dois dígitos. Exemplo: O primeiro dia do mês é representado como 01. |
Do | Número do dia que inclui sufixos ordinais. Exemplo: O primeiro dia do mês é representado como 1º. |
A | Número da hora em 24 horas. Exemplo: 23h seria representado como 23. |
HH | Número da hora em formato de 24 horas com dois dígitos. Exemplo: 2 a.m. seria representado como 02. |
h | Número da hora em 12 horas. Exemplo: 23h seria representado como 11. |
hh | Número da hora em 12 horas com dois dígitos. Exemplo: 2 a.m. seria representado como 02. |
m | Número do minuto entre 0 e 59. Example: 8 minutes would be represented as 8. |
mm | Número do minuto em dois dígitos. Example: 8 minutes would be represented as 08. |
ss | Número de segundos em dois dígitos. Exemplo: 9 segundos seriam representados como 09. |
Z | Compensação de fuso horário em horas usando separador. Exemplos: -07:00, +13:00 |
ZZ | Deslocamento de fuso horário em horas sem separador. Exemplos: -0700, +1300 |
x | Carimbo de hora em milissegundos do Unix. Exemplo: 21h em 4 de Maio de 2023, o GMT seria representado como 1683234000000. |
X | Carimbo de data/hora do Unix. Exemplo: 21h em 4 de maio de 2023, o GMT seria representado como 1683234000. |
a | Notação matinal ou vespertina em minúsculas. Exemplo: a.m. seria representado como am, e p.m. seria representado como pm. |
A | Notação matinal ou vespertina em letras maiúsculas. Exemplo: a.m. seria representado como AM e p.m. seria representado como PM. |
Múltipla escolha
Se a pergunta select one fizer referência a um espaço reservado propriamente, por exemplo ${select_one}, retornará o rótulo de opção. Se uma pergunta select one for utilizada em uma expressão, ou se a pergunta utilizar uma seleção externa, uma pergunta select one retornará o nome de um item de escolha. O exemplo seguinte utiliza um nome de escolha, em vez de um rótulo, para uma instrução condicional.
${if select_one=="choice1Name"}The user selected the first choice.${/}
Para exibir o nome de uma opção intencionalmente ao invés do rótulo, utilize a expressão getValue :
${select_one | getValue:""}
Para as perguntas select one e select multiple, você pode usar uma expressão para colocar uma caixa de seleção ao lado de um item de opção, que é preenchido dependendo da resposta à pergunta. O nome de escolha — não o rótulo da escolha — deve ser usado. As expressões a seguir exibiriam frutas selecionadas:
${select_one | checked:"apple"} Apple
${select_one | checked:"pear"} Pear
Quando Permitir "Outro" estiver habilitado para uma pergunta select one ou select multiple question, use o nome da opção other:
${select_one | checked:"other"} Other fruits you like: ${favFruits_other}
As perguntas select multiple suportam expressões para saída da quantia total de opções selecionadas, e para saída de uma opção selecionada específica.
${select_multiple | countSelected}
${choiceQuestion1 | selectedAt:2}
Anotação:
A expressão selectedAt começa a contar as opções selecionadas do zero. Isto significa que o ${choiceQuestion1 | selectedAt:2} retornará a terceira opção selecionada.
As perguntas select multiple também têm uma expressão suportada para retornar todos os itens da opção selecionada como uma lista com marcadores como segue:
${select_multiple | appearance:"bullets"}
Anotação:
Se o rótulo do item de sua escolha tiver aspas duplas, elas deverão ser precedidas por uma barra invertida; caso contrário, seu relatório não será impresso. Uma barra invertida não é necessária para aspas simples. Abaixo está um exemplo:
${select_one | checked:"Service provided by \"Greg's Plumbing\""} Service provided by "Greg's Plumbing"
Repetições
Para acessar perguntas em uma repetição, adicione uma seção de repetição ao seu modelo. Para uma repetição de defeitos nomeados, o espaço reservado ${#defects} denota o início de uma seção de repetição, enquanto ${/} denota o final. Espaços reservados apontando para perguntas na repetição devem estar entre o início da seção da repetição e o final dos espaços reservados.
Anotação:
Para imprimir o conteúdo de uma repetição em uma tabela, certifique-se de que a tag inicial e a tag final sejam posicionadas dentro ou fora da tabela. Um relatório não pode ser gerado se uma destas tags estiverem dentro de uma tabela enquanto as outras estiverem fora dela. Na maioria dos casos, se uma tag de início e um tag de fim estiverem posicionadas dentro de uma tabela, a tag de início deve estar na primeira célula e a tag de fim deve estar na última célula.
Para acessar perguntas em uma repetição aninhada, coloque suas tags entre as tags para cada camada de repetição acima da seção de repetição pretendida. Abaixo está um exemplo:
${#repeat1}
${#repeat2}
${#repeat3}
${field1InRepeat3}, ${repeat2.field1}, ${repeat1.field1}, ${mainLayer.field1}
${/}
${/}
${/}
As expressões de relatório não podem ler caracteres especiais, como hifens, ao fazer referência a nomes de camadas usando a sintaxe ${layername} . Ao referenciar uma camada que contenha um caractere especial em seu nome, utilize um sublinhado no lugar de caracteres especiais. Como alternativa, você pode fazer referência à camada por meio da palavra-chave $layers e do nome da camada ou ID da camada, por exemplo, ${$layers["my layer name"]} ou ${$layers[0]}. Isso pode ser útil com nomes de camadas duplicados.
Para referenciar um campo em sua repetição que tem o mesmo nome como sua repetição pai, utilize a sintaxe de caminho completo incluindo ambos nome do campo e nome de repetição, por exemplo, ${sharedName.sharedName}.
Para exibir o índice de um registro de repetição, use a expressão getValue com a palavra-chave $feature reservada . Este exemplo produzirá 1 para o primeiro registro em uma repetição, 2 para o segundo e assim por diante:
${#defects}
${$feature | getValue: "position"}
${/}
Consultas de relatório
Você pode usar funções agregadas para produzir consultas dos valores em suas respostas impressas. Essas consultas são mais adequadas para uma seção de resumo, que aparecerá apenas uma vez em um relatório, independentemente da quantidade de respostas impressas. Para mais informações, consulte Consultas de relatório.
Para limitar a impressão de seu relatório a um número específico de repetições, em vez de cada repetição associada à resposta, use o método resultRecordCount para definir um número específico de repetições a serem impressas:
${#defects | resultRecordCount:20}...${/}
Você pode usar o método orderByFields para determinar a ordem na qual as repetições serão impressas. Declare um nome de campo, seguido por ASC ou DESC, e as repetições serão impressas de acordo com a entrada desse campo em ordem crescente ou decrescente, respectivamente.
${#defects | orderByFields:"state_name ASC, pop2000 DESC"}...${/}
Elementos do relatório condicionais
Você pode mostrar ou ocultar elementos de um relatório condicionalmente usando declarações if. Você pode usar a declaração if digitando uma expressão no espaço reservado ${if expression} inicial, denotando ${/} final do segmento condicional. Alguns exemplos de declarações Se, que você pode usar para mostrar ou ocultar partes de um relatório são os seguintes:
- ${if photo1} exibe a seção somente se a pergunta photo1 tiver sido respondida.
- ${if integer1>0} exibe a seção somente se a resposta da pergunta integer1 for um número positivo.
- ${if ((geopoint1 | getValue:"y")>0)} exibe a seção somente se o ponto geográfico estiver no hemisfério norte.
- ${if multiple_choice1 | selected:"A"} exibe a seção somente se a pergunta de múltipla escolha tivesse a escolha 'A' selecionada.
- ${if (repeat1 | getValue:"count")>=3} exibe a seção apenas se repeat1 tiver três ou mais registros.
No exemplo a seguir, o texto da segunda linha aparecerá somente no relatório se high for selecionado para a prioridade de selecionar uma pergunta:
${if priority | selected:"high"}
High priority issues must be addressed within seven days.
${/}
Para verificar se uma resposta contém um valor para uma pergunta, use apenas uma instrução if referindo-se ao nome do campo diretamente sem outros operadores, por exemplo, ${if photo1}. Esse formato garante que strings vazias, valores nulos e valores indefinidos sejam considerados valores vazios. Este formato se aplica a tipos de campo de string, número, data, e anexo. Quando este formato for utilizado com repetições, a seção aparecerá desde que haja pelo menos uma instância na repetição.
Para usar declarações condicionais com perguntas de data e hora, execute cálculos usando o tempo de Época (milissegundos decorridos desde 1 de Janeiro de 1970). Por exemplo, ${if (date1|getValue:"") < 1602735375000} exibe a seção apenas se o valor no campo de data for anterior a 14 de Outubro de 2020. Esteja ciente que a sintaxe do relatório não tenha um equivalente para as funções today() ou now() do XLSForm, portanto, é impossível compor uma declaração condicional para os tempos relativos a quando o relatório foi impresso.
Os seguintes operadores lógicos são suportados em declarações “se”:
Operador | Descrição |
---|---|
|| | Verdadeiro se uma das duas declarações retornar verdadeiro |
&& | Verdadeiro se ambas as declarações fornecidas retornarem verdadeiro |
! | Verdadeiro se a declaração não for verdadeira |
== | Verdadeiro se os dois valores fornecidos forem iguais entre si |
!= | Verdadeiro se os dois valores fornecidos não forem iguais entre si |
> | Avalia se o primeiro valor é maior que o segundo valor |
>= | Avalia se o primeiro valor é maior ou igual ao segundo valor |
< | Avalia se o primeiro valor é menor que o segundo valor |
<= | Avalia se o primeiro valor é menor ou igual ao segundo valor |
Limitações
As seguintes limitações existem ao utilizar modelos de relatório:
- Os filtros aplicados às repetições no site Survey123 não serão aplicados nos relatórios. As repetições só podem ser filtradas em um relatório usando expressões.
- Seu mapa não aparecerá em seu relatório se o mapa estiver usando uma versão de mapa da web anterior à 2.0, que foi lançada em julho de 2014.
- Seu mapa não aparecerá em seu relatório se seu portal do ArcGIS Enterprise não tiver um certificado SSL válido.
- Os modelos de relatório que utilizam impressão não funcionam com implantações do ArcGIS Enterprise que não são voltadas ao público. A tentativa de fazer isso apresentará um erro getaddrinfo ENOTFOUND .
- A impressão com a utilização dos modelos de relatório não funciona com implantações do ArcGIS Enterprise que utilizam Autenticação Integrada do Windows (IWA).
- Um máximo de 2.000 registros podem ser incluídos por solicitação de relatório.
- Quando o site Survey123 for instalado em sua infraestrutura, a API de relatórios não pode ser usada. Os relatórios podem somente ser gerados ao utilizar https://survey123.arcgis.com/.