2014-06-13 25 views
0

我遇到的问题是:BIRT可以使用一个表格的输出到另一个表格 - 不同的数据集?

我有一个表格,输出来自一个数据集X,在输出字段中我有一个COUNT聚合返回给我一个数字。

想要我想要做的是:在已经有另一个数据集Y的另一个表中使用此号码, 我希望直接由我的聚合COUNT处理的最终号码。 在这种情况下表格的关节没有用,因为它不会返回被处理的“数字”。 explanation

回答

5

一个聪明的方式做,这是创建一个报表变量来存储数据集X.例如聚集,我们将其命名为aggregationX:

enter image description here

一旦创建了变量,点击在表聚合数据X - >脚本 - >的onCreate

输入该脚本:

vars["aggregationX"]=this.getValue(); 

然后,您可以在聚合后放置的报表元素的所有表达式中使用vars [“aggregationX”] X:在数据集Y的计算列中,表格Y的数据绑定,过滤器,排序表达式,高亮表达式,动态文本等

+0

我宁愿vars [“aggregationX”] = row [“Aggregation”]; (但请参阅关于命名列绑定的回答)。 – hvb

+0

非常好,这是有帮助的 – dsharew

2

第一条规则:总是给你的列绑定有意义的名字(不仅仅是:“聚合”,而是“numRows”或类似的东西)!

第二条规则:报告变量是全局变量,因此它们被认为是不好的做法 - 只有在找不到其他解决方案时才使用它们。

在最常见的情况下,您可以将表(基于数据集)y放入表x的详细行中。然后,您可以使用语法row._outer [“numRows”]访问计数。 如果您还需要数据集y中的计数,则可以将其作为数据集参数轻松传递(使用绑定选项卡中的“参数绑定”按钮)。

您只需要Dominique给出的报表变量解决方案(由于任何原因),您的布局不允许您将表y放入表x的详细信息行中。

相关问题