我有一个使用 BIRT 开放数据访问 (ODA) API 的自定义 BIRT 数据源,类似于“集成和扩展 BIRT”一书第 20 章中描述的示例。但是,我一直无法找到将数据集过滤器传递给我的自定义数据源的任何方法。
当我在 BIRT 中运行查询时,它似乎正在使用以下事件序列:
- BIRT 从我的插件请求所有数据。
- BIRT 然后将过滤器应用于结果集。
因此,如果用户想要生成 2013 年 4 月的销售报告,BIRT 数据源插件会将所有销售数据从服务器拉到客户端,然后应用过滤器以限制到 2013 年 4 月。
我搜索了这个问题,并在 2009 年的 BIRT 论坛中发现了一个类似的帖子,在那个帖子中,Lina Chan 说:
恐怕 BIRT 数据集编辑器中定义的“过滤器”是纯粹在 BIRT 主机中定义的,对 ODA 数据提供者不可见。换句话说,BIRT 过滤器的处理由 BIRT 数据引擎处理,而不是下推到 ODA 运行时驱动程序。
基于该答案,我假设从 2009 年的 BIRT 版本开始无法做到这一点。对于今天的 BIRT 版本,这个答案是否仍然正确?
还是有其他解决方法?BIRT 会为数据源构建这样一个可插拔接口,但没有提供过滤从数据源返回的数据的机制,这似乎很奇怪。