Compartilhar via


Referências de variáveis de grupo e de relatório em um relatório paginado (Construtor de Relatórios)

Aplica-se a: Microsoft Report Builder (SSRS) Power BI Report Builder Report Designer no SQL Server Data Tools

Quando há um cálculo complexo que é usado mais de uma vez nas expressões de um relatório paginado, convém criar uma variável. É possível criar uma variável do relatório ou uma variável do grupo. Os nomes de variável devem ser exclusivos em um relatório.

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.

Variáveis de 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. Por padrão, uma variável do relatório é calculada 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.

Para adicionar uma variável do relatório, abra a caixa de diálogo ReportProperties, selecione Variáveis e forneça um nome e um valor. Os nomes são cadeias de caracteres que diferenciam maiúsculas de minúsculas, começando com uma letra e sem espaços. Um nome pode conter letras, números ou sublinhados (_).

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 data/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 definir o valor de uma variável do relatório para a expressão =Now()e, em seguida, adicionar a variável à sua expressão, você garante que o mesmo valor seja usado em todo o 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çã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, consulte Visualizar relatórios no Construtor de Relatórios.

Zariáveis de grupo

Use uma variável do grupo para calcular uma expressão complexa uma vez 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ê queira aplicar taxas de impostos distintas 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, selecione 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>>.