Aggregate (función de Reporting Services)
Devuelve un agregado personalizado de la expresión especificada, tal como lo ha definido el proveedor de datos.
Sintaxis
Aggregate(expression, scope)
Parámetros
expression
Expresión en la que se lleva a cabo la agregación. La expresión debe ser una referencia de campo sencilla.scope
(String). Nombre de un conjunto de datos, un grupo o una región de datos que contiene los elementos de informe a los que se va a aplicar la función de agregado. Si no se especifica el parámetro scope, se usa el ámbito actual. Para obtener más información acerca del parámetro scope, vea Usar las funciones de informe y de agregado integradas en expresiones (Reporting Services) y Calcular totales y otros agregados (Reporting Services).
Tipo de valor devuelto
El tipo de valor devuelto viene determinado por el proveedor de datos. Devuelve el valor Nothing si el proveedor de datos no admite esta función o no hay datos disponibles.
Notas
La función Aggregate proporciona una manera de admitir las características del proveedor de datos. Por ejemplo, la extensión de procesamiento de datos de SQL ServerAnalysis Services usa un proveedor de datos que recupera conjuntos de filas planas de una consulta MDX. Algunas filas del conjunto de resultados pueden contener valores agregados calculados en el servidor del origen de datos. Estos se conocen como agregados de servidor. Para ver los agregados de servidor en el diseñador gráfico de consultas para Analysis Services, puede usar el botón Mostrar agregaciones de la barra de herramientas. Para obtener más información, vea Interfaz de usuario del Diseñador de consultas MDX de Analysis Services.
Cuando se muestra la combinación de valores agregados y valores de conjunto de datos de detalle en las filas de detalles de una región de datos Tablix, normalmente no se incluyen los agregados de servidor porque no son datos de detalle. Sin embargo, es probable que desee mostrar todos los valores recuperados para el conjunto de datos y personalizar la forma en que se calculan y se muestran los datos agregados.
Reporting Services detecta el uso de la función Aggregate en las expresiones del informe y con ello determina si debe mostrar los agregados de servidor en las filas de detalles. Si incluye Aggregate en una expresión en una región de datos, los agregados de servidor solo podrán aparecer en las filas de total de grupo o en las filas de total general, no en las filas de detalles. Si desea mostrar los agregados de servidor en las filas de detalles, no use la función Aggregate.
Para cambiar este comportamiento predeterminado, cambie el valor de la opción Interpretar los subtotales como filas de detalles en el cuadro de diálogo Propiedades del conjunto de datos. Si esta opción se establece en True, todos los datos, incluidos los agregados de servidor, aparecen como datos de detalle. Si se establece en False, los agregados de servidor aparecen como totales. El valor de esta propiedad afecta a todas las regiones de datos que están vinculadas a este conjunto de datos.
[!NOTA]
Todos los grupos contenedores del elemento de informe que hacen referencia a Aggregate deben incluir referencias de campo sencillas en sus expresiones de grupo; por ejemplo, [FieldName]. No puede usar Aggregate en una región de datos que usa expresiones de grupo complejas. Para la extensión de procesamiento de datos de SQL ServerAnalysis Services, la consulta debe incluir campos MDX de tipo LevelProperty (no MemberProperty) para admitir la agregación mediante la función Aggregate.
Diferencias entre las funciones Aggregate y Sum
La función Aggregate difiere de las funciones de agregado numéricas como Sum en que Aggregate devuelve un valor calculado por el proveedor de datos o por la extensión de procesamiento de datos. Las funciones de agregado numéricas como Sum devuelven un valor calculado por el procesador de informes en un conjunto de datos perteneciente al conjunto de datos determinado por el parámetro scope. Para obtener más información, vea las funciones de agregado incluidas en Usar las funciones de informe y de agregado integradas en expresiones (Reporting Services).
Ejemplo
El ejemplo de código siguiente muestra una expresión que recupera un agregado de servidor para el campo LineTotal. La expresión se agrega a una celda de una fila que pertenece al grupo GroupbyOrder.
=Aggregate(Fields!LineTotal.Value, "GroupbyOrder")