首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >BIRT -使用报表变量将数据从外部传递到内部嵌套数据集。

BIRT -使用报表变量将数据从外部传递到内部嵌套数据集。
EN

Stack Overflow用户
提问于 2013-03-04 12:09:24
回答 1查看 4.9K关注 0票数 2

希望有人能告诉我这份BIRT报告有什么问题。我试图使用嵌套的脚本数据集,其中外部数据集通过报表变量将数据传递给内部数据集。

我发现这份报告并没有像我想的那样。似乎报告变量输出了每一行的最后一个值。关于以下报告,我看到的产出如下:

代码语言:javascript
复制
key0
  value[9][0]
  value[9][1]
  value[9][2]
  value[9][3]
  value[9][4]

key1
  value[9][0]
  value[9][1]
  value[9][2]
  value[9][3]
  value[9][4]

....

key9
  value[9][0]
  value[9][1]
  value[9][2]
  value[9][3]
  value[9][4]

而我希望看到的是:

代码语言:javascript
复制
key0
  value[0][0]
  value[0][1]
  value[0][2]
  value[0][3]
  value[0][4]

key1
  value[1][0]
  value[1][1]
  value[1][2]
  value[1][3]
  value[1][4]

....

key9
  value[9][0]
  value[9][1]
  value[9][2]
  value[9][3]
  value[9][4]

我的(完全独立的)示例报告在这里:单击此处查看pastebin中的报表xml

关键思想是,在外部数据集的fetch中,我设置了报表变量:

代码语言:javascript
复制
vars["values"] = value;

内部数据集的fetch将捕获它:

代码语言:javascript
复制
values = vars["values"].iterator();

内部数据集的fetch将从报表变量获取数据:

代码语言:javascript
复制
row["value"] = values.next();
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-03-05 20:07:28

您应该能够使用dataSet参数来做到这一点。在您的示例中,您将在外部数据集的dataset编辑器中设置一个输出参数。将此参数的值设置为要传递给另一个dataSet的值。

在内部dataSet中,您将创建一个输入参数来接受这些值。在布局中,需要刷新外部列表上的绑定,以便输出参数是绑定。然后,转到binding选项卡,获取内部列表,并选择将外部列表的输出参数绑定到输入参数。

希望这能有所帮助。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15201261

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档