Compartir a través de


Lección 1: Agregar parámetros para filtrar informes por fecha (Generador de informes 2.0)

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 mayúsculas de minúsculas. En Transact-SQL, los parámetros de consulta comienzan por el símbolo @, mientras que los parámetros de informe no, tal y como se muestran en el panel Datos de informe.

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 (Generador de informes 2.0).

Para abrir un informe existente

  1. Haga clic en Inicio, seleccione Programas, Generador de informes de Microsoft SQL Server 2008 y, a continuación, haga clic en Generador de informes 2.0.

  2. En el botón Generador de informes, haga clic en Abrir.

  3. Navegue hasta Pedido de venta. Se trata del informe que se creó en Tutorial: Crear un informe de tabla básico (Generador de informes 2.0).

  4. Haga clic en Abrir. La definición de informe se abre en la vista de diseño.

    A continuación, reemplazará la consulta de conjunto de datos por una consulta que contenga un parámetro de consulta.

Para reemplazar la consulta de conjunto de datos existente

  1. En el panel Datos de informe, haga clic con el botón secundario en el conjunto de datos DataSet1 y, a continuación, haga clic en Consulta. Se abre el diseñador de consultas.

  2. En el panel de consulta, reemplace el texto por la siguiente consulta:

    SELECT
      SH.OrderDate
      ,SH.SalesOrderNumber
      ,SD.OrderQty
      ,SD.LineTotal
      ,P.Name AS [Product]
      ,PS.Name AS [Subcategory]
    FROM
      Sales.SalesOrderHeader AS SH
      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.OnlineOrderFlag = 0
       AND (SH.OrderDate BETWEEN (@StartDate) AND (@EndDate))
    

    Esta consulta es la misma que la anterior, con la excepción de que se ha quitado la cláusula ORDER BY de ordenación y se ha agregado una condición con dos parámetros de límite:

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

  3. Haga clic en Ejecutar (!) en la barra de herramientas. Se abre el cuadro de diálogo Definir parámetros de consulta y se solicita un valor para cada parámetro.

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

    2. En la columna Valor de parámetro, especifique un valor para @EndDate, por ejemplo, 20030101.

  5. Haga clic en Aceptar. 

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

  6. Haga clic en Aceptar. 

    En el panel Datos de informe, expanda el nodo Parámetros para ver los dos parámetros de informe, StartDate y EndDate, que se crean automáticamente a partir de los parámetros de consulta.

    Después de haber definido los parámetros de consulta que representan un fecha u hora, deberá cambiar el tipo de datos de los parámetros de informe para que coincida.

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

  1. En el panel Datos de informe, haga clic con el botón secundario en StartDate y, a continuación, haga clic en Propiedades del parámetro.

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

  3. En Tipo de datos, seleccione Date/Time. De este modo, se establece el tipo de datos del parámetro de informe que se guarda en la definición de informe.

  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 Ejecutar para obtener la vista previa del informe. 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. Puede usar el control de calendario o simplemente escribir las fechas siguientes:

    1. En el cuadro de texto del parámetro StartDate, escriba 2001-01-01.

    2. En el cuadro de texto del parámetro EndDate, escriba 2003-01-01.

  10. Haga clic en Ver informe. El informe solo muestra 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. Cambie a la vista Diseño.

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

  3. Haga clic en Valores predeterminados.

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

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

  6. En el cuadro de texto Valor, reemplace el texto predeterminado (Null) y escriba 2001-01-01.

  7. Haga clic en Aceptar. 

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

  9. Haga clic en Valores predeterminados.

  10. Seleccione la opción Especificar valores.

  11. Haga clic en Agregar.

  12. Escriba 2003-01-01.

  13. Haga clic en Aceptar.

  14. Haga clic en Vista previa. El informe se ejecuta inmediatamente porque cada parámetro tiene un valor predeterminado.

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 DataSet1 y seleccione Propiedades del conjunto de datos. Abra el Diseñador de consultas y reemplace la consulta por esta consulta nueva:

    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.SalesOrderHeader AS SH
      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.OnlineOrderFlag = 0
       AND (SH.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, 20010101.

  5. En la columna Valor de parámetro, especifique un valor para @EndDate, por ejemplo, 20030101.

  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 de informe, compruebe que Weekday es un campo.

    Ahora que la tabla incluye datos que identifican el día de la semana, puede agregar un filtro para que solo se utilicen las ventas específicas de la semana en el informe. Como ayuda para comprobar esto, puede mostrar el día de la semana con la fecha del pedido de venta.

Para aplicar formato a la fecha en la tabla

  1. Cambie a la vista Diseño.

  2. Haga clic en la celda con la expresión de campo OrderDate. En la ficha Inicio, en el grupo Número, haga clic en el selector del cuadro de diálogo.

  3. En Categoría, compruebe que esté seleccionada la opción Fecha.

  4. En el cuadro Tipo, seleccione un tipo de fecha que muestra el día de la semana. Por ejemplo, para la configuración regional Inglés (Estados Unidos), puede seleccionar Lunes, 31 de enero de 2000.

  5. Haga clic en Aceptar.

  6. Haga clic en Ejecutar para obtener la vista previa del informe. La fecha de la primera columna de la tabla muestra el día de la semana, así como la fecha del calendario.

    A continuación, agregará un parámetro para permitir al usuario filtrar por el día de la semana.

Para agregar un nuevo parámetro de informe

  1. Cambie a la vista Diseño.

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

  3. En Nombre, escriba DayoftheWeek.

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

  5. Compruebe que el tipo de datos es Text.

  6. Haga clic en Valores predeterminados.

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

  8. Haga clic en Agregar.

  9. Escriba Friday.

  10. Haga clic en Aceptar. 

    A continuación, agregará un filtro para mostrar únicamente el valor que elija para el parámetro DayoftheWeek. Puede agregar un filtro a la tabla o al conjunto de datos. Este informe incluye una tabla y un gráfico que muestran los mismos datos. Agregue el filtro a la tabla si desea mostrar únicamente los datos filtrados en la tabla. Agregue el filtro al conjunto de datos si desea que la tabla y el gráfico muestren los datos filtrados. En el procedimiento siguiente, establecerá el filtro en el conjunto de datos.

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

  1. En la vista Diseño, en el panel Datos de informe, haga clic con el botón secundario en el conjunto de datos DataSet1 y, a continuación, haga clic en Propiedades del conjunto de datos.

  2. Haga clic en Filtros.

  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. 

    Valor muestra la expresión simple para el parámetro DayoftheWeek: [@DayoftheWeek].

  9. Haga clic en Aceptar. 

    Ahora, el filtro del conjunto de datos está establecido para que se 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. Dado que todos los parámetros poseen valores predeterminados, el informe se ejecuta automáticamente. En la tabla y en el gráfico solo se muestran los valores comprendidos dentro del intervalo de fechas definido por StartDate y EndDate, y que caen en viernes (Friday). Para este conjunto de datos, solo tres fechas caen en viernes:

    • 1 de febrero de 2002

    • 1 de marzo de 2002

    • 1 de noviembre de 2002

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 el conjunto de datos. 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 (Generador de informes 2.0).

Vea también

Otros recursos