Calcular totales y otros agregados (Reporting Services)

En una región de datos Tablix, puede mostrar los totales agregados de un conjunto de datos de informe, una región de datos o un grupo. Puede usar la agregación predeterminada que proporciona el comando Agregar total y usar el ámbito predeterminado. Como alternativa, puede especificar una función de agregado distinta de las funciones integradas o especificar un ámbito diferente.

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

Descripción del comando Agregar total

Para mostrar los totales generales y los subtotales de grupo de la región de datos Tablix, use el comando de menú contextual Agregar total. El comando Agregar total es contextual. En el caso de una celda situada en el área de grupo de filas, el comando Agregar total agrega automáticamente una fila situada fuera del grupo para calcular los totales. En el caso de una celda situada en el área de grupo de columnas, el comando Agregar total agrega automáticamente una columna situada fuera del grupo para calcular los totales. En el caso de una celda situada en el cuerpo del informe que contiene una expresión de campo numérico, el comando Agregar total permite elegir entre agregar un total a una fila o a una columna. Para obtener más información acerca de cómo usar el comando Agregar total, vea Cómo agregar un total a un grupo o a una región de datos Tablix (Reporting Services).

De forma predeterminada, el comando Agregar total usa la función Sum. Sin embargo, puede cambiar la función Sum por una función integrada distinta y realizar una agregación diferente para un ámbito. También puede escribir sus propias expresiones para calcular los valores de agregado para un ámbito en relación con otro ámbito. Por ejemplo, podría interesarle calcular el porcentaje de un valor de grupo en relación con el conjunto de datos completo. Para obtener más información sobre cómo usar otras funciones integradas para realizar agregaciones, vea Usar las funciones de informe y de agregado integradas en expresiones (Reporting Services). Para obtener la lista de funciones integradas, vea Usar las funciones de informe y de agregado integradas en expresiones (Reporting Services).

Descripción del ámbito predeterminado

Cuando se procesa y se representa una región de datos Tablix, el Diseñador de informes evalúa el valor de cada celda de Tablix en el contexto del ámbito de la celda. Si una celda se encuentra en una fila que está asociada a un grupo de filas o de columnas, dicha celda puede pertenecer a varios grupos. El conjunto de grupos al que pertenece una celda, la región de datos o el conjunto de datos para el que se evalúa una expresión se denomina ámbito. El ámbito predeterminado se define mediante el grupo de filas y de columnas más interno al que pertenece la celda. Las indicaciones visuales le ayudan a identificar los grupos a los que pertenece una celda seleccionada. Para obtener más información, vea Descripción de las celdas, filas y columnas de la región de datos Tablix.

Para obtener un ejemplo de un ámbito predeterminado, la ilustración siguiente tiene un grupo de filas primarias basado en la fecha, un grupo de filas secundarias basado en el orden y un grupo de detalles.

Vista Diseño: total general en tabla básica

Esta ilustración muestra una expresión de campo para Qty y LineTotal en las celdas del cuerpo del Tablix en varias filas. En la lista siguiente se describe el ámbito predeterminado para estas expresiones de campo de cada fila:

  • Fila 1. Esta fila muestra etiquetas de columna que son texto estático. El ámbito predeterminado es la región de datos. La fila solo se repite una vez y a veces recibe el nombre de fila de encabezado.

  • Fila 2. Esta fila muestra datos detallados, lo que se indica mediante el identificador de fila para los detalles (Identificador de fila con 3 líneas paralelas para la fila de detalles). El ámbito predeterminado para [Qty] es el grupo de detalles, formado por los datos del conjunto de datos enlazado a esta región de datos una vez aplicados todos los filtros del conjunto de datos, la región de datos y los grupos. Esta fila se repite una vez por cada fila del conjunto de resultados de la consulta del conjunto de datos. El valor [Qty] muestra los datos detallados del conjunto de datos.

  • Fila 3. Esta fila muestra los valores de agregado. El ámbito predeterminado para [Sum (Qty)] es el grupo de la fila secundaria Order. La fila se repite una vez por cada valor de número de pedido único. El valor [Sum (Qty)] muestra la suma de agregados para cada número de pedido.

  • Fila 4. Esta fila muestra los valores de agregado. El ámbito predeterminado para [Sum (Qty)] es el grupo de la fila primaria Date. La fila se repite una vez por cada valor de fecha único. El valor [Sum (Qty)] muestra la suma de agregados para cada fecha.

  • Fila 5. Esta fila muestra los valores de agregado. El ámbito predeterminado para [Sum (Qty)] es la región de datos. La fila solo se repite una vez y a veces recibe el nombre de fila de pie. El valor [Sum (Qty)] muestra la suma de agregados para la región de datos.

Para obtener más información acerca de los contextos y los ámbitos, vea Usar las funciones de informe y de agregado integradas en expresiones (Reporting Services). Para obtener más información sobre cómo interpretar las indicaciones visuales en las regiones de datos Tablix, vea Descripción de las celdas, filas y columnas de la región de datos Tablix.

Especificar cálculos de agregado con ámbitos con nombre

Para especificar un ámbito distinto del ámbito predeterminado, especifique un ámbito con nombre. Un ámbito con nombre incluye el nombre del conjunto de datos, la región de datos o el grupo. Dado que las expresiones son contextuales, el ámbito con nombre que especifique debe ser válido para la función integrada. Cada función integrada especifica qué ámbitos son válidos como parámetro. Para obtener más información, vea el tema de referencia de la función específica en Usar las funciones de informe y de agregado integradas en expresiones (Reporting Services).

Para obtener un ejemplo de cómo cambiar el ámbito predeterminado por un ámbito con nombre, suponga que un informe tiene las estructuras de datos siguientes:

  • Un conjunto de datos de informe denominado Sales.

  • Una región de datos de tabla denominada Tablix1 que tiene los grupos siguientes:

    • Un grupo de filas primarias denominado Category con un grupo secundario denominado Subcat.

    • Un grupo de columnas primario denominado Geography con un grupo secundario denominado CountryRegion.

Para este informe, se usa el comando Agregar total para agregar los totales a varias celdas. El informe resultante podría parecerse al de la ilustración siguiente.

Grupos de columnas y filas anidadas de matriz con totales

En esta ilustración, se ha seleccionado una de las celdas. Para esta celda seleccionada, los corchetes indicadores de grupo de color naranja muestran la pertenencia a los grupos más profundos: el grupo Category y el grupo CountryRegion. Estas pertenencias a los grupos más internos definen el ámbito predeterminado para esta celda. (Para la celda seleccionada, también hay dos corchetes de grupo de color gris que muestran grupos: el grupo de filas Subcat y el grupo de columnas Geography. Los grupos marcados con un corchete de grupo gris son grupos exteriores para el grupo interno seleccionado o bien no pertenecen al ámbito de la celda seleccionada.)

Esta celda seleccionada tiene la expresión: [Sum(LineTotal)]. Basándose en el ámbito y la expresión de la celda, el informe representado mostrará el valor para el cuadro de texto como la suma de [LineTotal] para cada valor de Subcat específico dentro de cada valor de CountryRegion.

Sin reemplazar la función Sum en la expresión, podría cambiar el ámbito de esta celda de las siguientes formas:

  • Cambie el ámbito para que sea el conjunto de datos Sales.   Por ejemplo, para especificar el total del conjunto de datos, debería cambiar la expresión a =Sum(Fields!LineTotal.Value, "Sales").

  • Cambie el ámbito para que sea la región de datos Tablix1 completa.   Por ejemplo, para calcular el porcentaje en que un grupo contribuye a la región de datos completa, debería cambiar la expresión a =Sum(Fields!LineTotal.Value)/Sum((Fields! LineTotal.Value),"Tablix1").

    En esta nueva expresión, el numerador, Sum(Fields! LineTotal.Value), es la suma de los totales de línea para cada categoría. El denominador, Sum((Fields! LineTotal.Value), "Tablix1"), es la suma de los totales de línea para la región de datos. El resultado es el porcentaje que representa cada categoría de la región de datos total.

    En la celda seleccionada, puede especificar uno de los ámbitos de grupo siguientes para la función Sum: CountryRegion, Geography o Category. No puede especificar el ámbito de grupo Subcat, porque la celda no está en una fila asociada al grupo Subcat.

    [!NOTA]

    Solo puede especificar un único ámbito para una función de agregado. No puede especificar "Category" y "Geography" al mismo tiempo como ámbitos para la expresión del denominador. No se permite especificar varios ámbitos.

Para obtener la lista de funciones integradas, vea Usar las funciones de informe y de agregado integradas en expresiones (Reporting Services).

Ejemplos de especificación de distintos ámbitos

En la tabla siguiente se proporcionan ejemplos de expresiones que usan el ámbito predeterminado, el ámbito de la región de datos y el ámbito del conjunto de datos. En los ejemplos se supone que hay una región de datos Tablix denominada "Tablix1", un conjunto de datos denominado "Sales" con un campo denominado "LineTotal" que contiene el total de un artículo de línea en un pedido de ventas.

Descripción

Expresión

Suma de los totales de cada artículo de línea del ámbito actual.

=Sum(Field!LineTotal.Value)

Porcentaje de (la suma de los totales para cada artículo de línea del ámbito actual)/(la suma de los totales de línea de la región de datos).

Este valor se representa con el formato de visualización predeterminado para el cuadro de texto.

=Sum(Field!LineTotal.Value)/Sum(Field!LineTotal.Value,"Tablix1")

Cuando se sitúa en una fila asociada con el grupo CountryRegion:

Porcentaje de (la suma de los totales para cada artículo de línea del grupo CountryRegion)/(la suma de los totales de línea del grupo Geography).

Este valor se representa con el formato de visualización predeterminado para el cuadro de texto, que debe estar establecido en P1 para obtener el formato #.#%.

=Sum(Field!LineTotal.Value)/Sum(Field!LineTotal.Value,"Geography")

Porcentaje de (la suma de los totales para cada artículo de línea del ámbito actual)/(la suma de los totales de línea de la región de datos).

Se usa IIF para dar formato al valor de modo que el resultado esté en blanco si no hay ningún total para ningún artículo de línea en el grupo actual.

=IIF(Sum(Field!LineTotal.Value)<=0,"", FormatPercent(Sum(Field!LineTotal.Value)/Sum(Field!LineTotal.Value,"Tablix1"),1)

Porcentaje de (la suma de los totales para cada artículo de línea del ámbito actual)/(la suma de los totales de línea del conjunto de datos).

Se usa FormatPercent para dar formato al valor con un decimal.

="Percentage contributing to all sales: " & FormatPercent(Sum(Field!LineTotal.Value)/Sum(Field!LineTotal.Value,"Sales"),1)

Suprimir valores NULL o cero en una celda

Para muchos informes, los cálculos cuyo ámbito son grupos pueden crear muchas celdas con valores cero (0) o NULL. Para conseguir que el informe esté más despejado, agregue una expresión que devuelva espacios en blanco si el valor de agregado es 0. Para obtener más información, vea "Ejemplos que suprimen valores NULL o cero" en Ejemplos de expresiones (Reporting Services).

Historial de cambios

Contenido actualizado

Se ha agregado un vínculo para la agregación personalizada.