Lição 2: Adicionando parâmetros para criar uma lista de valores disponíveis (SSRS)

Valores disponíveis ou valores válidos fornecem aos usuários uma lista de valores possíveis para um parâmetro de relatório. Como o autor de um relatório, você pode fornecer valores válidos de uma consulta especificamente designados para recuperar um conjunto de valores da fonte de dados ou fornecer um conjunto de valores predefinidos. Ao associar um conjunto de valores disponíveis para uma consulta de conjunto de dados que é executada quando o relatório é processado, você garante que somente valores existentes no banco de dados podem ser escolhidos na lista suspensa.

Nesta lição, você modificará o relatório Sales Orders para apresentar uma lista suspensa de nomes de vendedores disponíveis no banco de dados do SQL Server AdventureWorks2008R2. Você definirá uma propriedade de tabela para exibir uma mensagem quando não houver nenhuma linha no conjunto de resultados para o valor do parâmetro selecionado. Quando você escolhe um nome e exibe o relatório, o relatório mostra somente as vendas daquele vendedor.

Para substituir o conjunto de dados existente

  1. No painel Dados do Relatório, clique com o botão direito do mouse no conjunto de dados AdventureWorksDataset e clique em Propriedades do Conjunto de Dados.

    ObservaçãoObservação

    Se o painel Dados do Relatório não estiver visível, no menu Exibir, clique em Dados do Relatório.

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

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

  4. Clique no botão Designer de Consulta para abrir o designer de consulta.

  5. Substitua o texto pela seguinte consulta na caixa de texto:

    SELECT 
       soh.OrderDate AS [Date], DATENAME(weekday, soh.OrderDate) as Weekday,
       soh.SalesOrderNumber AS [Order], 
       pps.Name AS Subcat, pp.Name as Product,  
       SUM(sd.OrderQty) AS Qty,
       SUM(sd.LineTotal) AS LineTotal
    FROM Sales.SalesPerson sp 
       INNER JOIN Sales.SalesOrderHeader AS soh 
          ON sp.BusinessEntityID = soh.SalesPersonID
       INNER JOIN Sales.SalesOrderDetail AS sd 
          ON sd.SalesOrderID = soh.SalesOrderID
       INNER JOIN Production.Product AS pp 
          ON sd.ProductID = pp.ProductID
       INNER JOIN Production.ProductSubcategory AS pps 
          ON pp.ProductSubcategoryID = pps.ProductSubcategoryID
       INNER JOIN Production.ProductCategory AS ppc 
          ON ppc.ProductCategoryID = pps.ProductCategoryID
    GROUP BY ppc.Name, soh.OrderDate, soh.SalesOrderNumber, 
       pps.Name, pp.Name,    soh.SalesPersonID
    HAVING 
    ppc.Name = 'Clothing' 
    AND (soh.OrderDate BETWEEN (@StartDate) AND (@EndDate))
    AND  soh.SalesPersonID = (@BusinessPersonID)
    

    Esta é a mesma consulta anterior, mas com uma condição adicional que limita o conjunto de resultados a um vendedor:

    AND soh.SalesPersonID = (@BusinessPersonID)

  6. Clique no botão Executar (!). Quando os parâmetros de consulta forem solicitados, use a seguinte tabela para digitar valores.

    @StartDate

    1/31/2001

    @EndDate

    1/31/2003

    @BusinessPersonID

    290

  7. Clique em OK. O conjunto de resultados é exibido para o vendedor Ranjit Varkey Chudukatil com SalesPersonID = 290. 

  1. No painel Dados do Relatório, clique em Novo e em Conjunto de Dados. A caixa de diálogo Propriedades do Conjunto de Dados é aberta.

  2. No campo Nome, digite BusinessPersons. Esse conjunto de dados será usado para popular a lista de valores válidos para o parâmetro de relatório SalesPersonID.

  3. Verifique se a fonte de dados é AdventureWorks_Ref.

  4. Cole a seguinte consulta Transact-SQL no painel de consulta:

    SELECT SP.BusinessEntityID, C.FirstName, C.LastName
    FROM   Sales.SalesPerson AS SP INNER JOIN
         HumanResources.Employee AS E ON E.BusinessEntityID = SP.BusinessEntityID INNER JOIN
         Person.Person AS C ON C.BusinessEntityID = E.BusinessEntityID
    ORDER BY SP.BusinessEntityID
    

    Clique duas vezes em OK. Uma lista de campos é populada para o conjunto de dados de BusinesPersons. Esse conjunto de dados será usado para fornecer valores válidos para o parâmetro BusinessPersonID.

  5. Você observará que o conjunto de dados BusinessPersons tem campos denominados FirstName e LastName. Em seguida, esses campos serão concatenados em um campo denominado Name.

Para definir um campo calculado no painel Dados do Relatório

  1. Na barra de ferramentas do painel Dados do Relatório, clique com o botão direito do mouse no conjunto de dados BusinessPersons e clique em Adicionar Campo Calculado. A página Campos da caixa de diálogo Propriedades do Conjunto de Dados é aberta com uma linha nova adicionada à grade.

  2. Na última caixa de texto Nome do Campo, digite Nome para o campo.

  3. Na caixa de texto Origem do Campo, cole a seguinte expressão:

    =Fields!LastName.Value & ", " & Fields!FirstName.Value

  4. Clique em OK.

  5. No painel Dados do Relatório, sob o conjunto de dados BusinessPersons, o novo campo Name é exibido na coleção de campos do conjunto de dados.

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

  2. Em Prompt, digite Selecionar executivo:.

  3. Em Tipo de dados, selecione Integer.

  4. Clique em Valores Disponíveis.

  5. Selecione a opção Obter valores de uma consulta.

  6. Na lista suspensa Conjunto de Dados, selecione BusinessPersons.

  7. Na lista suspensa Campo de valor, selecione BusinessEntityID.

  8. Na lista suspensa Campo de rótulo, selecione Nome.

    Com a seleção de Nome para o rótulo, a lista suspensa de valores válidos para o parâmetro BusinessEntityID agora mostrará o nome em vez do número de cada vendedor.

  9. Clique em Valores Padrão.

  10. Selecione a opção Obter valores de uma consulta.

  11. Na lista suspensa Conjunto de Dados, selecione BusinessPersons.

  12. Na lista suspensa Campo de valor, selecione BusinessEntityID.

  13. Clique em OK. 

  14. Clique na guia Visualizar. O relatório mostra uma lista suspensa com nomes de executivos.

  15. Clique em Exibir Relatório. Selecione outros valores de parâmetros para rever os resultados.

Próximas etapas

Você adicionou uma lista de valores disponíveis para um parâmetro a um relatório existente com êxito. Em seguida, você modificará os parâmetros DayoftheWeek e SalesPersonID para serem de vários valores. Consulte Lição 3: Adicionando parâmetros para selecionar vários valores em uma lista (SSRS).