Fonction Aggregate (Générateur de rapports version 2.0)

Retourne une agrégation personnalisée de l'expression spécifiée, telle que définie par le fournisseur de données.

Syntaxe

Aggregate(expression, scope)

Paramètres

Type de retour

Le type de retour est déterminé par le fournisseur de données. La fonction retourne Nothing si le fournisseur de données ne prend pas en charge cette fonction ou si les données ne sont pas disponibles.

Notes

La fonction Aggregate permet de prendre en charge les fonctionnalités du fournisseur de données. Par exemple, l'extension pour le traitement des données SQL ServerAnalysis Services utilise un fournisseur de données qui récupère des ensembles de lignes aplatis d'une requête MDX. Certaines lignes du jeu de résultats peuvent contenir des valeurs d'agrégation calculées sur le serveur de la source de données. Elles sont connues sous le nom d'agrégats de serveur. Pour afficher les agrégats de serveur dans le concepteur de requêtes graphique pour Analysis Services, vous pouvez utiliser le bouton Afficher les agrégations dans la barre d'outils. Pour plus d'informations, consultez Interface utilisateur du Concepteur de requêtes MDX Analysis Services (Générateur de rapports version 2.0).

Lorsque vous affichez la combinaison des valeurs d'agrégation et de dataset détaillées sur les lignes de détails d'une région de données d'un tableau matriciel, les agrégats de serveur ne sont en général pas inclus, car il ne s'agit pas de données de détail. Toutefois, vous pouvez afficher toutes les valeurs récupérées pour le dataset et personnaliser la façon dont les données d'agrégation sont calculées et affichées.

Reporting Services détecte l'utilisation de la fonction Aggregate dans les expressions de votre rapport pour déterminer s'il convient d'afficher les agrégats de serveur sur les lignes de détails. Si vous incluez Aggregate dans une expression d'une région de données, les agrégats de serveur peuvent apparaître uniquement sur les lignes du total de groupe ou du total général, mais pas sur les lignes de détails. Si vous souhaitez afficher les agrégats de serveur sur les lignes de détails, n'utilisez pas la fonction Aggregate.

Vous pouvez modifier ce comportement par défaut en changeant la valeur de l'option Interpréter les sous-totaux comme des lignes de détails dans la boîte de dialogue Propriétés du dataset. Lorsque cette option a la valeur True, toutes les données, y compris les agrégats de serveur, apparaissent comme données de détail. Lorsque cette option a la valeur False, les agrégats de serveur apparaissent comme totaux. Le paramètre de cette propriété affecte toutes les régions de données liées à ce dataset.

[!REMARQUE]

Tous les groupes contenant l'élément de rapport qui fait référence à Aggregate doivent disposer de références de champ simples pour leurs expressions de groupe, par exemple [FieldName]. Vous ne pouvez pas utiliser Aggregate dans une région de données qui utilise des expressions de groupe complexes. Pour l'extension pour le traitement des données SQL ServerAnalysis Services, votre requête doit inclure des champs MDX de type LevelProperty (et non MemberProperty) pour prendre en charge l'agrégation à l'aide de la fonction Aggregate.

Comparaison des fonctions d'agrégation et Sum

La fonction Aggregate diffère des fonctions d'agrégation numériques comme Sum, car la fonction Aggregate retourne une valeur calculée par le fournisseur de données ou l'extension pour le traitement des données. Les fonctions d'agrégation numériques comme Sum retournent une valeur calculée par le processeur de rapports sur un jeu de données du dataset déterminé par le paramètre scope. Pour plus d'informations, consultez les fonctions d'agrégation répertoriées dans Utilisation de fonctions de rapport et d'agrégation intégrées dans des expressions (Générateur de rapports version 2.0).

Exemple

L'exemple de code suivant affiche une expression qui récupère un agrégat de serveur pour le champ LineTotal. L'expression est ajoutée à une cellule d'une ligne qui appartient au groupe GroupbyOrder.

=Aggregate(Fields!LineTotal.Value, "GroupbyOrder")