在TClientDataset中聚合计算字段

Dre*_*gel 6 delphi vcl c++builder tclientdataset aggregate-functions

是否可以在计算字段上添加聚合字段?

假设有一个cds包含以下字段:

  • ID(自动增量)
  • 名称(字符串)
  • 价格(浮动)
  • 数量(整数)
  • 总计(整数) - 计算字段 - 价格*数量

我想添加一个agregate来获得Total列的总和.可能吗?

Uwe*_*abe 5

是的,如果将计算字段更改为InternalCalc字段,则可以执行此操作.计算仍在OnCalcFields事件中完成,但是在对该字段进行计算时必须检查InternalCalc的状态.

  • @TLama,当然你可以使用SUM(Price*Quantity)创建一个聚合字段,但问题是如何在计算字段上进行聚合.这仅在计算字段具有FieldKind = fkInternalCalc时才有效. (3认同)
  • 它主要是评估序列:InternalCalc字段在聚合和排序之前被计算,因此它们可以在聚合中使用并作为索引使用.之后评估计算字段.InternalCalc字段仅在TClientDataSets中受支持. (3认同)