在 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"]
并使用您提到的语法在对象检查器中格式化此备忘录。
您的打印条件将更改为:
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
。在显示的示例中,两个术语(包含在方括号中)都被格式化,第二个被另外计算。
我正在尝试使用以下脚本将货币格式的值打印到报表上的 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"]
并使用您提到的语法在对象检查器中格式化此备忘录。
您的打印条件将更改为:
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
。在显示的示例中,两个术语(包含在方括号中)都被格式化,第二个被另外计算。