JAVA项目开发笔记(8):报表打印 Birt

 

 经过一段时间的研究发现水晶报表其实是个烂东西,所以重新找报表打印系统。决定在birt 和jasperreport中选一个(选这两个是因为都是开源免费的),初步选择了birt后来发现myeclipse直接就支持birt。

 

先说下我对报表的要求

1.独立的报表文件,(这个比较容易,大多数报表系统都能达到要求);

2.支持java类方式的数据源,这样比较容易和spring和hibernate集成(Birt的script数据源可以达到要求);

3.能设计出中国式的报表(唉,中国的报表实在是很烦人啊);

 

由以上的要求选择报表,发现Birt可以达到要求,在了解了Birt的script后决定系统报表系统如下设计;

1.在shark的流程图中定义各活动要求打印的报表id

2.当用户选择要打印的报表后把shark的活动信息存储到session中,同时到数据库根据id查到相对印的报表文件加载报表.

3.报表利用script数据源取得session中的shark活动信息和Spring的context,根据shark的活动信息通过context取得spring的session Bean得到数据并显示报表.

 

Birt的使用

Myeclipse 直接可对项目添加Birt报表支持(同添加JSF支持相同),不过值得一提的是,mcEclipse的版本不同,所使用的Birt版本也不同,而我的开发 小组,有使用7.0的7.1的6.0的,其中受7.0的是Birt2.3.0,而7.1的是birt2.3.1,虽然只差一个小版本号,但是如果 用,6.0直接或7.0直接打开项目会出错,我用的方法是直接从myEclipse中把birt2.3.1的库拷出来做成用户库,这样7.0就可以打开 7.1的报表项目而且不出错了,另外,在设计器方面6.0的好像是打不开7.0和7.1和报表,birt的版本差异是很烦人的。

 

另外在使用我遇到过以下错误

 

在tomcat启动时出现如下异常


java.lang.NoSuchMethodError: org.mozilla.javascript.Context.initStandardObjects()Lorg/mozilla/javascript/ScriptableObject;

 

 

后来发现原来是Birt的库里的js.jar同我shark库里的js.jar冲突,应该是shark里的js.jar版本比较旧,后把shark库中的js.jar包去掉并重新布属项目后,问题解决.

 

暂时就说这么多,关于如何在Birt中得到spring的session Bean和Session有时间我会补上来的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值