Usar parámetros para controlar los datos de los informes (Generador de informes 2.0)

Los parámetros de informe pueden usarse de dos formas: para filtrar los datos en el origen de datos o para filtrar los datos en el informe. Filtrar los datos en el origen de datos puede mejorar el rendimiento durante el procesamiento y la visualización de un informe. Si no puede filtrar los datos en el origen, puede usar parámetros para filtrar los datos del informe en el informe. También puede usar parámetros para ordenar y organizar los datos en un informe.

Para obtener información general sobre la forma de filtrar los datos, vea Filtrar datos de un informe (Generador de informes 2.0).

Use este tema para obtener información sobre la forma filtrar los datos utilizando parámetros.

Filtrar datos en el origen de datos

Para filtrar los datos en el origen de datos, use parámetros de consulta en la consulta de conjunto de datos. En algunos diseñadores de consultas, es posible agregar campos a un panel Filtro y seleccionar una opción de parámetro para cada campo que desee usar como parámetro de informe. En otros diseñadores de consultas, es posible agregar parámetros de consulta al comando de consulta. Al guardar la consulta, se analiza el texto del comando. Para cada parámetro de consulta, se crea un parámetro de informe correspondiente. Use el nodo Parámetros del panel Datos de informe para ver la lista de parámetros de informe.

Cuando se ejecuta un informe, el usuario selecciona valores para cada parámetro de informe, y estos se pasan a la consulta. Cuando la consulta se ejecuta en el origen de datos, solo se recuperan para el informe los valores especificados por el usuario. También puede especificar el indicador que etiqueta el parámetro de informe en la barra de herramientas del informe.

Parámetros de consulta

Los parámetros de informe se crean automáticamente al definir los parámetros de consulta.

Cuando se define un conjunto de datos, debe especificar un tipo determinado de origen de datos; por ejemplo, MicrosoftSQL Server. Cuando se define la consulta para cada origen de datos, el diseñador de consultas asociado identifica variables en el texto del comando de la consulta y crea un parámetro de consulta para cada uno de ellos. No todas las combinaciones de origen de datos y proveedor de datos admiten consultas con variables. Para obtener más información acerca de la sintaxis de consulta esperada por el origen de datos, vea Usar parámetros de consulta con orígenes de datos específicos (Generador de informes 2.0).

En el caso de los orígenes de datos de SQL Server, las consultas suelen incluir variables en la cláusula WHERE de una instrucción de Transact-SQL para limitar el ámbito de los datos devueltos al ejecutar la consulta. El diseñador de consultas relacionales crea automáticamente una consulta y proporciona una opción para crear una variable de consulta para cada filtro establecido por el usuario. Para obtener más información, vea Interfaz de usuario del Diseñador de consultas relacionales (Generador de informes 2.0).

De forma similar, una consulta de origen de datos de Analysis Services suele incluir variables MDX utilizadas en una cláusula FILTER. Las consultas también pueden incluir variables pasadas como entradas a procedimientos almacenados o funciones definidas por el usuario.

Cada vez que se modifica la consulta de un conjunto de datos, se vuelve a procesar la consulta. Si se modifica una consulta al quitar una variable o cambiarle el nombre, los parámetros de consulta reflejarán esos cambios.

Puede crear parámetros de conjunto de datos adicionales en la página Parámetros del cuadro de diálogo Propiedades del conjunto de datos. Los parámetros creados no cambian cuando cambia la consulta.

El valor predeterminado de cada parámetro de consulta se establece en una expresión que devuelve el parámetro de informe correspondiente. Para cambiar el valor predeterminado, use la página Parámetros del cuadro de diálogo Propiedades del conjunto de datos. Por ejemplo, en un origen de datos de SQL Server, si el parámetro de consulta es @MyParameter, el parámetro de informe será MyParameter y el valor de @MyParameter será la expresión [@MyParameter]. Para obtener más información, vea Propiedades del conjunto de datos (cuadro de diálogo), Parámetros (Generador de informes 2.0). Se pueden editar los parámetros de consulta y establecer sus valores predeterminados de forma manual. Para obtener más información, vea Cómo asociar un parámetro de consulta a un parámetro de informe (Generador de informes 2.0).

Los parámetros de informe que se crean automáticamente usan los valores predeterminados siguientes:

  • Un solo valor

  • Tipo de datos Text

  • El mensaje para el usuario es el nombre del parámetro

  • No hay valores predeterminados

  • No hay valores disponibles

Es posible que necesite cambiar estas propiedades en función del tipo de datos que representa el parámetro de consulta. Para obtener más información, vea Crear parámetros de informe y establecer sus propiedades (Generador de informes 2.0).

[!NOTA]

Cuando se quita o cambia el nombre de un parámetro de consulta, no se quita ni se cambia automáticamente el parámetro de informe correspondiente. Si quita un parámetro de consulta y no necesita el parámetro de informe correspondiente, deberá eliminarlo manualmente. Si cambia el nombre de un parámetro de consulta, al guardar la consulta, se crea un nuevo parámetro de informe que corresponde al nombre cambiado. Puede cambiar el nombre del parámetro de informe para que coincida con el nuevo nombre del parámetro de consulta y actualizar las propiedades del parámetro de conjunto de datos para vincular el parámetro de consulta al parámetro de informe.

En el Generador de informes 1.0, los parámetros de informe se crean automáticamente cuando se establece un símbolo del sistema en una cláusula de filtro.

Parámetros dependientes o en cascada

Si crea una consulta que usa varios parámetros de consulta, puede crear un conjunto de parámetros en cascada. Los parámetros en cascada permiten filtrar un número muy elevado de valores de parámetros y reducirlo a un número más fácil de administrar. Por ejemplo, imagine que una consulta incluye los parámetros @Category, @Subcategory y @Product, donde la lista de subcategorías depende de @Category y la lista de productos depende de @Subcategory. Si un usuario elige un valor para el parámetro de informe Category, los valores para Subcategory se limitarán a los valores válidos para la categoría elegida. Cuando el usuario selecciona un valor para Subcategory, las opciones para Product ya han sido filtradas para Category y Subcategory. Con esta técnica, puede reducir el número de opciones válidas para un parámetro y dejarlas en un número razonable de valores.

Para diseñar parámetros en cascada, debe incluir los elementos siguientes en el informe:

  • La consulta de conjunto de datos principal, que contiene varios parámetros de consulta relacionados.

  • Una lista ordenada de parámetros de informe, cada uno de los cuales está enlazado a un parámetro de consulta. Normalmente, estos se crean automáticamente a partir de la consulta principal. Cada parámetro dependiente debe seguir al parámetro del que depende. El orden de los parámetros se puede cambiar en el panel Datos de informe, donde puede mover hacia arriba y hacia abajo los parámetros de la colección. Para obtener más información, vea Cómo cambiar el orden de un parámetro de informe (Generador de informes 2.0).

  • Un conjunto de datos independiente para cada parámetro de informe que proporcione los valores disponibles. Para que los parámetros de consulta y los parámetros de informe se vinculen correctamente, es importante usar la misma ortografía con distinción de mayúsculas y minúsculas para cada parámetro de consulta. La consulta correspondiente a cada conjunto de valores disponibles para cada parámetro de informe solo debe proporcionar valores que tengan sentido en el contexto de la consulta principal.

En el ejemplo, el parámetro de informe Product depende de Subcategory, y este, a su vez, depende de Category. Category debe aparecer en primer lugar, seguido de Subcategory y de Product. La consulta correspondiente al conjunto de datos que proporciona los valores disponibles para Category debe mostrar todas las categorías que son válidas para la consulta principal. La consulta que proporciona los valores disponibles para Subcategory una vez elegida una categoría debe proporcionar valores que sean válidos para la categoría especificada, además de cualquier restricción que exista en la consulta principal.

Para obtener más información, vea Cómo agregar parámetros en cascada a un informe (Generador de informes 2.0).

Filtrar datos de informe después de ejecutar una consulta

También puede crear parámetros de informe y usarlos en expresiones de filtro para filtrar los datos de un conjunto de datos de informe, de una región de datos o de un grupo de Tablix. Para obtener más información, vea Filtrar datos de un informe (Generador de informes 2.0) y Cómo agregar un filtro (Generador de informes 2.0).

Los parámetros de informe forman parte de una definición de informe cuando se crea un informe, pero se pueden administrar de forma independiente después de publicar un informe. Una vez publicada la definición de informe, se pueden modificar las propiedades de los parámetros mediante el Administrador de informes. Para obtener más información, vea "Establecer propiedades en un informe publicado" en la documentación de Reporting Services en los Libros en pantalla de SQL Server.

Trabajar con valores válidos de un parámetro que cambian con rapidez

Cuando se especifican valores disponibles que cambian con rapidez, los valores pueden llegar a ser obsoletos incluso antes de que se ejecute el informe. Esta situación puede dar lugar a que el usuario seleccione un valor de la lista que haya dejado de ser válido para cuando el usuario lo envíe y ejecute el informe. Para evitarlo, escriba consultas que devuelvan conjuntos de datos para listas de valores válidos que no cambien durante el tiempo que un usuario tarda en seleccionar un valor y ejecutar el informe.

Evite también los valores no consultados que cambian con rapidez. Por ejemplo, si proporciona la fecha actual como un valor disponible, escriba una expresión que utilice la propiedad DateTime.Today en lugar de DateTime.Now. De esta forma, se elimina la parte temporal de cambio rápido del valor. También puede usar una variable de informe o una variable de grupo para calcular un valor una sola vez y mantenerlo constante mientras se procesa el informe. Para obtener más información, vea Usar referencias a las colecciones de variables de informe y de grupo en expresiones (Generador de informes 2.0).