ITPub博客

首页 > 应用开发 > IT综合 > FastReport VCL在 TfrxReport.OnGetValue 中传递变量值

FastReport VCL在 TfrxReport.OnGetValue 中传递变量值

翻译 IT综合 作者:roffey 时间:2021-06-16 14:56:51 0 删除 编辑

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

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

立即点击下载FastReport VCL v6.9最新版

脚本变量

脚本变量不在报告变量中,而是在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发现未知的变数。事件处理程序应返回该变量的值。


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/69995027/viewspace-2776935/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2021-02-20

  • 博文量
    73
  • 访问量
    50548