Funções do Construtor de Relatórios – referência de funções de agregação em relatórios paginados (Construtor de Relatórios)

Aplica-se a: SSRS (Construtor de Relatórios da Microsoft) Power BI Report Builder Report Designer no SQL Server Data Tools

Para incluir valores agregados no relatório paginado, é possível usar funções de agregação internas em expressões. A função de agregação padrão para campos numéricos é SUM. É possível editar a expressão e usar uma função de agregação interna diferente ou especificar outro escopo. O escopo identifica qual conjunto de dados deve ser usado no cálculo.

À medida que o processador de relatório combina os dados e o layout do relatório, as expressões de cada item do relatório são avaliadas. Ao exibir cada página do relatório, você vê os resultados de cada expressão nos itens de relatório renderizados.

A seguinte tabela lista as categorias de funções internas a serem incluídas em uma expressão:

Para determinar os escopos válidos para uma função, consulte o tópico de referência da função individual. Para obter mais informações e exemplos, confira Escopo das Expressões para Totais, Agregações e Coleções Internas (Construtor de Relatórios e SSRS).

Observação

Você pode criar e modificar arquivos de definição de relatório paginado (.rdl) no Construtor de Relatórios da Microsoft, Construtor de Relatórios do Power BI e no Designer de Relatórios no SQL Server Data Tools.

Funções de agregação internas

As seguintes funções internas calculam valores resumidos para um conjunto de dados numéricos não nulos no escopo padrão ou no escopo nomeado.

Função Descrição
Avg Retorna a média de todos os valores numéricos não nulos especificados pela expressão, avaliados no escopo fornecido.
Count Retorna uma contagem de valores não nulos especificados pela expressão, avaliados no contexto do escopo fornecido.
CountDistinct Retorna uma contagem de todos os valores não nulos distintos especificados pela expressão, avaliados no contexto do escopo fornecido.
Max Retorna o valor máximo de todos os valores numéricos não nulos especificados pela expressão, no contexto do escopo fornecido. É possível usar essa função para especificar o valor máximo de um eixo do gráfico para controlar a escala.
Min Retorna o valor mínimo de todos os valores numéricos não nulos especificados pela expressão, no contexto do escopo fornecido. É possível usar essa função para especificar o valor mínimo de um eixo do gráfico para controlar a escala.
StDev Retorna o desvio padrão de todos os valores numéricos não nulos especificados pela expressão, avaliados no escopo fornecido.
StDevP Retorna o desvio padrão da população de todos os valores numéricos não nulos especificados pela expressão, avaliados no contexto do escopo fornecido.
Sum Retorna a soma de todos os valores numéricos não nulos especificados pela expressão, avaliados no escopo fornecido.
Union Retorna a união de todos os valores de dados espaciais não nulos do tipo SqlGeometry ou SqlGeography especificados pela expressão e avaliados no contexto do escopo fornecido.
Var Retorna a variação de todos os valores numéricos não nulos especificados pela expressão, avaliados no escopo fornecido.
VarP Retorna a variação da população de todos os valores numéricos não nulos especificados pela expressão, avaliados no contexto do escopo fornecido.

Ícone de seta usado com o link Voltar ao inícioVoltar ao início

Restrições em campos internos, coleções e funções de agregação

A tabela a seguir resume as restrições em locais no relatório em que é possível adicionar expressões que contêm referências a coleções internas globais.

Local no relatório Campos parâmetros ReportItems PageNumber

TotalPages
DataSource

DataSet
Variáveis RenderFormat
Cabeçalho de página

Rodapé de página
Sim Sim No máximo um

Observação 1
Sim Sim Sim Sim
Corpo Sim

Observação 2
Sim Apenas itens no escopo atual ou em um escopo contentor

Observação 3
Não Sim Sim Sim
Parâmetro de relatório Não Apenas parâmetros anteriores da lista

Observação 4
Não No No No Não
Campo Sim Sim Não No No No Não
Parâmetro de consulta Não Sim Não No No No Não
Expressão de grupo Sim Sim Não No Sim Não Não
Expressão de classificação Sim Sim Não No Sim Sim

Observação 5
Não
Expressão de filtro Sim Sim Não No Sim Sim

Observação 6
Não
Código Não Sim

Observação 7
Não No No No Não
Report.Language Não Sim Não No No No Não
Variáveis Sim Sim Não No Sim Escopo atual ou contentor Não
Agregações Sim Sim Apenas cabeçalho da página/rodapé da página Apenas em agregações de item de relatório Sim Não Não
Funções de Lookup Sim Sim Sim Não Sim Não Não
  • Observação 1. ReportItems deve existir na página de relatório renderizada ou o seu valor será Nulo. Se a visibilidade de um item de relatório depender de uma expressão que é avaliada como False, o item de relatório não existirá na página.

  • Observação 2. Se uma referência de campo usada em um escopo de grupo não estiver incluída na expressão de grupo, o valor do campo será indefinido, a menos que haja apenas um valor no escopo. Para especificar um valor, use Primeiro ou Último e o escopo de grupo.

  • Observação 3. Expressões que incluem uma referência a ReportItems podem especificar valores para outros ReportItems no mesmo escopo de grupo ou em um escopo de grupo contentor.

  • Observação 4. Os valores de propriedade de parâmetros anteriores podem ser nulos.

  • Observação 5. Somente em classificações de Membro. Não é possível usar em expressões de classificação de região de dados.

  • Observação 6. Somente em filtros de Membro. Não é possível usar em região de dados ou em expressões de filtro de conjunto de dados.

  • Observação 7. A coleção Parâmetros não é inicializada até o bloco de Código ser processado. Portanto, os métodos não podem ser usados para controlar parâmetros na inicialização.

  • Observação 8. O tipo de dados de todas as agregações - exceto Count e CountDistinct - deve ser o mesmo, ou nulo, para todos os valores.

Ícone de seta usado com o link Voltar ao inícioVoltar ao início

Restrições em agregações aninhadas

A tabela a seguir resume as restrições nas quais as funções de agregação podem especificar outras funções de agregação como agregações aninhadas.

Contexto RunningValue RowNumber Primeiro

Último
Previous Sum e outras funções de classificação prévia Agregações de ReportItem Funções de Lookup Função de agregação
Valor em uso Não No No No Sim Não Sim Não
Primeiro

Último
Não No No No Sim Não No Não
Previous Sim Sim Sim Não Sim Não Sim Não
Sum e outras funções de classificação prévia Não No No No Sim Não Sim Não
Agregações de ReportItem Não No No No No No No Não
Funções de Lookup Sim Sim

Observação 1
Sim

Observação 1
Sim

Observação 1
Sim

Observação 1
Sim

Observação 1
Não Não
Função de agregação Não No No No No No No Não
  • Observação 1. As funções de agregação só serão permitidas na expressão Source de uma função Lookup se a função Lookup não estiver contida em uma agregação. As funções de agregação não são permitidas nas expressões Destination ou Result de uma função Lookup.

Ícone de seta usado com o link Voltar ao inícioVoltar ao início

Calculando valores em uso

As funções internas a seguir calculam os valores em uso de um conjunto de dados. RowNumber é semelhante a RunningValue pois retorna o valor em uso de uma contagem que é incrementada para cada linha no escopo contentor. O parâmetro do escopo dessas funções deve especificar um escopo de contenção que controle quando a contagem é reiniciada.

Função Descrição
RowNumber Retorna uma contagem contínua do número de linhas para o escopo especificado. A função RowNumber reinicia a contagem em 1, não em 0.
RunningValue Retorna uma agregação contínua de todos os valores numéricos não nulos especificados pela expressão, avaliados para o escopo fornecido.

Ícone de seta usado com o link Voltar ao inícioVoltar ao início

Recuperando contagens de linhas

A função interna a seguir calcula o número de linhas no escopo fornecido. Use esta função para contar todas as linhas, inclusive as linhas com valores nulos.

Função Descrição
CountRows Retorna o número de linhas no escopo especificado, inclusive as linhas com valores nulos.

Ícone de seta usado com o link Voltar ao inícioVoltar ao início

Procurando valores de outro conjunto de dados

As funções de pesquisa a seguir recuperam valores de um conjunto de dados especificado.

Função Descrição
Função Lookup Retorna um valor de um conjunto de dados para uma expressão especificada.
Função LookupSet Retorna um conjunto de valores de um conjunto de dados para uma expressão especificada.
Função Multilookup Retorna o conjunto de primeiros valores correspondentes para um conjunto de nomes de um conjunto de dados que contém pares de nome/valor.

Ícone de seta usado com o link Voltar ao inícioVoltar ao início

Recuperando valores dependentes de classificação

As funções internas a seguir retornam o primeiro, o último ou o valor anterior de um escopo fornecido. Estas funções dependem da ordem de classificação dos valores dos dados. Use estas funções, por exemplo, para localizar o primeiro e o último valor em uma página para criar um cabeçalho de página em estilo de dicionário. Use Previous para comparar um valor em uma linha com o valor da linha anterior dentro de um escopo específico, por exemplo, para localizar valores de porcentagem ano a ano em uma tabela.

Função Descrição
First Retorna o primeiro valor no escopo fornecido da expressão especificada.
Last Retorna o último valor no escopo fornecido da expressão especificada.
Anterior Retorna o valor ou o valor de agregação especificado para a instância anterior de um item do escopo especificado.

Ícone de seta usado com o link Voltar ao inícioVoltar ao início

Recuperando agregações do servidor

A função interna a seguir recupera agregações personalizadas do provedor de dados. Por exemplo, usando um tipo de dados do Analysis Services, é possível recuperar agregações calculadas no servidor de fonte de dados para uso em um cabeçalho de grupo.

Função Descrição
Aggregate Retorna uma agregação personalizada da expressão especificada, conforme definido pelo provedor de dados.

Ícone de seta usado com o link Voltar ao inícioVoltar ao início

Testando para escopo

A função interna a seguir testa o contexto atual de um item de relatório para verificar se ele é membro de um escopo específico.

Função Descrição
InScope Indica se a instância atual de um item está dentro do escopo especificado.

Ícone de seta usado com o link Voltar ao inícioVoltar ao início

Recuperando nível recursivo

A função interna a seguir recupera o nível atual quando uma hierarquia recursiva é processada. Use o resultado dessa função com a propriedade Padding em uma caixa de texto para controlar o nível de recuo de uma hierarquia visual para um grupo recursivo. Para obter mais informações, confira Criar Grupos de Hierarquias Recursivas (Construtor de Relatórios e SSRS).

Função Descrição
Level Retorna o nível atual de profundidade em uma hierarquia recursiva.

Ícone de seta usado com o link Voltar ao inícioVoltar ao início