Função de agregação (Reporting Services)
Retorna uma agregação personalizada da expressão especificada, conforme definido pelo provedor de dados.
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 do relatório aos quais a função de agregação deve ser aplicada. Se o scope não estiver especificado, o escopo atual será usado. Para obter mais informações sobre o parâmetro do scope, consulte Usando funções internas de relatório e de agregação em expressões (Reporting Services) e Calculando totais e outros agregados (Reporting Services).
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 uma maneira de oferecer suporte aos recursos do provedor de dados. Por exemplo, a extensão de processamento de dados do SQL ServerAnalysis Services usa um provedor de dados que recupera conjuntos de linhas bidimensionais 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.
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çã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 ServerAnalysis Services, a consulta deve incluir os campos MDX do tipo LevelProperty (não MemberProperty) para oferecer suporte à agregação usando a função Aggregate. |
Comparando as funções de soma e de agregação
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 Usando funções internas de relatório e de agregação em expressões (Reporting Services).
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")