FireDAC.Comp.DataSet.TFDDataSet.Aggregates

De RAD Studio API Documentation
Aller à : navigation, rechercher

Delphi

property Aggregates: TFDAggregates read FAggregates write SetAggregates stored IsAS;

C++

__property TFDAggregates* Aggregates = {read=FAggregates, write=SetAggregates, stored=IsAS};

Propriétés

Type Visibilité  Source Unité  Parent
property public
FireDAC.Comp.DataSet.pas
FireDAC.Comp.DataSet.hpp
FireDAC.Comp.DataSet TFDDataSet


Description

La collection des agrégats côté client définis pour l'ensemble de données.

Utilisez Aggregates pour définir les formules d'agrégation côté client, qui sont automatiquement maintenues et calculées pour un groupe d'enregistrements ou pour tous les enregistrements de l'ensemble de données. 

Tous les enregistrements du groupe d'enregistrements ont les mêmes valeurs de champs pour l'ensemble de champs défini. La propriété Aggregates effectue des calculs pour les groupes d'enregistrements qui sont associés à l'un des index. Ces expressions d'agrégation seront calculées seulement si l'index associé est actif et en cours. 

L'ajout d'un champ d'agrégation n'ajoute pas un objet TFDAggregate à la collection Aggregates. Il existe deux façons de procéder : utiliser des champs d'agrégation ou utiliser Aggregates

DataSet maintient et calcule automatiquement les valeurs Aggregates quand l'ensemble de données récupère les données ou quand l'application modifie les données, si AggregatesActive vaut True. Si l'application a besoin d'effectuer de larges mises à jour sur l'ensemble de données et que des valeurs d'agrégation ne sont pas requises lors de la mise à jour, définissez alors AggregatesActive sur False avant la mise à jour, puis revenez à la valeur d'origine après la mise à jour. Vous pouvez aussi consulter les méthodes BeginBatch et EndBatch

Quand les agrégats sont maintenus, la méthode Value de chaque objet d'agrégation actif renvoie une valeur qui reflète les données en cours de l'ensemble de données. Quand les utilisateurs modifient les données de l'ensemble de données, ces valeurs sont recalculées pour refléter les modifications des utilisateurs. 

Les expressions de Aggregates doivent contenir des fonctions d'agrégation, telles que SUM, COUNT. FireDAC supporte la syntaxe étendue des expressions.

Exemple

with FDMemTable1.Aggregates.Add do begin
  Expression := 'sum(sal + bonus)';
  Active := True;
end;
with FDMemTable1.Aggregates.Add do begin
  Expression := 'sum(sal + bonus)';
  IndexName := 'by_deps';
  Active := True;
end;
FDMemTable1.IndexName := 'by_deps';
FDMemTable1.AggregatesActive := True;

Label1.Caption := 'Total payments : ' + VarToStr(FDMemTable1.Aggregates[0].Value);
Label2.Caption := 'Current department payments : ' + VarToStr(FDMemTable1.Aggregates[1].Value);

Voir aussi

Exemples