Lição 2: Adicionando parâmetros para criar uma lista de valores disponíveis (Construtor de Relatórios 2.0)
Valores disponíveis ou valores válidos fornecem aos usuários uma lista de valores possíveis para um parâmetro de relatório. Você pode fornecer valores válidos de uma consulta especificamente criados 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 um usuário possa escolher somente valores existentes na fonte de dados subjacente.
Nesta lição, você modificará o relatório Pedido de Vendas para apresentar uma lista suspensa de nomes de vendedores disponíveis no banco de dados AdventureWorks2008. 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 a consulta do conjunto de dados existente
No painel Dados do Relatório, clique com o botão direito do mouse no DataSet1 e clique em Consulta. O designer de consulta é aberto.
No painel Consulta, substitua o texto de consulta existente pela seguinte consulta:
SELECT SH.OrderDate ,DATENAME(weekday, SH.OrderDate) as Weekday ,SH.SalesOrderNumber ,SD.OrderQty ,SD.LineTotal ,P.Name AS [Product] ,PS.Name AS [Subcategory] FROM Sales.SalesPerson SP INNER JOIN Sales.SalesOrderHeader AS SH ON SP.BusinessEntityID = SH.SalesPersonID INNER JOIN Sales.SalesOrderDetail AS SD ON SH.SalesOrderID = SD.SalesOrderID INNER JOIN Production.Product AS P ON SD.ProductID = P.ProductID INNER JOIN Production.ProductSubcategory AS PS ON PS.ProductSubcategoryID = P.ProductSubcategoryID INNER JOIN Production.ProductCategory AS PC ON PC.ProductCategoryID = PS.ProductCategoryID WHERE PC.Name = 'Clothing' AND (SH.OrderDate BETWEEN (@StartDate) AND (@EndDate)) AND SH.SalesPersonID = (@BusinessPersonID)Esta consulta inclui um parâmetro de consulta para o vendedor que é responsável pelo pedido de venda:
AND SH.SalesPersonID = (@BusinessPersonID)
Clique no botão Executar (!). Quando os parâmetros da consulta forem solicitados, use a seguinte tabela para digitar valores.
@StartDate
20010101
@EndDate
20030101
@BusinessPersonID
290
Clique em OK. O conjunto de resultados é exibido para o vendedor Ranjit Varkey Chudukatil com SalesPersonID = 290.
Em seguida, você criará um conjunto de dados novo que lista os nomes dos vendedores.
Para popular uma lista de valores válidos para um parâmetro de relatório
Na barra de ferramentas do painel Dados do Relatório, clique em Novo e, em seguida, em Conjunto de Dados. A caixa de diálogo Propriedades do Conjunto de Dados é aberta.
No campo Nome, digite SalesPersons. Esse conjunto de dados será usado para popular a lista de valores válidos para o parâmetro de relatório SalesPersonID.
Verifique se a fonte de dados é AdventureWorks2008.
Clique em Designer de Consulta e em Editar como Texto.
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.BusinessEntityIDClique duas vezes em OK. No painel Dados do Relatório, o novo conjunto de dados exibe três campos: BusinessEntityID, FirstName e LastName. Esse conjunto de dados será usado para fornecer valores válidos para o parâmetro BusinessPersonID.
Em seguida, você criará um campo de conjunto de dados adicional que concatena FirstName e LastName em um campo denominado Name. Os campos que você define são conhecidos como campos calculados.
Para definir um campo calculado no painel Dados do Relatório
Na barra de ferramentas do painel Dados do Relatório, clique com o botão direito do mouse no conjunto de dados SalesPersons 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.
Na última caixa de texto Nome do Campo, digite Nome para o campo.
Na caixa de texto Origem do Campo, cole a seguinte expressão:
=Fields!LastName.Value & ", " & Fields!FirstName.Value
Clique em OK.
No painel Dados do Relatório, no conjunto de dados SalesPersons, o novo campo Name é exibido na coleção de campos do conjunto de dados.
Em seguida, você apontará o parâmetro de relatório BusinessPersonID para usar esse conjunto de dados para seus valores válidos.
Para popular o parâmetro de relatório com uma lista de valores disponíveis
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.
Em Prompt, digite Selecionar vendedor:.
Em Tipo de dados, selecione Integer.
Clique em Valores Disponíveis.
Selecione a opção Obter valores de uma consulta.
Na lista suspensa Conjunto de Dados, selecione BusinessPersons.
Na lista suspensa Campo de valor, selecione BusinessEntityID.
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 identificador comercial.
Clique em Valores Padrão.
Selecione a opção Obter valores de uma consulta.
Na lista suspensa Conjunto de Dados, selecione BusinessPersons.
Na lista suspensa Campo de valor, selecione BusinessEntityID.
Clique em OK.
Clique em Executar. O relatório mostra uma lista suspensa com nomes de executivos.
Clique em Exibir Relatório.
O relatório exibe os pedidos de vendas para o vendedor selecionado que correspondem aos limites especificados pelos parâmetros de relatório. Algumas combinações de datas, dias da semana e vendedor não podem ter nenhum resultado.
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 BusinessPersonID para aceitar vários valores. Consulte Lição 3: Adicionando parâmetros para selecionar vários valores em uma lista (Construtor de Relatórios 2.0).