FastReport VCL程序员手册:在 TfrxReport.OnGetValue 中传递变量值

FastReport VCL是用于Delphi,C ++ Builder,RAD Studio和Lazarus的报告和文档创建VCL库。它提供了可视化模板设计器,可以访问为30多种格式,并可以部署到云,网站,电子邮件和打印中。

近日,FastReport VCL更新至v6.9,在新版本中,在PDF更新中增加了对以下对象的并行表单支持:文本,替换和图片。相互之间形式中。同时修复了多个Bug问题。【慧都网】欢迎下载体验。

脚本变量

脚本变量不在报告变量中,而是在TfrxReport.Script. 您可以使用 FastScript 方法定义它们。让我们看看报告变量和脚本变量之间的一些区别:

 

使用脚本变量很容易。只需通过这种方式为变量赋值:

 

Pascal:

frxReport1.Script.Variables['My Variable'] := 'test';

C++:

frxReport1->Script->Variables->Variables["My Variable"] = "test";

在这种情况下,如果变量不存在,FastReport 将创建一个变量,或者为其分配一个值。将字符串分配给该变量时,无需使用额外的引号。

 

在 TfrxReport.OnGetValue 中传递变量值

将值传递给报告的最后一种方法是使用TfrxReport.OnGetValue事件处理程序。如果您需要传递动态值(可能会因记录而异),这种方式很方便。前两种方法可用于传递静态值。

让我们看一下使用这种方式的例子。让我们创建报告并为其放置“文本”对象。在此对象中键入以下文本:

 

[My Variable]

现在创建TfrxReport.OnGetValue事件处理程序:

 

procedure TForm1.frxReport1GetValue(const VarName: String; 
  var Value: Variant);
begin
  if CompareText(VarName, 'My Variable') = 0 then
    Value := 'test'
end;

运行报告,我们将看到变量显示正确。在TfrxReport.OnGetValue每一次事件处理程序被调用时的FastReport发现未知的变数。事件处理程序应返回该变量的值。

如果您对FastReport感兴趣,可以在慧都网免费下载最新试用版,欢迎加入FastReport QQ交流群:702295239

posted @ 2021-06-16 14:56  roffey  阅读(257)  评论(0)    收藏  举报