Usar referencias a las colecciones de variables de informe y de grupo (Generador de informes 3.0 y SSRS)

Si existe un cálculo complejo que se usa más de una vez en las expresiones de un informe, es probable que le interese crear una variable. Puede crear una variable de informe o una variable de grupo. De forma predeterminada, una variable de informe se establece una sola vez y se puede usar en expresiones en cualquier parte del informe. Las variables de informe son de solo lectura de forma predeterminada. Puede cambiar el valor predeterminado para habilitar una variable de informe como de lectura y escritura. El valor de una variable de informe se conserva en toda una sesión, hasta que se vuelve a procesar el informe. Una variable de grupo se establece una vez para cada valor de grupo y se puede usar en expresiones en el nivel actual o en un nivel inferior de la jerarquía de grupo. Las variables de grupo no se pueden establecer en lectura y escritura.

Nota

Puede crear y modificar las definiciones de informe (.rdl) en el Generador de informes 3.0 y en el Diseñador de informes en Business Intelligence Development Studio. Cada entorno de creación proporciona varias maneras de crear, abrir y guardar informes y elementos relacionados. Para obtener más información, vea la información sobre el diseño de informes en el Generador de informes 3.0 y el Administrador de informes (SSRS) en el sitio web microsoft.com.

Variables de informe

Use una variable de informe para hospedar un valor para cálculos dependientes del tiempo, como los tipos de cambio de divisas o las marcas de tiempo, o para los cálculos complejos a los que se hace referencia varias veces. Después de la inicialización de la variable, el valor sigue siendo constante en toda una sesión de informe.

Para agregar una variable de informe, abra el cuadro de diálogo Propiedades del informe, haga clic en Variables y especifique un nombre y un valor.

Para hacer referencia a la variable en una expresión, use la sintaxis de colección global, por ejemplo, =Variables!CustomTimeStamp.Value. En la superficie de diseño, el valor aparece en un cuadro de texto como <<Expr>>.

Puede utilizar las variables de informe de varias maneras:

  • Uso de solo lectura   Configure un valor una vez para crear una constante para la sesión del informe, por ejemplo, para crear una marca de tiempo.

    Dado que las expresiones de los cuadros de texto se evalúan a petición mientras el usuario pasa por las páginas de un informe, los valores dinámicos (por ejemplo, una expresión que incluya la función Now(), que devuelve la hora) pueden devolver valores diferentes si se avanza y retrocede de página en página con el botón Atrás. Al establecer el valor de una variable de informe en la expresión =Now() y, a continuación, agregar la variable a una expresión, se asegurará de que se usa el mismo valor durante todo el procesamiento del informe.

  • Uso de lectura y escritura   Configure un valor una vez y serialícelo dentro de una sesión del informe. La opción de lectura y escritura para las variables es más aconsejable que el uso de una variable estática en el bloque de código de la definición del informe.

    Si elimina la opción Solo lectura de una variable, la propiedad Writable de la variable se establece en true. Para actualizar el valor desde una expresión, utilice el método SetValue, por ejemplo, =Variables!MyVariable.SetValue("123").

    Nota

    El momento en que el procesador de informes inicializa una variable o evalúa una expresión que actualiza una variable no se puede controlar. El orden de ejecución para la inicialización de variables no está definido.

Para obtener más información acerca de las sesiones, vea Mostrar la vista previa de informes en el Generador de informes 3.0.

Variables de grupo

Use una variable de grupo para calcular un valor en el ámbito de un grupo. Una variable de grupo solo es válida en el ámbito del grupo y de sus grupos secundarios.

Por ejemplo, imagine que una región de datos muestra datos de inventario para elementos que pertenecen a categorías de impuestos diferentes y que desea aplicar tipos impositivos diferentes a cada categoría. Agrupará los datos por Category y definirá una variable Tax en el grupo primario. A continuación, definirá una variable de grupo para ItemTax para cada categoría de impuesto y asignará cada uno de los subgrupos de Category a la variable de grupo adecuada. Por ejemplo:

  • Para el grupo primario basado en [Category], defina la variable Tax con un valor [Tax]. Imagine que los valores de categoría son Alimentos y Ropa.

  • Para el grupo secundario basado en [Subcategory], defina la variable ItemsTax como =Variables!Tax.Value * Sum(Fields!Price.Value). Imagine que los valores de subcategoría para la categoría Alimentos son Bebidas y Pan. Imagine que los valores de subcategoría para Ropa son Camisas y Sombreros.

  • Agregue la expresión =Variables!ItemsTax.Value para un cuadro de texto de una fila del grupo secundario.

    En el cuadro de texto se muestra el impuesto total para Bebidas y Pan tras aplicar el impuesto para Alimentos, y el impuesto total para Camisas y Sombreros tras aplicar el impuesto para Ropa.

Para agregar una variable de grupo, abra el cuadro de diálogo Propiedades de grupo de Tablix, haga clic en Variables y proporcione un nombre y un valor. La variable de grupo se calcula una vez para cada valor de grupo único.

Para hacer referencia a la variable en una expresión, use la sintaxis de colección global, por ejemplo, =Variables!GroupDescription.Value. En la superficie de diseño, el valor aparece en un cuadro de texto como <<Expr>>.