【问题标题】:Digital Metaphors: Report Builder - How to iterate through datasource elements?数字隐喻:报表生成器 - 如何遍历数据源元素?
【发布时间】:2013-11-25 11:48:29
【问题描述】:

我正在使用 ReportBuilder 12.05,我正在尝试遍历我的数据源的数组(我猜)。

我有一个名为“STAFF”的数据源,其中包含一些字段 - 从数据库表动态创建。

所以表格看起来像这样:

tablename: STAFF
id | name | last_name
----------------------
1  | Alex | Gates
2  | Pete | Jefferson
...

我可以通过访问STAFF['LAST_NAME'] 来访问单个元素。但这将始终发布“Gates”作为结果。如何遍历我的所有 STAFF

我的代码目前如下所示:

memo1.lines.clear;
for len := 1 to 5 do
begin
    memo1.lines.add(STAFF['LAST_NAME'])
end;

【问题讨论】:

  • Error: SummaryBeforePrint, row 5: Expecting: '(' or '[', got 'Next' instead.
  • AFAIK 这不是一个函数。我对这个工具完全陌生。
  • 如果我在没有Staff.Next 的情况下编写它,它可以工作 - 说:它会陷入无限循环。所以,但是当我添加.Next 时,它根本不起作用。 :(
  • 12.05, Build 251, Enterprise Edition // 是的,它在 BeforePrint 事件中。

标签: delphi reportbuilder


【解决方案1】:

将SubReport添加到summary band,然后在设计器底部选择新的SubReport选项卡,将其设置为具有多列并从左到右进行列遍历(文件->页面设置->布局),然后分配到子报表的数据管道。然后将您的字段添加到子报表中。

【讨论】:

    【解决方案2】:

    OP 使用的是最终用户脚本引擎。
    所以可能有必要改变事件以达到他想要的:

    根据帮助:

    声明

    属性 OnEndPage: TNotifyEvent;

    该事件在页面完成打印后触发。如果你设置 在此事件处理程序中将 DonePrinting 设置为 True,不会再有更多页面 打印。

    应该使用此事件而不是 BeforePrint。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-08-14
      • 2019-09-18
      • 1970-01-01
      • 1970-01-01
      • 2019-08-29
      • 1970-01-01
      相关资源
      最近更新 更多