Usar referencias a las colecciones de variables de informe y de grupo en expresiones (Reporting Services)

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. Una variable de informe se establece una sola vez y se puede usar en expresiones en cualquier parte del 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.

Variables de informe

Use una variable de informe para alojar 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 que se evalúan una vez. 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 incluye Now(), una función que devuelve la hora) pueden devolver valores diferentes si se ve una página, se ve la página siguiente y, a continuación, se vuelve a la primera 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. Se puede hacer referencia a una variable de informe en cualquier expresión de un informe.

Para agregar una variable de informe, abra el cuadro de diálogo Propiedadesdel informe, haga clic en Variables y especifique un nombre y un valor. El valor para una variable de informe se establece una vez y permanece sin modificar mientras dura el procesamiento del informe.

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

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 categoría 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 categoría 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>>.

También puede usar una variable de grupo en combinación con código personalizado para personalizar un cálculo de agregado. Para obtener más información, vea Usar variables de grupo en Reporting Services 2008 para la agregación personalizada (en inglés) y Calcular totales y otros agregados (Reporting Services).

Historial de cambios

Contenido actualizado

Se ha agregado un vínculo al ejemplo para incluir la agregación personalizada utilizando variables de grupo y código personalizado.