在BIRT中,如何从JavaScript访问任意数据集?

时间:2008-09-26 17:15:42

标签: javascript eclipse reporting birt

我正在BIRT制作我的第一份报告。

很快我遇到了一个问题,我希望根据表达式显示一些文本或数据,这些表达式包含来自两个不同表格的数据(不是可以/应该加入的表格 - (假设示例) - 取一个学生的ACT分数从他在学生表中的记录,并将其与统计表的ACT统计数据条目进行比较)。我很快意识到数据元素必须绑定到数据集(只有其中一个。)

我在BIRT邮件列表中找到了similar question,它帮助我找到了解决方案 - 我可以将单个数据元素绑定到不同的数据集,但它仍然可以访问其容器的元素。我可以将参数发送到元素绑定到的数据集(例如,我在上面提到的示例中为“ACT”)。

然而,最终我来到了一个需要使用三个不同表格数据的地方。我被困在这里,我假设有一种方法可以通过脚本功能来实现这一点,但我还没有在文档中看到从数据集中提取数据的方法 - 到目前为止我处理的所有内容都是与将报表元素绑定到数据集相关联。

为了清楚起见,我已经看到我可以将JavaScript函数添加到顶级报表的初始化部分(并从数据元素中的表达式调用它们)但是我没有看到如何在脚本中查询我的任何数据集 - 而不是仅与绑定到我的数据元素的数据集进行交互。)

如何在BIRT中从JavaScript访问任意(虽然已定义)数据集? (或者如何从元素中访问两个以上的数据集 - 一个绑定到的数据集,以及一个绑定到其容器的数据集?)

2 个答案:

答案 0 :(得分:2)

我有一段时间没试过这样做。想到的直接答案是您需要将第三个数据集放入表中(可见性设置为false),您需要将表值填充到GlobalValue。然后,您可以通过脚本从数据控件获取GlobalValues。

我知道它不漂亮。我将在周末看看,看看2.3是否添加了任何使这更容易的功能。

答案 1 :(得分:1)

使用

 this.getValue() 
,它将返回当前列的绑定值,而不是
 dataSetRow["RUN"]