6
集計フィールドを計算フィールドに追加できますか?TClientDatasetで計算フィールドを集計する
以下のフィールドを持つCDSがあると仮定:
- ID(自動インクリメント)
- 名(文字列)
- 価格(フロート)
- 量(整数)
- 合計(整数) - 計算フィールド - 価格*数量
集計してTotal列の合計を取得します。出来ますか?
集計フィールドを計算フィールドに追加できますか?TClientDatasetで計算フィールドを集計する
以下のフィールドを持つCDSがあると仮定:
集計してTotal列の合計を取得します。出来ますか?
はい、計算されたフィールドをInternalCalcフィールドに変更すると可能です。計算はOnCalcFieldsイベントでも行われますが、そのフィールドの計算を行うときにInternalCalcの状態をチェックする必要があります。
['aggregate fields'](http://edn.embarcadero.com/article/29272)はどうですか?彼らはこの目的のために良いと思われる。 – TLama
@TLamaもちろん、SUM(Price * Quantity)で集約フィールドを作成することはできますが、計算されたフィールドに集約する方法が問題でした。これは、計算されたフィールドにFieldKind = fkInternalCalcがある場合にのみ機能します。 –
主に評価のシーケンスです:InternalCalcフィールドは、集計およびソートの前に計算されているため、集計およびインデックスとして使用できます。計算されたフィールドはそれ以降に評価されます。 InternalCalcフィールドはTClientDataSetsでのみサポートされています。 –