主报表和子报表(或Table表)使用不同的数据库时。JasperReport/Birt等报表工具从功能上可以处理,但在子报表中无法直接使用数据源名,需要使用显式的数据库账号、口令。可以看到这种方式存在一定的安全隐患,而且实施过程比较复杂。
集算器具有结构化强计算引擎,支持多样性数据源,集成简单,可以协助报表工具方便地实现此类需求,下面通过一个例子来说明主子报表多数据源的实现过程。
表emp在MySQL数据库中,存储员工信息,主键是EId。表sales在MSSQL中,存储员工的订单信息,字段SellerId是逻辑外键,对应emp表的EId字段。现在需要制作一张主子报表,按薪酬范围显示每位员工的订单信息,主报表数据来自表emp,子报表数据来自表sales。部分源数据如下:
表emp
表sales
集算器代码:
empEsProc.dfx(该脚本文件用于主报表)
A1:按薪酬范围查询MYSQL数据库的表emp。
myDB1是数据源名,指向MYSQL。函数query执行SQL查询,可以接收参数,low和high分别是来自报表的参数,表示薪酬范围。当low=1000,high=3000时,A1的计算结果如下:
A2:将A1返回给报表工具。集算器对外提供JDBC接口,报表工具会将集算器识别为普通数据库,集成方案请参考相关文档。
salesEsProc.dfx(该脚本文件用于子报表)
A1:按员工ID从MSSQL的sales表查找相应的订单。
myDB1是数据源名,指向MSSQL。eid是报表参数,表示员工ID,用来建立主子报表的关联关系。如果eid=1,则A1的计算结果如下:
A2:将A1返回给报表工具。
接下来以JasperReport为例设计简单的主子报表,主表模板如下:
需要定义两个报表参数pLow、pHigh,分别对应empEsProc.dfx中的两个参数。
报表调用集算器的方法和调用存储过程一样。首先要定义JDBC数据源,比如esProcConn,如下图:
之后就可以在JasperReport的SQL设计器中调用empEsProc.dfx,表达式是:empEsProc $P{pLow},$P{pHigh}。
下面设计子报表,模板如下:
对于报表来说,empEsProc.dfx和salesEsProc.dfx来自于同一个数据源esProcConn,因此子报表的数据源选择“Use same connection used to fill the master report”,如下图:
类似的,在子报表中调用集算器的SQL写作:salesEsProc $P{pEId}
主子报表的关系请按照Jasper的规范设定,本案例用主表中的字段$F{EId}映射子报表的参数pEId。最终的表样如下:
Table表相当于格式简单的子报表,Jasper对两者采取了相同的处理结构,因此Table表也会遇到多数据源的问题。此类问题同样可以用集算器解决,比如把本案例的子报表改为Table表。
报表模版:
报表预览:
相关推荐
简单ireport用javadataSource做数据源的主子报表,测试类为TestJasperMainSub.java
几经探索,终于寻找到在一个报表中使用多个数据源的方法,现在分享出来以便后来者少走弯路!网上很多资料说多数据源只能使用子报表方式,呵呵!
下载包含程序源码,lib包,ireport创建模板操作文档,说明。程序可以在java myeclipse环境下直接运行。jasperreport版本6.3.1,ireport为5.6.0
jasperreport创建多个List数据源报表 通多个detail实现多个table效果,简单 快捷
实例中通过利用自定义javabean数据源实现报表实例,其中有代码和文档,还有项目中所需要的jar包,不需要重新下载jasper获取jar包
博文“Java开源报表Jasper入门(2) -- 使用JasperSoft Studio创建一个简单报表”对应工程的源码,原文地址见:http://blog.csdn.net/neareast/article/details/12030475
spring MVC Web应用中集成Jasper报表工具。教程涵盖的技术点有:报表自定义数据源的使用;报表渲染、呈现的配置与实现;iReport报表设计器的使用(报表模板设计)等。
jasper很多报表 ,其中包括 普通报表,分组报表,自定义报表,图形报表,以及 图形表格混合的报表
Dynamic+Jasper+Mysql连接生成报表示例
JasperSoft 数据源之Json Data Source 的演示。欢迎大家下载,如果有误,还请通知一声。
jasper报表(odoo)
jasper ireport 生成 报表,导入直接运行,不必修改任何配置
JasperReport 中交叉报表指南
在本教程中,我们将学习如何在一个简单的spring MVC Web应用中集成Jasper报表工具。教程涵盖的技术点有:报表自定义数据源的使用;报表渲染、呈现的配置与实现;iReport报表设计器的使用(报表模板设计)等。
Jasper报表制作小技巧
ireport+jasper报表,报表时项目中不可缺少的模块,我把前辈的东西拿来修改了一下终于实现了自定义报表。希望对大家有帮助,由于资源分不多了,因此3分就当做是辛苦分吧,代码详尽,数据库字段自己定义,有问题联系...
公司花钱从Jasper买的官方最新文档,买之前在网上找了很多文档,都比较旧,所以最后还是花了99美元买了最新的。
JPEG2000 源程序 Jasper 图像压缩编码
这个资源是Jasper Studio报表开发工具,由于Jasper Studio是国外开发的,下载起来比较慢,所以这里将其上传到CSDN,以便大家快速下载,Jasper Studio版本是:js-studiocomm_6.20.5_windows_x86_64.zip,直接下载之后...
Jasper Report 报表的使用步骤,及基本的应用详细描述