FireDAC.Comp.DataSet.TFDDataSet.Aggregates

提供: RAD Studio API Documentation
移動先: 案内検索

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 プロパティは、インデックスの 1 つに関連付けられているレコード グループに対して計算されます。これらの集計式は、関連付けられているインデックスが現在のインデックスでかつアクティブになっている場合にのみ計算されます。

集計フィールドを追加しても、Aggregates コレクションに TFDAggregate オブジェクトは追加されません。取り得る方法としては 2 つの選択肢があります。つまり、集計フィールドを使用するか、Aggregates を使用するか、です。

AggregatesActiveTrue の場合、データセットでデータが取得される、あるいはアプリケーションでデータが編集されると、DataSet では Aggregates 値を自動的に計算および維持管理します。アプリケーションでデータセットへの大量の更新を行う必要があり、更新中に集計値が必要ない場合は、更新の前に AggregatesActiveFalse に設定し、更新の後で元の値に戻します。BeginBatch メソッドおよび EndBatch メソッドも参照してください。

集計値が維持管理される際には、アクティブな集計オブジェクトごとに Value メソッドが、データセット内の現在のデータを反映した値を返します。ユーザーがデータセット内のデータを編集すると、これらの値は、ユーザーによる変更を反映するように再計算されます。

Aggregates に割り当てられている式には、SUMCOUNT などの集計関数が含まれていなければなりません。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);

関連項目