Lección 4: agregar parámetros en cascada (SSRS)
Los parámetros en cascada permiten administrar grandes cantidades de datos de informe. Con ellos podrá mostrar listas de valores para un parámetro que varían en función del valor elegido para el parámetro anterior. El orden es importante para los parámetros en cascada, dado que la consulta de conjunto de datos de un parámetro que aparece más adelante en la lista incluye referencias a parámetros que aparecen antes en la lista.
En esta lección, creará un informe con una consulta de conjunto de datos principal que define tres parámetros de consulta para la categoría, la subcategoría y el producto. Definirá tres conjuntos de datos adicionales para proporcionar los valores disponibles para cada parámetro en cascada.
Para agregar un nuevo informe a un proyecto de servidor de informes abierto
En el Explorador de soluciones, haga clic con el botón secundario en Informes, seleccione Agregar y haga clic en Nuevo elemento.
En el cuadro de diálogo Agregar nuevo elemento, debajo de Plantillas, haga clic en Informe.
En Nombre, escriba CascadingParameters.rdl y, a continuación, haga clic en Agregar.
Se abrirá el Diseñador de informes y se mostrará el nuevo archivo .rdl en la vista Diseño.
Para crear una referencia a un origen de datos compartido
En el panel Datos de informe, haga clic en Nuevo y, a continuación, haga clic en Origen de datos.
En Nombre, escriba AdventureWorks_Ref.
Seleccione Utilizar referencia de origen de datos compartido.
En la lista desplegable, seleccione AdventureWorks.
Haga clic en Aceptar.
Para crear el conjunto de datos principal con una consulta y con parámetros de consulta
En el panel Datos de informe, haga clic con el botón secundario en el origen de datos AdventureWorks_Ref y haga clic en Agregar conjunto de datos.
En Nombre, escriba SalesbyCategory.
En Origen de datos, compruebe que está seleccionado AdventureWorks_Ref.
En Tipo de consulta, compruebe que la opción Texto está seleccionada.
Debajo del panel de consulta, haga clic en Diseñador de consultas.
Para cambiar al diseñador de consultas basado en texto, haga clic en Editar como texto.
Pegue la consulta siguiente:
SELECT PC.Name AS Category, PSC.Name AS Subcategory, P.Name AS Product, SOH.[OrderDate], SOH.SalesOrderNumber, SD.OrderQty, SD.LineTotal FROM [Sales].[SalesPerson] SP INNER JOIN [Sales].[SalesOrderHeader] SOH ON SP.[BusinessEntityID] = SOH.[SalesPersonID] INNER JOIN Sales.SalesOrderDetail SD ON SD.SalesOrderID = SOH.SalesOrderID INNER JOIN Production.Product P ON SD.ProductID = P.ProductID INNER JOIN Production.ProductSubcategory PSC ON P.ProductSubcategoryID = PSC.ProductSubcategoryID INNER JOIN Production.ProductCategory PC ON PC.ProductCategoryID = PSC.ProductCategoryID WHERE (PC.Name = (@Category) AND PSC.Name = (@Subcategory) AND P.Name = (@Product))
La consulta incluye ahora los parámetros de consulta @Category, @Subcategory y @Product.
Haga clic en Ejecutar (!) para ver el conjunto de resultados. Se abrirá el cuadro de diálogo Definir los parámetros de la consulta.
En la columna Valor de parámetro, escriba un valor para cada parámetro de consulta de acuerdo con la tabla siguiente.
Nombre del parámetro
Valor del parámetro
@Category
Components
@Subcategory
Brakes
@Product
Front Brakes
Haga clic en Aceptar.
El conjunto de resultados contiene una lista de números de pedido de ventas, agrupada por fechas, para los frenos delanteros.
Cuando ejecutó la consulta, cada parámetro de consulta generó un parámetro de informe correspondiente. Haga clic dos veces en Aceptar para salir del Diseñador de consultas y del cuadro de diálogo.
(Opcional) En el panel Datos de informe, expanda el nodo Parámetros y compruebe que aparecen los parámetros de informe siguientes: Category, Subcategory y Product.
(Opcional) El valor de cada parámetro de consulta del conjunto de datos está enlazado a un parámetro de informe del mismo nombre. Para comprobarlo, en el panel Datos de informe, haga clic con el botón secundario en SalesbyCategory y, a continuación, haga clic en Propiedades del conjunto de datos.
Haga clic en Parámetros.
En la columna Nombre de parámetro, compruebe que los nombres son @Category, @Subcategory y @Product.
En la columna Valor de parámetro, compruebe que los valores son [@Category], [@Subcategory] y [@Product].
Estas expresiones simples hacen referencia a los parámetros de informe que se ven en el panel Datos de informe.
A continuación, creará un conjunto de datos para proporcionar valores para cada parámetro de informe en tiempo de ejecución. Los valores rellenarán los valores disponibles y también proporcionarán los valores predeterminados para que el informe se ejecute automáticamente.
Para definir un conjunto de datos de valores válidos para un parámetro de informe
En el panel Datos de informe, haga clic con el botón secundario en AdventureWorks_Ref y, a continuación, haga clic en Agregar conjunto de datos.
En Nombre, escriba CategoryValues.
En Origen de datos, compruebe que está seleccionado AdventureWorks_Ref.
En Tipo de consulta, compruebe está seleccionado Texto.
Debajo del panel Consulta, haga clic en Diseñador de consultas.
Para cambiar al diseñador de consultas basado en texto, haga clic en Editar como texto.
Pegue el texto de consulta siguiente en el panel Consulta:
SELECT DISTINCT Name AS Category FROM Production.ProductCategory
El comando SELECT DISTINCT solo recupera los valores únicos de una columna.
Haga clic en Ejecutar (!) para ver el conjunto de resultados. Aparece la columna Category con cuatro valores: Accessories, Bikes, Clothing y Components.
Haga clic en Aceptar.
A continuación, establecerá las propiedades para que el parámetro de informe Category use los valores procedentes de esta consulta para sus valores disponibles y sus valores predeterminados.
Para establecer los valores disponibles y los valores predeterminados para un parámetro de informe
En el panel Datos de informe, en la carpeta Parámetros, haga clic con el botón secundario en Category y, a continuación, haga clic en Propiedades del parámetro.
En Nombre, compruebe que el nombre es Category.
Haga clic en Valores disponibles.
Haga clic en Obtener valores a partir de una consulta. Aparecen tres campos.
En Conjunto de datos, seleccione CategoryValues en la lista desplegable.
En el campo Value, haga clic en Categoy.
En el campo Label, haga clic en Category.
Haga clic en Valores predeterminados.
Haga clic en Obtener valores a partir de una consulta.
En Conjunto de datos, seleccione CategoryValues en la lista desplegable.
En el campo Value, seleccione Category.
Haga clic en Aceptar.
A continuación, modificará el parámetro @Subcategory para que dependa del valor seleccionado para @Category.
Para agregar el conjunto de datos de valores para el parámetro de informe Subcategory
En el panel Datos de informe, haga clic con el botón secundario en AdventureWorks_Ref y, a continuación, haga clic en Agregar conjunto de datos.
En Nombre, escriba SubcategoryValues.
Pegue el texto de consulta siguiente en el panel Consulta:
SELECT DISTINCT PSC.Name AS Subcategory FROM Production.ProductSubcategory AS PSC INNER JOIN Production.ProductCategory AS PC ON PC.ProductCategoryID = PSC.ProductCategoryID WHERE PC.Name = (@Category)
Haga clic en Aceptar.
Aparece el conjunto de datos SubcategoryValues en el panel Datos de informe. Si abre el diseñador de consultas, ejecuta la consulta y especifica la categoría de componentes, el conjunto de resultados muestra 14 filas.
A continuación, establecerá las propiedades para que el parámetro de informe @Subcategory use los valores procedentes de esta consulta para sus valores disponibles y sus valores predeterminados.
Para establecer los valores disponibles y los valores predeterminados para el parámetro de informe Subcategory
En el panel Datos de informe, en la carpeta Parámetros, haga clic con el botón secundario en Subcategory y, a continuación, haga clic en Propiedades del parámetro.
Haga clic en Valores disponibles.
Haga clic en Obtener valores a partir de una consulta.
En Conjunto de datos, seleccione SubcategoryValues en la lista desplegable.
En el campo Value, haga clic en Subcategory.
En el campo Label, haga clic en Subcategory.
Haga clic en Valores predeterminados.
Haga clic en Obtener valores a partir de una consulta.
En Conjunto de datos, seleccione SubcategoryValues en la lista desplegable.
En el campo Value, haga clic en Subcategory.
Haga clic en Aceptar.
A continuación, cree un parámetro @Product que dependa del valor de @Category y del valor de @Subcategory.
Para agregar el conjunto de datos de valores para el parámetro de informe Product
En el panel Datos de informe, haga clic con el botón secundario en AdventureWorks_Ref y haga clic en Agregar conjunto de datos.
En Nombre, escriba ProductValues.
Pegue el texto de consulta siguiente en el panel Consulta:
SELECT DISTINCT P.Name AS Product FROM Production.Product P INNER JOIN Production.ProductSubcategory AS PSC ON P.ProductSubcategoryID = PSC.ProductSubcategoryID INNER JOIN Production.ProductCategory AS PC ON PC.ProductCategoryID = PSC.ProductCategoryID WHERE (PC.Name = (@Category) AND PSC.Name = (@Subcategory))
Haga clic en Aceptar.
Se agrega un conjunto de datos denominado ProductValues con un campo denominado Product al panel Datos de informe.
A continuación, establezca las propiedades para que el parámetro @Product use los valores procedentes de esta consulta para sus valores disponibles y sus valores predeterminados.
Para establecer los valores disponibles y los valores predeterminados para el parámetro de informe Product
En el panel Datos de informe, en la carpeta Parámetros, haga clic con el botón secundario en Product y, a continuación, haga clic en Propiedades del parámetro.
Haga clic en Valores disponibles.
Haga clic en Obtener valores a partir de una consulta.
En Conjunto de datos, seleccione ProductValues en la lista desplegable.
En el campo Value, haga clic en Product.
En el campo Label, haga clic en Product.
Haga clic en Valores predeterminados.
Haga clic en Obtener valores a partir de una consulta.
En Conjunto de datos, seleccione ProductValues en la lista desplegable.
En el campo Value, haga clic en Product.
Haga clic en Aceptar.
A continuación, agregue una tabla de modo que pueda ver el efecto de elegir un valor para cada parámetro en cascada.
Para agregar una tabla para mostrar los resultados
En la vista Diseño, agregue una tabla.
En el panel Datos de informe, desde el conjunto de datos SalesbyCategory, arrastre los campos siguientes hasta las tres celdas de la fila de detalles SalesOrderNumber, OrderQty y LineTotal.
Arrastre Category desde el conjunto de datos SalesbyCategory hasta el panel Grupos de filas y colóquelo sobre el grupo Detalles.
Arrastre Subcategory desde el conjunto de datos SalesbyCategory hasta el panel Grupos de filas y colóquelo debajo de Category.
Arrastre Product desde el conjunto de datos SalesbyCategory hasta el panel Grupos de filas y colóquelo debajo de Subcategory.
Arrastre OrderDate desde el conjunto de datos SalesbyCategory hasta el panel Grupos de filas y colóquelo debajo de Product.
(Opcional) Asigne formato a las celdas siguientes: [LineTotal] como Moneda, [OrderDate] como Fecha.
Para probar los parámetros en cascada
Haga clic en Vista previa.
El informe se ejecuta automáticamente porque ha establecido el valor predeterminado para cada parámetro de informe.
En la lista desplegable Category, seleccione Components.
En la lista desplegable Subcategory, seleccione Brakes.
En la lista desplegable Product, seleccione Front Brakes.
Observe que, a medida que selecciona cada parámetro, la lista desplegable del parámetro siguiente muestra solo los valores válidos disponibles en función de sus selecciones anteriores.
En la barra de herramientas del Visor de informes, haga clic en Ver informe.
El informe muestra los números de pedido de ventas con la cantidad y el total por artículo para los pedidos que incluyen el producto " Front Brakes". En la tabla se muestran los pedidos de ventas organizados por categoría, subcategoría, producto y fecha de pedido.
Pasos siguientes
Ha creado correctamente un informe que muestra los pedidos de ventas que incluyen un producto concreto, usando parámetros en cascada que filtran por categoría de producto, subcategoría y nombre de producto. En la lección siguiente, aprenderá a pasar un parámetro a un informe detallado. Vea Lección 5: agregar parámetros para pasárselos a un informe detallado (SSRS).