天天看点

集算器实现BIRT报表的跨库数据

         使用BIRT实现跨数据库数据查询和关联计算时遇到问题。用DB2实现跨库的join配置很麻烦;如果用BIRT把两个库的数据都读进来的话,用BIRT的脚本(java或者java script)都要写较长的代码来实现join,也很麻烦。采用了集算器后任务就变得简单许多。

         要在一个报表里展现的数据来源于两个DB2数据库。项目的数据有保密的要求,所以用订单表和订单明细表来做验证的:

         订单表(来源数据库1),数据量10w:

集算器实现BIRT报表的跨库数据

        订单明细表(来源数据库2),数据量20w:

集算器实现BIRT报表的跨库数据

        第一步:编写代码,从两个数据库中取出数据来,在库外做join运算:

集算器实现BIRT报表的跨库数据

        A1到A6是连接两个数据库、取出数据、关闭数据库。A7到A10是完成join。代码网格A11把报表需要的数据返回给BIRT。

第二步:将集算器集成到BIRT中

先拷贝相关jar包到jdbc驱动目录:

集算器实现BIRT报表的跨库数据

再修改配置文件:

集算器配置文件有两个,dfxConfig.xml和config.xml,放到dm.jar中。

集算器实现BIRT报表的跨库数据

然后配置BIRT数据源:

集算器实现BIRT报表的跨库数据

驱动类名:com.esproc.jdbc.InternalDriver (v1.0)

URL:jdbc:esproc:local://

第三步:在BIRT中新建存储过程数据集

集算器实现BIRT报表的跨库数据

这里调用的存储过程“xjst-join2”的名字就是集算器脚本文件名(去掉后缀.dfx)。

第四步:报表展现

集算器实现BIRT报表的跨库数据

继续阅读