Lección 2: Agregar parámetros para crear una lista de valores disponibles (Generador de informes 2.0)
Los valores disponibles, o valores válidos, proporcionan a los usuarios una lista de posibles valores para un parámetro de 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 un usuario solo pueda elegir los valores existentes en el origen de datos subyacente.
En esta lección modificará el informe Sales Order para presentar una lista desplegable de nombres de vendedores disponibles en la base de datos AdventureWorks2008. 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 la consulta de conjunto de datos existente
En el panel Datos de informe, haga clic con el botón secundario en DataSet1 y, a continuación, haga clic en Consulta. Se abre el diseñador de consultas.
En el panel Consulta, reemplace el texto de consulta existente por la siguiente 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 incluye un parámetro de consulta para el vendedor que se encarga del pedido de ventas:
AND SH.SalesPersonID = (@BusinessPersonID)
Haga clic en el botón Ejecutar (!). Cuando se le soliciten los parámetros de consulta, use la tabla siguiente para escribir los valores.
@StartDate
20010101
@EndDate
20030101
@BusinessPersonID
290
Haga clic en Aceptar. Aparecerá el conjunto de resultados para el vendedor Ranjit Varkey Chudukatil con SalesPersonID = 290.
Luego, creará un nuevo conjunto de datos que enumera los nombres de los vendedores.
Para rellenar una lista de valores válidos para un parámetro de informe
En la barra de herramientas del 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 SalesPersons. 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 AdventureWorks2008.
Haga clic en Diseñador de consultas y, a continuación, haga clic en Editar como texto.
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. En el panel Datos de informe, el nuevo conjunto de datos muestra tres campos: BusinessEntityID, FirstName y LastName. Este conjunto de datos se usará para proporcionar valores válidos para el parámetro BusinessPersonID.
Luego, creará un campo de conjunto de datos adicional que concatena FirstName y LastName en un campo denominado Name. Los campos que define se conocen como campos calculados.
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 SalesPersons 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 SalesPersons, aparece el nuevo campo Name en la colección de campos del conjunto de datos.
A continuación, apuntará al parámetro de informe BusinessPersonID a fin de usar este conjunto de datos para sus valores válidos.
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 sales 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 identificador de empresa.
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 Ejecutar. El informe muestra una lista desplegable con los nombres de los vendedores.
Haga clic en Ver informe.
El informe muestra los pedidos de ventas para el vendedor seleccionado que coinciden con los límites especificados por los parámetros de informe. Es posible que algunas combinaciones de fechas, días de la semana y vendedor no tengan ningún resultado.
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 BusinessPersonID para aceptar varios valores. Vea Lección 3: Agregar parámetros para seleccionar varios valores de una lista (Generador de informes 2.0).