FireDAC.Comp.DataSet.TFDDataSet.Aggregates
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
- Champs calculés et champs d'agrégation
- FireDAC.Comp.DataSet.TFDDataSet.AggregatesActive
- FireDAC.Comp.DataSet.TFDDataSet.BeginBatch
- FireDAC.Comp.DataSet.TFDDataSet.EndBatch
Exemples
- Exemple FireDAC TFDQuery Aggregates