繁体   English   中英

在FastReport VCL 5脚本中使用FormatFloat

[英]Using FormatFloat in FastReport VCL 5 scripts

我正在尝试使用以下脚本将货币格式化值打印到报表上的TfrxMemoView:

procedure txCreditLimitOnBeforePrint(Sender: TfrxComponent);
begin
  if <TRAN."CREDITAPPROVED"> = 1 then                                
    txCreditLimit.Text := 'Credit Limit: ' + FormatFloat('%2.2m', <TRAN."CREDITLIMIT">)
  else
    txCreditLimit.Text := '';
end;

但我得到的只是%2.2m而不是实际值。 我究竟做错了什么?

FastReport中的FormatFloat函数就像Delphi中的FormatFloat一样,所以你可以使用:

procedure txCreditLimitOnBeforePrint(Sender: TfrxComponent);
begin
  if <TRAN."CREDITAPPROVED"> = 1 then                                
    txCreditLimit.Text := 'Credit Limit: ' + FormatFloat('#,##0.00 €', <TRAN."CREDITLIMIT">)
  else
    txCreditLimit.Text := '';
end;

由于FormatFloat不支持系统货币,另一种方法可能是使用绑定到包含表达式的数据集的备忘录,例如Credit Limit: [TRAN."CREDITLIMIT"] ,并使用您提到的语法在Object Inspector中格式化此备忘录。 您打印的条件将更改为:

procedure txCreditLimitOnBeforePrint(Sender: TfrxComponent);
begin
  txCreditLimit.Visible := <TRAN."CREDITAPPROVED"> = 1;
end 

在此输入图像描述

方括号中的表达式将在TextObjects中计算,例如
[<DS."a">] * 2 := [<DS."a"> + <DS."a">]将导致输出: 12.50 € * 2 = 25.00 €
如果TfrxMemoView的格式定义为%2.2m 在所示的示例中,两个术语(包括在方括号中)被格式化,第二个术语被另外计算。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM