当我尝试访问以下行的汇总字段(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/