报表学习(一):使用JasperReport+iReport进行WEB开发
之所以学习jasperReport,因为它在java世界里是最流行的报表工具。(jasperReport的初级教程,可以参考这个,不再赘余啦)
有二种方式,一种就是写jrxml文件,其实就是xml文件。另一种方式更直接,就是生成一个JasperDesign类的实例,在japsperDesign类中自己定义模板。
jrxml文件也是通过JRXmlLoad加载,转成JasperDesign类的实例。也就是说jrxml文件还需要进行解析,加载。
开发中常通过iReport工具编辑jrxml文件生成模板,再用代码加载解析成类。
填充数据。
jasperReports支持了很多的格式,比如对Hibernate、MongoDb、EJB的支持。
对于我们经常使用的,一般是二种方式,一种方式是通过JDBC连接提供数据源,一种就是通过Collection提供数据源。当然还有web Service的xml文件提供的。
我的建议是,如果你的程序中的统计直接使用Jdbc就可以完成,那么就使用jdbc数据源的方法,反之,使用javaBean的集合是不错的选择,因为这样不会在意你的数据的来源,你也可以任意处理,比如说,要通过权限检查的数据才在报表中生成的话,就可以过滤出不符合权限的数据。
这里只提供部分代码,想要基于SSH2的jasperReports演示完整代码,请到我的资源中下载,免积分。
在Action中将Collection填充到jasperReports模板文件类中
在实际应用中,根据具体业务,利用可视化编辑工具iReport进行布局即可。
注意事项
- iReport和JasperReport版本一致才行,iReport可通过兼容性设置版本
- ireport导出PDF,中文字体不显示
iReport默认情况下是不支持中文的,虽能在预览视图里良好的显示正常、粗体、斜体、下划线等,但部署到应用后部分功能无效果,只能以正常字体显示。
如需完整使用以上的功能,需要装中文字体包导入到iReprot软件里去。
在Web应用程序中,同样需将导出的字体jar包放入classpath文件夹下。
参考ireport导出PDF 引入外部中文字体
小结
报表是几乎所有系统必不可少的模块,或者说是基本业务需求。报表可以帮助我们访问、格式化数据,并把数据信息呈现给使用者。
一提到展示给客户,就想到“受累不讨好”,你的系统无论是用的什么技术实现,无论是多大工作量,只要呈现给用户很烂,结果就是受累不讨好。所以,凡是给用户看到的,我们更该得到重视,虽然这话听着有点。。。,不过确实如此。