API:FireDAC.Comp.Client.TFDTable.Aggregates
Delphi
property Aggregates: TFDAggregates read FAggregates write SetAggregates stored IsAS;
C++
__property Aggregates;
プロパティ
種類 | 可視性 | ソース | ユニット | 親 |
---|---|---|---|---|
property | published | FireDAC.Comp.Client.pas FireDAC.Comp.Client.hpp |
FireDAC.Comp.Client | TFDTable |
説明
データセットに定義されているクライアント側集計のコレクションです。
FireDAC.Comp.Client.TFDTable.Aggregates は FireDAC.Comp.DataSet.TFDDataSet.Aggregates を継承しています。以下の内容はすべて FireDAC.Comp.DataSet.TFDDataSet.Aggregates を参照しています。
データセットに定義されているクライアント側集計のコレクションです。
Aggregates を使用すると、クライアント側の集計式を定義できます。これらは、データセット内のレコード グループまたはすべてのレコードに対して自動的に計算および維持管理されます。
レコード グループ内のレコードはすべて、限定された一連のフィールドのフィールド値が同じです。Aggregates プロパティは、インデックスの 1 つに関連付けられているレコード グループに対して計算されます。これらの集計式は、関連付けられているインデックスが現在のインデックスでかつアクティブになっている場合にのみ計算されます。
集計フィールドを追加しても、Aggregates コレクションに TFDAggregate オブジェクトは追加されません。取り得る方法としては 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);