Share via


Função de agregação (Construtor de Relatórios 3.0 e SSRS)

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

ObservaçãoObservação

É possível criar e modificar definições de relatórios (.rdl) no Report Builder 3.0 e no Designer de Relatórios no Business Intelligence Development Studio. Cada ambiente de criação fornece diferentes maneiras de criar, abrir e salvar relatórios e itens relacionados. Para obter mais informações, consulte Projetando e implementando relatórios usando o Designer de Relatórios (Reporting Services) na Web em microsoft.com.

Sintaxe

Aggregate(expression, scope)

Parâmetros

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

  • scope
    (String) O nome de um conjunto de dados, grupo ou região de dados que contém os itens de relatório aos quais aplicar a função de agregação. Scope deve ser uma constante de 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 agregados 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 para Analysis Services, é possível usar o botão Mostrar Agregação na barra de ferramentas. Para obter mais informações, consulte Interface de usuário do Designer de Consulta MDX do Analysis Services (Construtor de Relatórios 3.0)

Ao exibir a combinação de valores agregados 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 agregados são calculados e exibidos.

O Reporting Services 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çãoObservação

Todos os grupos contentores do item de relatório que faz referência à 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 os campos MDX do tipo LevelProperty (não MemberProperty) para oferecer suporte à agregação usando 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, Previous ou RunningValue.

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

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

Para obter mais informações sobre agregações recursivas, consulte Criando grupos de hierarquias recursivas (Construtor de Relatórios 3.0 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, consulte as funções de agregação listadas em Referência de funções de agregação (Construtor de Relatórios 3.0 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")