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

时间:2020-03-06 14:47:44  来源:igfitidea点击:

我正在BIRT中建立我的第一份报告。

很快,我遇到了一个问题,我想基于包含两个不同表(不是可以/应该连接的表)的表达式来显示一些文本或者数据(假设示例是根据学生在他的记录中获得的ACT分数,表并将其与ACT统计信息的统计信息表条目进行比较),我很快意识到必须将数据元素绑定到数据集(仅其中一个)。

我在BIRT邮件列表中发现了一个类似的问题,该问题帮助我找到了一个解决方案,可以将单个数据元素绑定到另一个数据集,但是它仍然可以访问其容器的元素。我可以向元素绑定到的数据集发送参数(例如,在我上面提到的示例中为" ACT")。

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

明确地说,我已经看到可以将JavaScript函数添加到顶级报告的initialize部分(并从数据元素中的表达式调用它们),但是我看不到如何在脚本中查询任何我的JavaScript函数。数据集-与仅与绑定到我的数据元素的数据集进行交互相反)。

如何在BIRT中从JavaScript访问任意(尽管已经定义)数据集? (或者,如何从一个元素绑定到另一个数据集,而容器又绑定到一个元素,又如何访问两个以上的数据集?)

解决方案

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

我知道那不漂亮。我将在周末查看一下,看看2.3是否添加了使此操作更容易的功能。