delphi - 如何访问汇总字段值作为货币?

标签 delphi aggregate currency tclientdataset

当我尝试访问以下行的汇总字段(SUM_TOTAL)的值时:

DM.cdsTOTAL.AsCurrency := DM.cdsItemSUM_TOTAL.AsCurrency;


发生以下错误:

无法访问类型为float的字段“ SUM_TOTAL”。

我的临时解决方案是这样的:

DM.cdsTOTAL.AsCurrency := StrToCurrDef(DM.cdsItemSUM_TOTAL.AsString, 0);


还有其他建议吗?

最佳答案

您可以为TAggregateField实现类帮助器,如果需要,可以为TAggregate实现类帮助器

type
  TAggregateHelper=Class Helper for TAggregate
  private
    function GetCurrency: Currency;
  published
    Property asCurrency:Currency read GetCurrency;
  End;

  TAggregateFieldHelper=Class Helper for TAggregateField
  private
    function GetCurrency: Currency;
  published
    Property asCurrency:Currency read GetCurrency;
  End;


implementation



{ TAggregateHelper }

function TAggregateHelper.GetCurrency: Currency;
begin
  if not VarIsNull(Value) then
     Result := Value
  else Result := Value;
end;
{ TAggregateFieldHelper }

function TAggregateFieldHelper.GetCurrency: Currency;
begin
  if not VarIsNull(Value) then
     Result := Value
  else Result := Value;
end;


procedure TForm1.Button1Click(Sender: TObject);
begin
  Showmessage(FloatToStr(CDSTotal.AsCurrency) + '-' + FloatToStr(CDS.Aggregat[0].asCurrency));
end;

关于delphi - 如何访问汇总字段值作为货币?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14195878/

相关文章:

java - 如何在mysql表中保存货币符号unicode

r - 如何按组创建计数器/计数?

sql - 在 Oracle 中按组旋转没有聚合函数或行到列

R:如何根据多列条件聚合(和汇总)df 中的行并保持先前​​的顺序?

delphi - 如何将Windows消息发送到非主要形式

php - 在表单中预先格式化的数字/货币显示和存储不正确的值

mysql - mysql中按货币类型按实际值(value)订购价格

delphi - 如何解决DSServerModule1.ClientHeight : Property does not exist error

c# - 使用 Chromium Embedded 有没有办法从 Javascript 与程序通信?

delphi - 嵌入 dll 中的 VCL 样式?