Consultas de relatório

A funcionalidade de relatório do site da web Survey123 permite que você crie relatórios detalhados de respostas a pesquisas individuais, resuma seus dados em uma série de respostas e agregue resultados. Este tópico descreve como usar consultas para resumir e agregar resultados e apresentá-los em uma seção de resumo.

As funções de resumo não incorrem em uma cobrança de crédito além do custo de quaisquer outros relatórios impressos ao mesmo tempo.

Adicionar uma seção de resumo

Para incluir uma seção de resumo em um relatório, inclua marcas de resumo em seu modelo de relatório. Uma seção de resumo será produzida apenas uma vez se vários registros forem selecionados para o relatório, enquanto o restante do modelo de relatório será produzido para cada registro. Isto é concluído com o uso da seguinte sintaxe:

$<$summary>
...
$</>

As seções de resumo podem ser colocadas no início e no final dos relatórios, mas não podem ser colocadas no conteúdo de um relatório. Por exemplo, se o seu modelo incluir um título, esse título deverá estar dentro de uma seção de resumo no início do relatório ou após o fechamento da seção de resumo.

Se um mapa for incluído em uma seção de resumo, ele imprimirá todas as geometrias de todos os registros de entrada em um único mapa. Você também pode usar sintaxe adicional para especificar ainda mais a geometria exibida. Veja os seguintes exemplos:

  • ${inspectionLocation | size:400:300}—Exibe todos os registros de entrada.
  • ${inspectionLocation | orderByFields:"creationDate DESC" | resultRecordCount:3 | size:400:300}—Exibe os três registros mais recentes entre todos os registros de entrada.
  • ${$shape | where:"1=1 !important" | drawingInfo:"currentLayer" | size:400:300}—Imprime todas as geometrias na camada principal usando as informações de desenho da camada principal.
Anotação:

Em uma seção de resumo, a impressão de um mapa ou imagem, incluindo a recuperação de propriedades de um arquivo de anexo, exceto o nome e o tamanho do anexo, é suportada somente fora das repetições. Caso contrário, aparecerá uma mensagem de erro.

A seguinte tabela contém métodos suportados que são úteis para apresentar estatísticas ou moldar a apresentação dos dados do seu relatório:

MétodoDescriçãoExemplo

onde

Retorna somente os registros que atendem a um determinado critério.

${#mainLayer | where:"status='broken'"}...${/}

stats

Uma função agregada derivada de determinados registros na camada.

${mainLayer | where:"status='broken'" | stats:"count,objectId"}

orderByFields

Ordena os registros impressos em um relatório por um ou mais campos em ordem crescente ou decrescente.

${#mainLayer | orderByFields:"state_name ASC,POP2000 DESC"}...${/}

resultRecordCount

Define um número específico de registros a serem impressos.

${#mainLayer | resultRecordCount:3}...${/}

returnDistinctValues

Se definido como verdadeiro, retorna valores únicos se usado com outFields. Se usado com o tipo de estatística count, esse método retornará a contagem de valores únicos no campo.

${#mainLayer | outFields:"status" | returnDistinctValues:true}...${/} ou ${mainLayer | stats:"count,stateName" returnDistinctValues:true}

outFields

Use junto com returnDistinctValues para obter valores únicos de um campo ou combinação de campos. Este método aceita uma lista de campos separados por vírgulas.

${#mainLayer | outFields:"status" | returnDistinctValues:true}...${/}

Agregar funções

As seções de resumo, além de aceitar todas as expressões para modelos de relatório, são ideais para o uso de várias funções de agregação. Essas funções podem ser usadas para retornar um resultado derivado de cada resposta impressa para o relatório. Eles não retornam resultados de toda a camada de feição, a menos que um relatório esteja sendo gerado para todas as feições ou o qualificador !important descrito em Sintaxe adicional seja utilizado. As funções agregadas também podem ser usadas em relatórios individuais, bem como para repetições.

Dica:

Ao visualizar um relatório, as funções de agregação produzem resultados de cada resposta selecionada para impressão, embora os relatórios de amostra de visualização imprimam no máximo 20 resultados por vez.

Para extrair e agregar valores na seção de resumo, você deve definir a camada ou repetir o nome com o nome do campo do qual pretende extrair valores. Lembre-se de que, para pesquisas criadas no web designer Survey123, o nome da camada padrão usado para pesquisas é survey. O nome da camada usado para as respostas da sua pesquisa pode ser encontrado na Referência rápida disponível na caixa de diálogo Gerenciar modelos .

Funções agregadas são controladas através do uso de um filtro denominado stats. Esse filtro se comporta de maneira idêntica para consultas de serviço de feição e utiliza o formato seguinte:

${layerName | stats:"outStatistics":"groupByFieldsForStatistics":"havingClause"}

O parâmetro outStatistics define a operação de estatística e o campo que está sendo usado, e é otimizado para relatórios de resumo, aceitando três parâmetros como uma lista separada por vírgula. Em ordem, defina o seguinte:

  • Um tipo de estatística.
  • A pergunta da qual você deseja obter os resultados.
  • Opcionalmente, inclua um nome de campo para o cálculo resultante; se isso for feito, o nome do campo pode ser referido em outro lugar da mesma forma que qualquer pergunta da pesquisa.

Os parâmetros groupByFieldsForStatistics e havingClause aceitam os mesmos valores das consultas de serviço de feição e são opcionais. Eles podem ser omitidos se não forem necessários.

O exemplo a seguir criaria uma soma de todos os resultados fornecidos à pergunta denominada pop2000:

${mainLayer | stats:"sum,pop2000"}

Os tipos de estatísticas suportados são os seguintes:

ValorDescrição

avg

Média de todas as respostas

count

Quantia de respostas

sum

Soma total de todas as respostas

stddev

O desvio padrão da média

min

Resposta mais baixa para a pergunta

max

Resposta mais alta para a pergunta

var

Variação da média

range

Faixa de valores em todas as respostas (máximo menos mínimo)

first

Primeira resposta à pergunta

last

Última resposta à pergunta

median

Média de todas as respostas

É possível definir vários parâmetros outStatistics, separando-os com um ponto e vírgula. Se vários parâmetros forem usados, a consulta produzirá uma matriz de resultados. No exemplo a seguir, o total da população e a renda média são calculados e exibidos a partir dos registros na camada principal:

${#mainLayer | stats:"sum,pop2000,populationTotal;avg,income,averageIncome"}
Population total: ${populationTotal} 
Average income: ${averageIncome}
${/}

Inclua selecionar valores

Os valores individuais das perguntas podem ser impressos usando a mesma funcionalidade usada para repetições em relatórios individuais. Ao criar um filtro para extrair apenas valores selecionados, você pode aumentar seu resumo com informações específicas extraídas de sua pesquisa.

Anotação:

Se você estiver usando um filtro em um relatório individual, o registro individual será usado como o contexto padrão para o seu filtro. Pode ser necessário usar sintaxe adicional para produzir o resultado desejado.

Um exemplo de filtro usando somente informações selecionadas está abaixo, seguido de explicações sobre seus elementos individuais.

População médiaNome da Organização

${#All_Orgs | stats:"avg,POP,AvgPOP":"Org_NAME":"AVG(POP)>200" | orderByFields:"AvgPOP DESC" | resultRecordCount:5}${AvgPOP | round:2}

${Org_NAME}${/}

  • #All_Orgs—A camada específica que está sendo referida para os dados necessários. Isso inicia a declaração de uma área para extrair dados de resposta como também, para o filtro stats.
  • "avg,POP,AvgPOP"—O parâmetro outStatistics para o filtro de estatística. Neste caso, retorna os números médios de respostas para a pergunta denominada POP, e salva em um campo denominado AvgPOP.
  • "Org_NAME"—O parâmetro groupByFieldsForStatistics para o filtro de estatística. Isso agrupará as respostas médias de acordo com as respostas à pergunta denominada Org_NAME.
  • "AVG(POP)>200"—O parâmetro havingClause para o filtro de estatística. Isso garante que apenas as respostas com uma população média acima de 200 sejam incluídas.
  • orderByFields:"AvgPOP DESC"—O filtro orderByFields lista as respostas com base no conteúdo de um campo específico. Nesse caso, as respostas são listadas de acordo com o campo AvgPOP criado pelo parâmetro outStatistic, em ordem decrescente.
  • resultRecordCount:5—O filtro resultRecordCount limita respostas apenas a um número específico; neste caso, 5.
  • ${AvgPOP | round:2}—O conteúdo do campo AvgPOP, arredondado para duas casas decimais. Este é o único elemento na primeira célula que será exibido no resumo; o próprio filtro de estatísticas não será exibido.
  • ${Org_NAME}—O conteúdo do campo Org_NAME a partir de respostas da pesquisa.
  • ${/}—Finaliza a declaração de uma área para extrair dados de resposta. Como todas essas informações estão apenas em uma tabela, o início e o final dessa área devem ser declarados dentro da mesma tabela.

O resultado desse filtro exibirá cinco linhas de respostas na tabela, adicionando as linhas extras necessárias. O relatório de resumo resultante será semelhante a este:

População médiaNome da Organização

2360.23

A

1639.75

C

1179.7

B

915.93

D

795.57

L

Sintaxe adicional

Além dos parâmetros acima usados ​​para construir um filtro para sua pesquisa, existem parâmetros e qualificadores adicionais que podem ser usados ​​para aprimorar sua consulta.

  • where—Uma cláusula SQL WHERE legal que opera nos campos da camada
    • Um valor explícito—Por exemplo, where:"weather='sunny'" fará com que o filtro use apenas respostas nas quais o campo weather é exatamente o valor sunny.
    • O conteúdo de um campo—Por exemplo, where:"weather='"+cloudCover+"'" usará o conteúdo do campo cloudCover como requisito para o campo weather.
    • Parâmetros adicionais—Por exemplo, where:"weather='"+cloudCover+"' AND temperature='high'" usará respostas nas quais o clima corresponde ao campo cloudCover e o campo de temperatura é exatamente o valor high.
  • !important—Esse qualificador pode ser adicionado a qualquer filtro, mas resultRecordCount para substituir quaisquer restrições nos valores que o filtro retorna. Por exemplo, se você estivesse imprimindo relatórios apenas dos últimos sete dias, where:"weather='sunny' !important" faria com que o filtro usasse apenas respostas nas quais o campo weather é exatamente o valor sunny, mas extrai todas as respostas aplicáveis ​​na camada de feição, em vez de apenas as respostas selecionadas para serem impressas.
  • $inputParams—Este espaço reservado pode ser usado em qualquer filtro, mas resultRecordCount para referenciar os parâmetros que você definiu no site da web Survey123 ao imprimir um relatório. Esses parâmetros podem ser ainda mais qualificados para restringir sua resposta. Por exemplo, orderByFields:"$inputParams, objectid DESC" ordenará os campos usando o conjunto de ordem no site da web Survey123 e, em seguida, decrescente pelo valor de ID do objeto para todos os campos com parâmetros correspondentes. Você também pode utilizar $inputParams para aplicar esses parâmetros às repetições.
Anotação:

Se where for usado com outros filtros, eles deverão ser implementados na ordemwhere, stats, orderByFields, resultRecordCount.