Compartilhar via


Usando as referências do conjunto de variáveis de relatórios e grupos em expressões (Reporting Services)

Quando houver um cálculo complexo usado mais de uma vez em expressões em um relatório, convém criar uma variável. É possível criar uma variável do relatório ou uma variável do grupo. Uma variável do relatório é definida uma vez e pode ser usada em expressões em um relatório. Uma variável do grupo é definida uma vez por valor do grupo exclusivo e pode ser usada em expressões no nível atual ou abaixo na hierarquia de grupos.

Variáveis do relatório

Use uma variável do relatório para manter um valor para cálculos dependentes de tempo, como taxas de moeda ou carimbos de data/hora ou para um cálculo complexo avaliado uma vez. Como as expressões nas caixas de texto são avaliadas sob demanda como páginas de um usuário em um relatório, os valores dinâmicos (por exemplo, uma expressão que inclui Now(), uma função que retorna a hora do dia) poderão retornar valores diferentes se você exibir uma página, exibir a próxima página e retornar à primeira página com o botão Voltar. Ao configurar o valor de uma variável do relatório como a expressão =Now() e adicionar a variável à expressão, você garante que o mesmo valor seja usado no processamento do relatório. Uma variável do relatório pode ser mencionada em qualquer expressão em um relatório.

Para adicionar uma variável do relatório, abra a caixa de diálogo RelatórioPropriedades, clique em Variáveis e forneça um nome e um valor. O valor para uma variável do relatório é definido uma vez e permanece inalterado durante o processamento do relatório.

Para fazer referência à variável em uma expressão, use a sintaxe de coleção global, por exemplo, =Variables!CustomTimeStamp.Value. Na superfície de design, o valor é exibido em uma caixa de texto como <<Expr>>.

Variáveis do grupo

Use uma variável do grupo para calcular um valor no escopo de um grupo. Uma variável do grupo é válida apenas no escopo do grupo e de seus grupos filho.

Por exemplo, suponha que uma região de dados exiba dados de inventário para itens que estão em categorias de impostos diferentes e você deseje aplicar taxas de impostos diferentes a cada categoria. Você agrupa os dados em Categoria e define uma variável Tax no grupo pai. Em seguida, você define uma variável de grupo para ItemTax para cada categoria de imposto e atribui cada um dos diferentes subgrupos de Categoria à variável do grupo correto. Por exemplo:

  • Para o grupo pai baseado em [Category], defina a variável Tax com um valor [Tax]. Suponha que os valores da categoria sejam Alimentos e Vestuário.

  • Para o grupo filho baseado em [Subcategory], defina a variável ItemsTax como =Variables!Tax.Value * Sum(Fields!Price.Value). Suponha que os valores da subcategoria para a categoria Alimentos sejam Bebidas e Pães. Suponha que os valores da subcategoria para Vestuário sejam Camisas e Chapéus.

  • Para uma caixa de texto em uma linha no grupo filho, adicione a expressão =Variables!ItemsTax.Value.

    A caixa de texto exibe o imposto total para Bebidas e Pães usando o imposto sobre Alimentos e para Camisas e Chapéus usando o imposto sobre Vestuário.

Para adicionar uma variável do grupo, abra a caixa de diálogo Propriedades do Grupo Tablix, clique em Variáveis e forneça um nome e um valor. A variável do grupo é calculada uma vez por valor do grupo exclusivo.

Para fazer referência à variável em uma expressão, use a sintaxe de coleção global, por exemplo, =Variables!GroupDescription.Value. Na superfície de design, o valor é exibido em uma caixa de texto como <<Expr>>.

Também é possível usar uma variável de grupo em combinação com código personalizado para personalizar um cálculo agregado. Para obter mais informações, consulte Usando variáveis de grupo no Reporting Services 2008 para agregação personalizada e Calculando totais e outros agregados (Reporting Services).

Histórico de alterações

Conteúdo atualizado

Um link para o exemplo de como adicionar agregação personalizada usando variáveis de grupo e código personalizado foi adicionado.