Lección 2: agregar parámetros para crear una lista de valores disponibles (SSRS)
Los valores disponibles, o valores válidos, proporcionan a los usuarios una lista de posibles valores para un parámetro de informe. Como autor del informe, puede proporcionar valores válidos procedentes de una consulta especialmente diseñada para recuperar un conjunto de valores del origen de datos, o puede proporcionar un conjunto predefinido de valores. Al enlazar un conjunto de valores disponibles a una consulta del conjunto de datos que se ejecuta cuando se procesa el informe, se asegura de que solo se puedan seleccionar de la lista desplegable los valores existentes en la base de datos.
En esta lección modificará el informe Sales Orders para presentar una lista desplegable de nombres de vendedores disponibles desde la base de datos AdventureWorks2008R2 de SQL Server. Establecerá una propiedad de tabla para mostrar un mensaje cuando no haya filas en el conjunto de resultados para el valor de parámetro seleccionado. Cuando elija un nombre y vea el informe, este solo mostrará las ventas de ese vendedor.
Para reemplazar el conjunto de datos existente
En el panel Datos de informe, haga clic con el botón secundario en el conjunto de datos AdventureWorksDataset y, a continuación, haga clic en Propiedades del conjunto de datos.
Nota
Si no ve el panel Datos de informe, en el menú Ver, haga clic en Datos de informe.
En Origen de datos, compruebe que AdventureWorks_Ref está seleccionado.
En Tipo de consulta, compruebe que está seleccionada la opción Texto.
Haga clic en el botón Diseñador de consultas para abrir el Diseñador de consultas.
Reemplace el texto del cuadro de texto por la consulta siguiente:
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 consulta es la misma que la anterior, con la única excepción de que se ha agregado una condición que limita el conjunto de resultados a un solo vendedor:
AND soh.SalesPersonID = (@BusinessPersonID)
Hacer clic en el botón Ejecutar (!). Cuando se le soliciten los parámetros de consulta, use la tabla siguiente para escribir los valores.
@StartDate
1/31/2001
@EndDate
1/31/2003
@BusinessPersonID
290
Haga clic en Aceptar. Aparecerá el conjunto de resultados para el vendedor Ranjit Varkey Chudukatil con SalesPersonID = 290.
Para rellenar una lista de valores válidos para un parámetro de informe
En el panel Datos de informe, haga clic en Nuevo y, a continuación, haga clic en Conjunto de datos. Se abre el cuadro de diálogo Propiedades del conjunto de datos.
En el campo Nombre, escriba BusinessPersons. Este conjunto de datos se usará para rellenar la lista de valores válidos para el parámetro de informe SalesPersonID.
Compruebe que el origen de datos es AdventureWorks_Ref.
Pegue la siguiente consulta de Transact-SQL en el panel 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
Haga clic en Aceptar dos veces. Se rellena una lista de campos para el conjunto de datos BusinessPersons. Este conjunto de datos se usará para proporcionar valores válidos para el parámetro BusinessPersonID.
Observará que el conjunto de datos BusinessPersons tiene campos denominados FirstName y LastName. A continuación, concatenaremos estos campos en un campo denominado Name.
Para definir un campo calculado en el panel Datos de informe
En la barra de herramientas del panel Datos de informe, haga clic con el botón secundario en el conjunto de datos BusinessPersons y, a continuación, haga clic en Agregar campo calculado. Se abre la página Campos del cuadro de diálogo Propiedades del conjunto de datos con una nueva fila agregada a la cuadrícula.
En el último cuadro de texto Nombre de campo, escriba Name.
En el cuadro de texto Origen del campo, pegue la expresión siguiente:
=Fields!LastName.Value & ", " & Fields!FirstName.Value
Haga clic en Aceptar.
En el panel Datos de informe, debajo del conjunto de datos BusinessPersons, aparece el nuevo campo Name en la colección de campos del conjunto de datos.
Para rellenar el parámetro de informe con una lista de valores disponibles
En el panel Datos de informe, expanda el nodo Parámetros y haga clic con el botón secundario en BusinessPersonID; a continuación, haga clic en Propiedades del parámetro.
En Pedir datos, escriba Select business person:.
En Tipo de datos, seleccione Integer.
Haga clic en Valores disponibles.
Seleccione la opción Obtener valores de una consulta.
En la lista desplegable Conjunto de datos, seleccione BusinessPersons.
En la lista desplegable Campo de valor, seleccione BusinessEntityID.
En la lista desplegable Campo de etiqueta, seleccione Name.
Al seleccionar Name para la etiqueta, la lista desplegable de valores válidos para el parámetro BusinessEntityID ahora mostrará el nombre de cada vendedor en lugar del número.
Haga clic en Valores predeterminados.
Seleccione la opción Obtener valores de una consulta.
En la lista desplegable Conjunto de datos, seleccione BusinessPersons.
En la lista desplegable Campo de valor, seleccione BusinessEntityID.
Haga clic en Aceptar.
Haga clic en la ficha Vista previa. El informe muestra una lista desplegable con los nombres de los vendedores.
Haga clic en Ver informe. Seleccione otros valores de parámetro para revisar los resultados.
Pasos siguientes
Ha agregado correctamente una lista de valores disponibles para un parámetro a un informe existente. A continuación, modificará los parámetros DayoftheWeek y SalesPersonID para que sean parámetros de varios valores. Vea Lección 3: Agregar parámetros para seleccionar varios valores de una lista (SSRS).