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