Usando referências de coleções de variáveis de grupo e de relatório (Construtor de Relatórios 3.0 e SSRS)

Quando há 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. Por padrão, uma variável do relatório é definida uma vez e pode ser usada em expressões em um relatório. As variáveis de relatório são somente leitura por padrão. Você pode alterar o padrão para habilitar uma variável de relatório como leitura-gravação. O valor em uma variável de relatório é preservado durante toda a sessão, até o relatório ser processado novamente. 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 de grupo não podem ser definidas como leitura-gravação.

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.

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 que seja referenciado várias vezes. Após a inicialização da variável, o valor permanece constante durante toda uma sessão de 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.

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>>.

Você pode usar variáveis de relatório dos seguintes modos:

  • Uso somente leitura   Defina um valor uma vez para criar uma constante para a sessão de relatório, por exemplo, para criar um carimbo de hora.

    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 a função Now(), que retorna a hora do dia) poderão retornar valores diferentes se você percorrer as páginas para a frente e para trás 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.

  • Uso de leitura-gravação   Defina um valor uma vez e serialize-o dentro da sessão de relatório. A opção de leitura-gravação para variáveis fornece uma alternativa melhor do que o uso de uma variável estática no bloco de Código na definição do relatório.

    Quando você desmarca a opção Somente Leitura de uma variável, a propriedade Writable da variável é definida como true. Para atualizar o valor de uma expressão, use o método SetValue, por exemplo, =Variables!MyVariable.SetValue("123").

    ObservaçãoObservação

    Não é possível controlar quando o processador do relatório inicializa uma variável ou avalia uma expressão que atualiza uma variável. A ordem de execução da inicialização da variável não é definida.

Para obter mais informações sobre as sessões, consulte Visualizando Relatórios no Construtor de Relatórios 3.0.

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 Category 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 Category à 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>>.