Lição 4: Adicionando parâmetros em cascata (SSRS)

Parâmetros em cascata fornecem um modo de gerenciar grandes quantidades de dados de relatório. Com os parâmetros em cascata, a lista de valores para um parâmetro depende do valor escolhido no parâmetro precedente. A ordem é importante para os parâmetros em cascata porque a consulta do conjunto de dados para um parâmetro posterior inclui referências a parâmetros anteriores na lista.

Nesta lição, você criará um relatório com uma consulta principal de conjunto de dados que define três parâmetros de consulta para categoria, subcategoria e produto. Você definirá três conjuntos de dados adicionais para fornecer valores disponíveis para cada parâmetro em cascata.

Para adicionar um novo relatório a um projeto de servidor de relatório aberto

  1. No Gerenciador de Soluções, clique com o botão direito do mouse em Relatórios, aponte para Adicionar e clique em Novo Item.

  2. Na caixa de diálogo Adicionar Novo Item, em Modelos, clique em Relatório.

  3. Em Nome, digite CascadingParameters.rdl e clique em Adicionar.

    O Designer de Relatórios abre e exibe o novo arquivo .rdl na exibição Design.

Para criar uma referência a uma fonte de dados compartilhada

  1. No painel Dados do Relatório, clique em Nova e, em seguida, em Fonte de Dados.

  2. Em Nome, digite AdventureWorks_Ref.

  3. Selecione Usar referência da fonte de dados compartilhada.

  4. Na lista suspensa, selecione AdventureWorks.

  5. Clique em OK. 

Para criar o conjunto de dados principal com uma consulta e parâmetros de consulta

  1. No painel Dados do Relatório, clique com o botão direito do mouse na fonte de dados AdventureWorks_Ref e clique em Adicionar Conjunto de Dados.

  2. Em Nome, digite SalesbyCategory.

  3. Em Fonte de Dados, verifique se AdventureWorks_Ref está selecionado.

  4. Em Tipo de consulta, verifique se Texto está selecionado.

  5. Abaixo do painel de consulta, clique em Designer de Consulta.

  6. Clique em Editar como Texto para alternar para o designer de consulta baseado em texto.

  7. Cole a seguinte consulta:

    SELECT 
       PC.Name AS Category,
       PSC.Name AS Subcategory,
       P.Name AS Product,
       SOH.[OrderDate],
       SOH.SalesOrderNumber,
       SD.OrderQty, 
       SD.LineTotal
       FROM [Sales].[SalesPerson] SP 
          INNER JOIN [Sales].[SalesOrderHeader] SOH 
          ON SP.[BusinessEntityID] = SOH.[SalesPersonID]
          INNER JOIN Sales.SalesOrderDetail SD
          ON SD.SalesOrderID = SOH.SalesOrderID
          INNER JOIN Production.Product P
          ON SD.ProductID = P.ProductID
          INNER JOIN Production.ProductSubcategory PSC
          ON P.ProductSubcategoryID = PSC.ProductSubcategoryID
          INNER JOIN Production.ProductCategory PC
          ON PC.ProductCategoryID = PSC.ProductCategoryID
          WHERE (PC.Name = (@Category)
             AND PSC.Name = (@Subcategory)
             AND P.Name = (@Product))
    

    A consulta agora inclui os parâmetros de consulta @Category, @Subcategory e @Product.

  8. Clique em Executar (!) para ver o conjunto de resultados. A caixa de diálogo Definir Parâmetros de Consulta é exibida.

  9. Na coluna Valor do Parâmetro, digite um valor para cada parâmetro de consulta usando a tabela abaixo.

    Nome do Parâmetro

    Valor do Parâmetro

    @Category

    Componentes

    @Subcategory

    Freios

    @Product

    Freios dianteiros

  10. Clique em OK. 

    O conjunto de resultados contém uma lista de números de pedidos de venda, agrupados por data, para freios dianteiros.

    Ao executar a consulta, cada parâmetro de consulta gera um parâmetro de relatório correspondente. Clique em OK duas vezes para encerrar o designer de consulta e a caixa de diálogo.

  11. (Opcional) No painel Dados do Relatório, expanda o nó Parâmetros e verifique se os seguintes parâmetros de relatório aparecem: Category, Subcategory e Product.

  12. (Opcional) O valor de cada parâmetro de consulta de conjunto de dados é associado a um parâmetro de relatório de mesmo nome. Para verificar isso, no painel Dados do Relatório, clique com o botão direito do mouse em SalesbyCategory e clique em Propriedades do Conjunto de Dados.

    1. Clique em Parâmetros.

    2. No coluna Nome do Parâmetro, verifique se os nomes são @Category, @Subcategory e @Product.

    3. No coluna Valor do Parâmetro, verifique se os valores são [@Category], [@Subcategory] e [@Product].

      Essas expressões simples referem-se aos parâmetros de relatório exibidos no painel Dados do Relatório.

Em seguida, você criará um conjunto de dados para fornecer valores para cada parâmetro de relatório em tempo de execução. Os valores irão popular os valores disponíveis e também fornecer valores padrão de forma que o relatório seja executado automaticamente.

Para definir um conjunto de dados de valores válido para um parâmetro de relatório

  1. No painel Dados do Relatório, clique com o botão direito do mouse em AdventureWorks_Ref e clique em Adicionar Conjunto de Dados.

  2. Em Nome, digite CategoryValues.

  3. Em Fonte de Dados, verifique se AdventureWorks_Ref está selecionado.

  4. Em Tipo de consulta, verifique se Texto está definido.

  5. Abaixo do painel Consulta, clique em Designer de Consulta.

  6. Clique em Editar como Texto para alternar para o designer de consulta baseado em texto.

  7. Cole o seguinte texto de consulta no painel Consulta:

    SELECT DISTINCT Name AS Category FROM Production.ProductCategory
    

    O comando SELECT DISTINCT recupera apenas valores exclusivos de uma coluna.

  8. Clique em Executar (!) para ver o conjunto de resultados. A coluna Category é exibida com quatro valores: Acessórios, Bicicletas, Vestuário e Componentes.

  9. Clique em OK.

Em seguida, defina as propriedades para o parâmetro de relatório Category a fim de usar valores dessa consulta para obter seus valores disponíveis e seus valores padrão.

Para definir os valores disponíveis e valores padrão para um parâmetro de relatório

  1. No painel Dados do Relatório, na pasta Parâmetros, clique com o botão direito do mouse em Category e em Propriedades do Parâmetro.

  2. Em Nome, verifique se o nome é Categoria.

  3. Clique em Valores Disponíveis.

  4. Clique em Obter valores de uma consulta. Três campos são exibidos.

  5. Em Conjunto de Dados, na lista suspensa, selecione CategoryValues.

  6. No campo Valor, clique em Categoria.

  7. No campo Rótulo, clique em Categoria.

  8. Clique em Valores Padrão.

  9. Clique em Obter valores de uma consulta.

  10. Em Conjunto de Dados, na lista suspensa, selecione CategoryValues.

  11. No campo Valor, selecione Categoria.

  12. Clique em OK.

Depois, você modifica o parâmetro @Subcategory para depender do valor selecionado para @Category.

Para adicionar o conjunto de dados dos valores para o parâmetro de relatório Subcategoria

  1. No painel Dados do Relatório, clique com o botão direito do mouse em AdventureWorks_Ref e clique em Adicionar Conjunto de Dados.

  2. Em Nome, digite SubcategoryValues.

  3. Cole o seguinte texto de consulta no painel Consulta:

    SELECT DISTINCT PSC.Name AS Subcategory 
       FROM Production.ProductSubcategory AS PSC
          INNER JOIN Production.ProductCategory AS PC
          ON PC.ProductCategoryID = PSC.ProductCategoryID
          WHERE PC.Name = (@Category)
    
  4. Clique em OK. 

  5. O conjunto de dados SubcategoryValues é exibido no painel Dados do Relatório. Se você abrir o designer de consulta, executar a consulta e inserir Componentes como a categoria, o conjunto de resultados exibirá 14 linhas.

Em seguida, defina as propriedades do parâmetro de relatório @Subcategory para usar os valores dessa consulta para seus valores disponíveis e seus valores padrão.

Para definir os valores disponíveis e valores padrão para um parâmetro Subcategoria

  1. No painel Dados do Relatório, na pasta Parâmetros, clique com o botão direito do mouse em Subcategory e em Propriedades do Parâmetro.

  2. Clique em Valores Disponíveis.

  3. Clique em Obter valores de uma consulta.

  4. Em Conjunto de Dados, na lista suspensa, clique em SubcategoryValues.

  5. No campo Valor, clique em Subcategoria.

  6. No campo Rótulo, clique em Subcategoria.

  7. Clique em Valores Padrão.

  8. Clique em Obter valores de uma consulta.

  9. Em Conjunto de Dados, na lista suspensa, clique em SubcategoryValues.

  10. No campo Valor, clique em Subcategoria.

  11. Clique em OK.

Crie um parâmetro @Product que depende do valor de @Category e do valor de @Subcategory.

Para adicionar o conjunto de dados dos valores para o parâmetro de relatório Produto

  1. No painel Dados do Relatório, clique com o botão direito do mouse em AdventureWorks_Ref e clique em Adicionar Conjunto de Dados.

  2. Em Nome, digite ProductValues.

  3. Cole o seguinte texto de consulta no painel Consulta:

    SELECT DISTINCT P.Name AS Product
    FROM Production.Product P
       INNER JOIN Production.ProductSubcategory AS PSC
       ON P.ProductSubcategoryID = PSC.ProductSubcategoryID
       INNER JOIN Production.ProductCategory AS PC
       ON PC.ProductCategoryID = PSC.ProductCategoryID
    WHERE (PC.Name = (@Category)
       AND PSC.Name = (@Subcategory))
    
  4. Clique em OK.

    Um conjunto de dados chamado ProductValues com um campo chamado Product é adicionado ao painel Dados do Relatório.

Agora, defina as propriedades para o parâmetro @Product a fim de usar valores dessa consulta para obter seus valores disponíveis e seus valores padrão.

Para definir os valores disponíveis e valores padrão para um parâmetro Produto

  1. No painel Dados do Relatório, na pasta Parâmetros, clique com o botão direito do mouse em Produto e em Propriedades do Parâmetro.

  2. Clique em Valores Disponíveis.

  3. Clique em Obter valores de uma consulta.

  4. Em Conjunto de Dados, na lista suspensa, clique em ProductValues.

  5. No campo Valor, clique em Produto.

  6. No campo de Rótulo, clique em Produto.

  7. Clique em Valores Padrão.

  8. Clique em Obter valores de uma consulta.

  9. Em Conjunto de Dados, na lista suspensa, clique em ProductValues.

  10. No campo Valor, clique em Produto.

  11. Clique em OK.

Adicione uma tabela para que você possa ver o efeito de escolher um valor para cada parâmetro em cascata.

Para adicionar uma tabela a fim de exibir os resultados

  1. Na exibição Design, adicione uma Tabela.

  2. No painel Dados do Relatório, no conjunto de dados SalesbyCategory, arraste os seguintes campos para as 3 células na linha de detalhes para a tabela: SalesOrderNumber, OrderQty, LineTotal.

  3. Arraste Category do conjunto de dados de SalesbyCategory para o painel RowGroups e solte-a sobre o grupo Detalhes.

  4. Arraste Subcategory do conjunto de dados de SalesbyCategory para o painel Grupos de Linhas e solte-a sob Category.

  5. Arraste Product do conjunto de dados de SalesbyCategory para o painel Grupos de Linhas e solte-a sob Subcategory.

  6. Arraste OrderDate do conjunto de dados de SalesbyCategory para o painel Grupos de Linhas e solte-a sob Product.

  7. (Opcional) Formate as seguintes células: [LineTotal] como Moeda, [OrderDate] como Data.

Para testar os parâmetros em cascata

  1. Clique em Visualizar.

    O relatório é executado automaticamente porque você definiu o padrão para cada parâmetro de relatório.

  2. Na lista suspensa Categoria, selecione Componentes.

  3. Na lista suspensa Subcategoria, selecione Freios.

  4. Na lista suspensa Produto, selecione Freios Dianteiros.

    Observe que, ao selecionar cada parâmetro sucessivamente, a lista suspensa para o parâmetro seguinte mostra apenas os valores válidos baseados nas suas opções anteriores.

  5. Na barra de ferramentas do visualizador de relatórios, clique em Exibir Relatório.

O relatório exibe os número de ordem de venda com quantidade da ordem e os totais de linha para as ordens que incluem o produto "freios dianteiros". A tabela exibe as ordens de venda organizadas por categoria, subcategoria, produto e data da ordem.

Próximas etapas

Você criou com êxito um relatório exibindo ordens de venda que incluem um produto específico, usando parâmetros em cascata que filtram por categoria de produto, subcategoria e nome do produto. Na próxima lição, você aprenderá a passar um parâmetro para um relatório de detalhamento. Consulte Lição 5: Adicionando parâmetros a serem passados para um relatório de detalhamento (SSRS).

Consulte também

Conceitos