Partilhar via


Funções do Construtor de Relatórios – função de agregação em um relatório paginado (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

Retorna uma agregação personalizada da expressão especificada em um relatório paginado, conforme definido pelo provedor de dados.

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.

Sintaxe

  
Aggregate(expression, scope)  

Parâmetros

expressão
A expressão na qual executar a agregação. A expressão deve ser uma referência de campo simples.

escopo
(String) O nome de um conjunto de dados, um grupo ou uma região de dados que contém os itens de relatório aos quais a função de agregação deve ser aplicada. O escopo precisa ser uma constante da cadeia de caracteres e não pode ser uma expressão. Se scope não estiver especificado, será usado o escopo atual.

Tipo de retorno

O tipo de retorno é determinado pelo provedor de dados. Retornará Nothing se o provedor de dados não oferecer suporte a esta função ou se os dados não estiverem disponíveis.

Comentários

A função Aggregate fornece um método para usar agregações que são calculadas na fonte de dados externa. O suporte para esse recurso é determinado pela extensão de dados. Por exemplo, a extensão de processamento de dados do SQL Server Analysis Services recupera conjuntos de linhas simples de uma consulta MDX. Algumas linhas no conjunto de resultados podem conter valores de agregação calculados no servidor de fonte de dados. Eles são conhecidos como agregações do servidor. Para exibir as agregações do servidor no designer de consultas gráficas do Analysis Services, é possível usar o botão Mostrar Agregação na barra de ferramentas. Para obter mais informações, confira Interface do usuário do Designer de Consultas MDX do Analysis Services (Construtor de Relatórios).

Ao exibir a combinação de valores de agregação e do conjunto de dados de detalhes nas linhas de detalhes de uma região de dados Tablix, normalmente as agregações do servidor não são incluídas porque não são dados de detalhes. No entanto, talvez você queira exibir todos os valores recuperados para o conjunto de dados e personalizar a maneira como os dados de agregação são calculados e exibidos.

O Construtor de Relatórios detecta o uso da função Aggregate em expressões no relatório para determinar se as agregações do servidor devem ser exibidas nas linhas de detalhes. Se a Aggregate for incluída em uma expressão em uma região de dados, as agregações do servidor poderão ser exibidas apenas nas linhas do grupo total ou do total geral, não nas linhas de detalhes. Para exibir as agregações do servidor nas linhas de detalhes, não use a função Aggregate .

É possível alterar este comportamento padrão, alterando o valor da opção Interpretar subtotais como detalhes na caixa de diálogo Propriedades do Conjunto de Dados . Quando esta opção está definida como True, todos os dados, incluindo agregações do servidor, são exibidos como dados de detalhes. Quando está definida como False, as agregações do servidor são exibidas como totais. A configuração desta propriedade afeta todas as regiões de dados vinculadas a este conjunto de dados.

Observação

Todos os grupos contentores do item de relatório que faz referência a Aggregate devem ter referências de campos simples para suas expressões de grupos, por exemplo, [FieldName]. Não é possível usar a Aggregate em uma região de dados que usa expressões de grupos complexas. Para a extensão de processamento de dados do SQL Server Analysis Services, a consulta deve incluir campos MDX do tipo LevelProperty (não MemberProperty) para dar suporte à agregação com a função Aggregate.

Expression pode conter chamadas para funções de agregação aninhadas com as seguintes exceções e condições:

  • Scope para agregações aninhadas deve ser igual ao escopo da agregação externa ou deve estar contido nela. Para todos os escopos distintos na expressão, um escopo deve estar em uma relação filho com todos os outros escopos.

  • Scope para agregações aninhadas não pode ser o nome de um conjunto de dados.

  • Expression não deve conter a função First, Last, Previousou RunningValue .

  • Expression não deve conter agregações aninhadas que especifiquem recursive.

Para obter mais informações, confira Referência de funções de agregação (Construtor de Relatórios e SSRS) e Escopo das expressões para totais, agregações e coleções internas (Construtor de Relatórios e SSRS).

Para obter mais informações sobre agregações recursivas, confira Criando grupos de hierarquias recursivas (Construtor de Relatórios e SSRS).

Comparando as funções Agregação e Soma

A função de Aggregate difere das funções de agregação numéricas, como Sum , pelo fato de que a função de Aggregate retorna um valor calculado pelo provedor de dados ou pela extensão de processamento de dados. As funções de agregação numéricas, como Sum , retornam um valor calculado pelo processador de relatório em um conjunto de dados determinado pelo parâmetro scope . Para obter mais informações, confira as funções de agregação listadas em Referência de funções de agregação (Construtor de Relatórios e SSRS).

Exemplo

O seguinte exemplo de código mostra uma expressão que recupera uma agregação do servidor para o campo LineTotal. A expressão é adicionada a uma célula em uma linha que pertence ao grupo GroupbyOrder.

=Aggregate(Fields!LineTotal.Value, "GroupbyOrder")