Usando parâmetros para controlar dados do relatório

Geralmente os parâmetros de relatório filtram dados do relatório recuperados de uma fonte de dados. A filtragem de dados na fonte de dados pode melhorar o desempenho do processamento e a exibição de um relatório. Quando que não for possível filtrar dados na fonte, você pode usar parâmetros para filtrar dados do relatório depois de recuperados. Também é possível classificar e agrupar dados em um relatório com base nos parâmetros do relatório.

Filtrando dados na fonte de dados

Para filtrar dados na fonte de dados, use os parâmetros de consulta na consulta de conjunto de dados. Para cada parâmetro de consulta, o Reporting Services cria um parâmetro de relatório correspondente. Quando o usuário seleciona valores para o parâmetro de relatório, os valores são passados para a consulta. Quando a consulta é executada na fonte de dados, apenas aqueles valores especificados pelo usuário são recuperados para o relatório. Propriedades, como um prompt do usuário e valores padrão, são aplicados ao parâmetro de relatório.

Parâmetros de consulta

Os parâmetros de relatório são criados automaticamente quando os parâmetros de consulta estão definidos. No Construtor de Relatórios, os parâmetros de relatório são criados automaticamente quando um prompt está definido em uma cláusula de filtro.

Ao definir um conjunto de dados, você especifica um tipo específico de fonte de dados, por exemplo, MicrosoftSQL Server. O Designer de Relatórios abre um designer de consulta designado para trabalhar com esse tipo de fonte de dados. Quando a consulta de cada conjunto de dados está definida, o designer de consulta identifica as variáveis dentro do texto de comando da consulta e cria um parâmetro de consulta para cada uma. Nem toda combinação de fonte de dados e provedor de dados oferecem suporte a consultas com variáveis. Para obter mais informações sobre a sintaxe da consulta esperada pela fonte de dados, consulte Usando parâmetros de consulta com fontes de dados específicas (Reporting Services).

Para uma fonte de dados SQL Server, geralmente as consultas incluem variáveis na cláusula WHERE de uma instrução Transact-SQL para limitar o escopo dos dados retornados quando uma consulta é executada. De modo semelhante, uma consulta de fonte de dados do Analysis Services geralmente inclui variáveis MDX usadas em uma cláusula FILTER. As consultas também podem incluir variáveis passadas como entradas para procedimentos armazenados ou funções definidas pelo usuário.

Sempre que a consulta de um conjunto de dados é modificada, a consulta é reprocessada. Se você alterar uma consulta removendo ou renomeando uma variável, os parâmetros de consulta refletirão essas alterações.

É possível criar parâmetros de conjunto de dados adicionais na página Parâmetros da caixa de diálogo Propriedades do Conjunto de Dados. Os parâmetros criados não são alterados quando a consulta é alterada.

O valor padrão de cada parâmetro de consulta é definido como uma expressão que é avaliada para o parâmetro de relatório correspondente. Para alterar o padrão, use a página Parâmetros da caixa de diálogo Propriedades do Conjunto de Dados. Por exemplo, para uma fonte de dados SQL Server, se o parâmetro de consulta for @MyParameter, o parâmetro de relatório será MyParameter e o valor de @MyParameter será definido para a expressão [@MyParameter]. Para obter mais informações, consulte Caixa de diálogo Propriedades do Conjunto de Dados, Parâmetros. E possível editar os parâmetros de consulta e definir seus valores padrão manualmente. Para obter mais informações, consulte Como associar um parâmetro de consulta a um parâmetro de relatório.

Os parâmetros de relatório criados automaticamente usam os seguintes padrões:

  • Valor único

  • Tipo de dados Text

  • Prompt definido para o nome do parâmetro

  • Nenhum valor padrão

  • Nenhum valor disponível

Você pode precisar alterar essas propriedades com base no tipo de dados que o parâmetro de consulta representa. Para obter mais informações, consulte Criando parâmetros de relatório e configurando propriedades de parâmetros de relatório.

ObservaçãoObservação

Quando você remove ou altera o nome de um parâmetro de consulta, o parâmetro de relatório correspondente não é automaticamente removido ou alterado. Se você remover um parâmetro de consulta e não precisar do parâmetro de relatório correspondente, deverá excluí-lo manualmente. Se você alterar o nome de um parâmetro de consulta, quando a consulta for salva, um novo parâmetro de relatório correspondente ao nome alterado será criado. É possível renomear o parâmetro de relatório para que corresponda ao novo nome do parâmetro de consulta e atualizar as propriedades do parâmetro do conjunto de dados para vincular o parâmetro de consulta ao parâmetro de relatório.

Parâmetros dependentes ou em cascata

Ao criar uma consulta que usa vários parâmetros de consulta, é possível criar um conjunto de parâmetros em cascata. Os parâmetros em cascata fornecem uma maneira de filtrar um número muito grande de valores de parâmetros até um número menor de valores gerenciáveis. Por exemplo, suponha que uma consulta inclua os parâmetros @Category, @Subcategory e @Product, em que a lista de subcategorias seja dependente de @Category, e a lista de produtos seja dependente da @Subcategory. Quando um usuário seleciona um valor para o parâmetro de relatório Category, os valores de Subcategory são limitados aos valores válidos da categoria escolhida. Depois que o usuário seleciona um valor para Subcategory, as opções para Product já foram filtradas pela opção de categoria e subcategoria. Usando esta técnica, é possível reduzir as opções válidas para um parâmetro até um número de valores razoáveis.

Para criar parâmetros em cascata, inclua os seguintes itens no relatório:

  • A consulta do conjunto de dados principal que possui vários parâmetros de consulta relacionados.

  • Um lista ordenada de parâmetros de relatório, cada um associado a um parâmetro de consulta. Geralmente, eles são criados automaticamente a partir da consulta principal. Cada parâmetro dependente deve seguir o parâmetro do qual ele é dependente. A ordem de parâmetros pode ser alterada no painel Dados do Relatório, onde é possível mover os parâmetros para cima e para baixo na coleção. Para obter mais informações, consulte Com alterar a ordem de um parâmetro de relatório (Reporting Services).

  • Um conjunto de dados separado para cada parâmetro de relatório que fornece seus valores disponíveis. É importante usar a mesma ortografia com diferenciação de maiúsculas e minúsculas para cada parâmetro de consulta para que os parâmetros de consulta e os parâmetros de relatório sejam vinculados adequadamente. A consulta de cada conjunto de valores disponíveis para cada parâmetro de relatório deve fornecer apenas valores que fazem sentido no contexto da consulta principal.

No exemplo, o parâmetro de relatório Product é dependente de Subcategory que é dependente de Category. Category deve ter precedência, seguido por Subcategory e, em seguida, Product. A consulta do conjunto de dados que fornece valores disponíveis para Category deve mostrar todas as categorias válidas para a consulta principal. A consulta que fornece valores disponíveis para Subcategory depois que você tiver uma categoria escolhida, deve fornecer valores válidos para a Category fornecida, mais todas as restrições que existam na consulta principal.

Para obter mais informações, consulte Como adicionar parâmetros em cascata a um relatório (Reporting Services).

Filtrando dados do relatório após executar uma consulta

Também é possível criar parâmetros de relatório e usá-los em expressões de filtro para filtrar dados em um conjunto de dados do relatório, em uma região de dados ou em um grupo Tablix. Para obter mais informações, consulte Filtrando dados em um relatório e Como adicionar um filtro (Reporting Services).

Os parâmetros de relatório fazem parte de uma definição de relatório quando você cria um relatório, mas que podem ser gerenciados independentemente após a publicação de um relatório. Depois que a definição de relatório é publicada, você pode modificar as propriedades de parâmetros usando o Gerenciador de Relatórios. Para obter mais informações, consulte Definindo propriedades em um relatório publicado.

Trabalhando com valores válidos de alteração rápida de um parâmetro

Quando você especifica valores disponíveis que são alterados rapidamente, os valores podem tornar-se obsoletos antes do relatório ser executado. Isso pode fazer com que um usuário selecione um valor da lista que não será mais válido quando o valor for enviado e o relatório for executado. Para evitar isso, escreva consultas que retornem conjuntos de dados de listas de valores válidos que não sejam alterados quando um usuário típico selecionar um valor e executar o relatório.

Além disso, evite a alteração rápida de valores não consultados. Por exemplo, se você fornecer a data atual como um valor disponível, escreva uma expressão que use a propriedade DateTime.Today em vez da propriedade DateTime.Now. Isso elimina a alteração rápida da parte de hora do valor. Também é possível usar uma variável de relatório ou uma variável de grupo como uma maneira de calcular um valor uma vez e mantê-lo constante durante o processamento do relatório. Para obter mais informações, consulte Usando as referências do conjunto de variáveis de relatórios e grupos em expressões (Reporting Services).