Lição 2: Adicionando parâmetros para criar uma lista de valores disponíveis
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 Pedidos 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 o conjunto de dados existente
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ção Se o painel Dados do Relatório não estiver visível, no menu Exibir, clique em Dados do Relatório.
Em Fonte de Dados, verifique se o AdventureWorks_Ref está selecionado.
Em Tipo de consulta, verifique se Texto está selecionado.
Clique no botão Designer de Consulta para abrir o designer de consulta.
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)
Clique no botão Executar (!). Quando os parâmetros de 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.
Para popular uma lista de valores válidos para um parâmetro de relatório
No 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 BusinessPersons. 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 é AdventureWorks_Ref.
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.
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 Nome.
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 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.
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, sob o conjunto de dados BusinessPersons, o novo campo Nome é exibido na coleção de campos do conjunto de dados.
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 executivo:.
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 número de cada vendedor.
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 na guia Visualizar. O relatório mostra uma lista suspensa com nomes de executivos.
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.