Birt:防止在报表中的多个表中重复使用DataSet执行

Birt: prevent repeat DataSet execution were used in multiple tables in report

我有一份包含 3 Table 的 Birt 报告,每个报告都呈现了单个 "Data Set" 的不同摘要。不幸的是,Birt 生成了 "Data Set" 3 次。无论如何说服 BIRT 重用 "Data Set" 而不是为报告中的每个 Table 重新生成数据集。

DataSet 是使用 Java 事件处理程序 class 实现的脚本数据集。并且没有配置任何参数或过滤器。

此问题对于此报告很重要,因为 "Data Set" 可以包含超过 100 万行。 I 这意味着报告收集数据的时间比它应该花费的时间长 3 倍。

我希望该解决方案还可以减少预渲染 "rptdocument"(预渲染文档)的大小,目前为 1.6GB。

我希望解决方案不需要我根据报表执行上下文手动缓存数据集的行。

您可以将数据集添加到报表顶部的网格中 你必须给那个网格一个唯一的元素名称

对于您的三个表,您可以在 Propert Editor -> Binding from Data:(数据集)到 Report Item(选择网格的唯一 elmenet 名称)中切换

进行此更改后,数据集仅执行一次并在所有三个表中重复使用