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

集計フィールドを追加しても、TFDAggregate オブジェクトは Aggregates コレクションに追加しません。2 つの代替手段があります: 集計フィールドを使用する方法と、Aggregates を使用する方法です。 

データセットがデータをフェッチした、または、アプリケーションがデータを編集した際、AggregatesActiveTrue であると、DataSet は自動的に、Aggregates の値を維持および計算します。アプリケーションがデータセットに対して大規模な更新をかける必要がある場合に、集計値がその更新中に必要なければ、更新前に、AggregatesActiveFalse に設定し、更新後に元の値に戻します。また、BeginBatchEndBatch メソッドも参照してください。 

集計が保持されている場合、すべてのアクティブな集計オブジェクトの 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);

関連項目

サンプル