Share via


Lección 2: Agregar parámetros para crear una lista de valores disponibles

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 sólo 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 procedentes de 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 el conjunto de datos existente

  1. 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.

  2. En Origen de datos, compruebe que AdventureWorks_Ref está seleccionado.

  3. En Tipo de consulta, compruebe que está seleccionada la opción Texto.

  4. Haga clic en el botón Diseñador de consultas para abrir el Diseñador de consultas.

  5. 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)

  6. 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

  7. 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

  1. 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.

  2. 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.

  3. Compruebe que el origen de datos es AdventureWorks_Ref.

  4. 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.

  5. 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

  1. 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.

  2. En el último cuadro de texto Nombre de campo, escriba Name.

  3. En el cuadro de texto Origen del campo, pegue la expresión siguiente:

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

  4. Haga clic en Aceptar.

  5. 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

  1. 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.

  2. En Pedir datos, escriba Select business person:.

  3. En Tipo de datos, seleccione Integer.

  4. Haga clic en Valores disponibles.

  5. Seleccione la opción Obtener valores de una consulta.

  6. En la lista desplegable Conjunto de datos, seleccione BusinessPersons.

  7. En la lista desplegable Campo de valor, seleccione BusinessEntityID.

  8. 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.

  9. Haga clic en Valores predeterminados.

  10. Seleccione la opción Obtener valores de una consulta.

  11. En la lista desplegable Conjunto de datos, seleccione BusinessPersons.

  12. En la lista desplegable Campo de valor, seleccione BusinessEntityID.

  13. Haga clic en Aceptar.

  14. Haga clic en la ficha Vista previa. El informe muestra una lista desplegable con los nombres de los vendedores.

  15. 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.