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};
プロパティ
種類 | 可視性 | ソース | ユニット | 親 |
---|---|---|---|---|
property | public | FireDAC.Comp.DataSet.pas FireDAC.Comp.DataSet.hpp |
FireDAC.Comp.DataSet | TFDDataSet |
説明
クライアント側の集計コレクションで、データセットに対して定義されます。
Aggregates を使用すると、クライアント側の集計式を定義することができ、これらは、データセット内のレコードのグループ、またはすべてのレコードに対して、自動的に保持および計算されます。
レコードのグループ内のすべてのレコードは、定義された一連のフィールドについては、同じフィールド値を持ちます。Aggregates プロパティは、インデックスのいずれかと関連づけられたレコードのグループを計算します。これらの集計式は、関連付けられているインデックスが、現在のものであり、アクティブである場合にのみ、計算されます。
集計フィールドを追加しても、TFDAggregate オブジェクトは Aggregates コレクションに追加しません。2 つの代替手段があります: 集計フィールドを使用する方法と、Aggregates を使用する方法です。
データセットがデータをフェッチした、または、アプリケーションがデータを編集した際、AggregatesActive が True であると、DataSet は自動的に、Aggregates の値を維持および計算します。アプリケーションがデータセットに対して大規模な更新をかける必要がある場合に、集計値がその更新中に必要なければ、更新前に、AggregatesActive を False に設定し、更新後に元の値に戻します。また、BeginBatch や EndBatch メソッドも参照してください。
集計が保持されている場合、すべてのアクティブな集計オブジェクトの Value メソッドは、データセット内の現在のデータを反映する値を返します。データセット内のデータをユーザーが編集すると、これらの値は再計算されて、ユーザーの変更を反映します。
Aggregates 内の式には、集計関数(SUM
、COUNT
など)が含まれている必要があります。FireDAC は、拡張式構文をサポートしています。
例:
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);
関連項目
- 計算フィールドと集計フィールド
- FireDAC.Comp.DataSet.TFDDataSet.AggregatesActive
- FireDAC.Comp.DataSet.TFDDataSet.BeginBatch
- FireDAC.Comp.DataSet.TFDDataSet.EndBatch