Compartir a través de


Lección 1: agregar parámetros para filtrar informes por fecha (SSRS)

Al incluir parámetros para las fechas de inicio y de finalización en una consulta del informe, se puede especificar un intervalo de fechas que limite los datos recuperados del origen de datos. Se pueden crear parámetros adicionales para filtrar los datos recuperados del origen de datos.

En esta lección, agregará los parámetros @StartDate y @EndDate a la consulta para limitar los datos recuperados del origen de datos. En el panel Datos de informe, se crean y aparecen automáticamente los parámetros de informe StartDate y EndDate. Los parámetros distinguen entre mayúsculas y minúsculas. Los parámetros de consulta comienzan por el símbolo @, mientras que los parámetros de informe no.

Establecerá el tipo de datos de los parámetros en DateTime y observará que aparece un control de calendario con el cuadro de texto del parámetro en la barra de herramientas del visor de informes. Establecerá valores predeterminados para los parámetros de manera que el informe se ejecute automáticamente. Finalmente, creará un parámetro de informe DayofWeek que no esté enlazado a ningún parámetro de consulta y lo usará para filtrar los datos recuperados desde el origen de datos.

Para este tutorial, es imprescindible haber completado los pasos de Tutorial: Crear un informe de tabla básico.

Para abrir un proyecto de servidor de informes existente

  1. Haga clic en Inicio, seleccione Todos los programas, seleccione Microsoft SQL Server 2008 R2 y, a continuación, haga clic en Business Intelligence Development Studio.

  2. En el menú Archivo, seleccione Abrir y haga clic en Proyecto o solución.

  3. Haga clic en Tutorial y, a continuación, elija Tutorial.sln. Este es el tutorial que se creó en Tutorial: Crear un informe de tabla básico.

  4. Haga clic en Aceptar para abrir el proyecto. El proyecto Tutorial se muestra en el Explorador de soluciones con un informe denominado Sales Orders.rdl.

    Nota: si el Explorador de soluciones no está visible, en el menú Ver, haga clic en Explorador de soluciones.

Para convertir un origen de datos incrustado en compartido

  1. En el panel Datos de informe, haga clic con el botón secundario en el origen de datos AdventureWorks y seleccione Convertir a origen de datos compartidos. Se agrega el origen de datos AdventureWorks.rds al Explorador de soluciones.

  2. En el panel Datos de informe, haga clic con el botón secundario en el origen de datos AdventureWorks y seleccione Propiedades del origen de datos.

  3. En Nombre, escriba AdventureWorks_Ref.

  4. Haga clic en Aceptar.

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], 
       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)))
    

    Esta consulta es la misma que la anterior, con la única excepción de que se ha agregado una condición con dos parámetros de límite:

    AND (soh.OrderDate BETWEEN (@StartDate) AND (@EndDate))

  6. Haga clic en Ejecutar (!) en la barra de herramientas. Se abre el cuadro de diálogo Definir parámetros de consulta para solicitarle los valores de los parámetros.

  7. Proporcione dos valores para ver un conjunto de resultados filtrado:

    1. En la columna Valor de parámetro, especifique un valor para @StartDate, por ejemplo, 1/31/2001.

    2. En la columna Valor de parámetro, especifique un valor para @EndDate, por ejemplo, 1/31/2003.

  8. Haga clic en Aceptar. 

  9. El conjunto de resultados muestra un conjunto de datos filtrado para los pedidos de los años 2001 y 2002.

  10. Haga clic en Aceptar dos veces. El panel Datos de informe se rellena con los campos de conjunto de datos. Observe también que, debajo del nodo Parámetros, se crean y aparecen automáticamente dos parámetros de informe, StartDate y EndDate.

Después de haber definido los parámetros de consulta para el informe, deberá cambiar el tipo de datos de los parámetros de informe para que coincida con el tipo de datos de los datos de origen. El valor predeterminado es Texto, que se asigna al tipo de datos String en la mayoría de los orígenes de datos. Si un origen de datos es numérico, booleano o de fecha y hora, deberá cambiar el tipo de datos del parámetro de informe.

Para cambiar el tipo de datos y los valores predeterminados de un parámetro de informe

  1. En el panel Datos de informe, expanda Parámetros y haga doble clic en StartDate. Se abrirá el cuadro de diálogo Propiedades de parámetro de informe.

  2. Compruebe que el nombre del parámetro es StartDate y que el mensaje de petición de datos es Start Date.

  3. En Tipo de datos, seleccione Date/Time.

  4. Haga clic en Aceptar.

  5. En el panel Datos de informe, haga doble clic en EndDate. Compruebe los valores para el nombre y para el mensaje de petición de datos.

  6. En Tipo de datos, seleccione Date/Time.

  7. Haga clic en Aceptar. 

  8. Haga clic en Vista previa. Los parámetros StartDate y EndDate aparecen en la barra de herramientas de informe con un control de calendario. Los controles de calendario aparecen automáticamente cuando el tipo de datos del parámetro es Date/Time y no se ha definido ninguna lista de valores disponibles. Si define una lista de valores disponibles, en su lugar aparece una lista desplegable de valores.

  9. Proporcione dos valores de parámetro para ejecutar el informe:

    1. En el cuadro de texto del parámetro StartDate, escriba la fecha 1/31/2001.

    2. En el cuadro de texto del parámetro EndDate, escriba la fecha 1/31/2003.

  10. Haga clic en Ver informe. El informe muestra solo los datos comprendidos entre los valores de los parámetro de informe.

Una vez que haya creado los parámetros para el informe, podrá agregar valores predeterminados para dichos parámetros. Los parámetros predeterminados permiten que el informe se ejecute automáticamente; en caso contrario, será el usuario quien deba especificar los valores de los parámetros para ejecutar el informe.

Para establecer los valores predeterminados para los parámetros

  1. En la vista Diseño, en el panel Datos de informe, expanda Parámetros y haga doble clic en StartDate. Se abrirá el cuadro de diálogo Propiedades de parámetro de informe.

  2. Haga clic en Valores predeterminados.

  3. Seleccione la opción Especificar valores. Aparecerá el botón Agregar y una cuadrícula Valor vacía.

  4. Haga clic en Agregar. Se agrega una fila vacía a la cuadrícula.

  5. Haga clic en el cuadro de texto Valor y elimine el texto predeterminado (Null).

  6. Escriba 1/31/2001. Haga clic en Aceptar. 

  7. En la vista Diseño, en el panel Datos de informe, expanda Parámetros y haga doble clic en EndDate.

  8. Haga clic en Valores predeterminados.

  9. Seleccione la opción Especificar valores.

  10. Haga clic en Agregar.

  11. Escriba 1/31/2003. Haga clic en Aceptar.

  12. Haga clic en Vista previa. El informe se ejecuta de forma inmediata porque hay valores predeterminados definidos para todos los parámetros.

Para agregar un nuevo campo a la consulta a fin de usarlo para filtrar

  1. Cambie a la vista Diseño.

  2. Haga clic con el botón secundario en el conjunto de datos AdventureWorksDataset y seleccione Propiedades del conjunto de datos. Abra el Diseñador de consultas y reemplace la consulta por esta consulta nueva:

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

    En la consulta, se ha definido una columna calculada adicional para el día de la semana en que tuvo lugar una venta; para ello, se ha agregado el siguiente comando a la instrucción SELECT:

    DATENAME(weekday, soh.OrderDate) as Weekday.

  3. Haga clic en Ejecutar (!). Se abre el cuadro de diálogo Definir parámetros de consulta.

  4. En la columna Valor de parámetro, especifique un valor para @StartDate, por ejemplo, 1/31/2001.

  5. En la columna Valor de parámetro, especifique un valor para @EndDate, por ejemplo 1/31/2003.

  6. Haga clic en Aceptar. Debe ver una nueva columna en el conjunto de resultados con la etiqueta Weekday.

  7. Haga clic en Aceptar dos veces. En el panel Datos del informe, compruebe que Weekday es un campo.

(Opcional) Para dar formato a la fecha en los datos de la tabla que se filtrarán

  1. Haga clic en la ficha Diseño.

  2. Haga clic con el botón secundario en la celda que contiene la expresión de campo [Date] y, a continuación, haga clic en Propiedades de cuadro de texto.

  3. Haga clic en Número y, a continuación, en el campo Categoría, seleccione Fecha.

  4. En el cuadro Tipo, seleccione Lunes, 31 de enero de 2000.

  5. Haga clic en Aceptar.

Para agregar un nuevo parámetro de informe

  1. En la vista Diseño, en el panel Datos de informe, haga clic en Nuevo y, a continuación, haga clic en Parámetro. Se abrirá el cuadro de diálogo Propiedades de parámetro de informe.

  2. En Nombre, escriba DayoftheWeek.

  3. En Pedir datos, escriba Filter on the day of the week:.

  4. Compruebe que el tipo de datos es Text.

  5. Haga clic en Valores predeterminados.

  6. Seleccione la opción Especificar valores. Aparecerá el botón Agregar y una cuadrícula Valor vacía.

  7. Haga clic en Agregar.

  8. Escriba Friday.

  9. Haga clic en Aceptar.  

Para establecer un filtro de tabla con una expresión de parámetro

  1. En la vista Diseño, haga clic con el botón secundario en un identificador de fila o de columna de la tabla y seleccione Propiedades de Tablix.

    Nota

    La región de datos de tabla es una plantilla basada en una región de datos Tablix.

  2. Haga clic en Filtros. Aparece una cuadrícula de filtro vacía.

  3. Haga clic en Agregar. Se agrega una fila vacía a la cuadrícula.

  4. En Expresión, seleccione [Weekday] en la lista desplegable.

  5. Compruebe que en Operador, se muestra el signo igual (=).

  6. Haga clic en el botón de expresión (fx) situado junto al cuadro de texto Valor. Se abre el cuadro de diálogo Expresión.

  7. En Categoría, haga clic en Parámetros. Aparecerá la lista actual de parámetros en el panel Valores. Haga doble clic en DayoftheWeek. La expresión de parámetro se agrega al cuadro de texto de expresión. Ahora aparece la siguiente expresión en el cuadro de texto de expresión: =Parameters!DayoftheWeek.Value.

  8. Haga clic en Aceptar. Vuelva a hacer clic en Aceptar para salir del cuadro de diálogo Propiedades de Tablix.

    Ahora, el filtro de la tabla está establecido para que compare el valor del campo Weekday con el valor del parámetro DayoftheWeek. Por ejemplo, si escribe el valor Friday en la barra de herramientas de informe para DayoftheWeek, el procesador de informes procesará únicamente las filas de la tabla en las que el valor del campo Weekday es Friday.

    Haga clic en Vista previa. Puesto que todos los parámetros poseen valores predeterminados, el informe se ejecuta automáticamente. En la tabla solo se muestran valores que están dentro del intervalo de fechas definido por StartDate y EndDate, y que caen en viernes (Friday).

Pasos siguientes

Ha realizado correctamente las tareas siguientes: definir parámetros de consulta y de informe, establecer valores predeterminados para los parámetros y establecer un filtro en la tabla. En la lección siguiente, aprenderá a crear una lista de valores disponibles, o de valores válidos, para un parámetro. Vea Lección 2: agregar parámetros para crear una lista de valores disponibles (SSRS).