象(net.sf.jasperreports.engine.JasperReport类的实例)中并被序列化然后保存。编译后的文件是待填充的报表,以方便应用
程序用各种数据集产生不同的报表文档。1.3.3填充报表报表填充过程是JasperReportlibrary最重要的功能。可以调用net.sf.jasper.engine.JasperFill-Manager类,把数据源和所需的参数填充到.jasper文件中去,生成.jrprint文件。.jrprint文件已经是填充了数据的报表。在填充的过程中需要三种输入:
122010.2总第155期
RCA
报表模板、参数和数据源。填充完数据后,输出的是一个最终的要被查看,打印或导出到其他格式的
文档。1.3.4查看报表报表填充的结果是一个表示待打印
文档的对象(net.sf.jasperreports.engine.JasperPrint类的实例)JasperReport拥有一个内置的查看器net.sf.,jasper.view.JRView,这是一个基于Swing的应用程序组件,用户可以通过继承这个类来定制自己所需的查看器,进行打印预览。1.3.5打印报表JasperReport类库的主要目标,就是生成可打印的文档。可以调用net.sf.jasper.engine.Jasper-PrintManager来打印JasperReport生成的文档。1.3.6导出报表通过调用JasperExportManager类将Jasper-Report生成的文档从其特有的格式导出到其他更为流行的格式,目前支持主流的PDF、XML、
HTML、RTF等文件格式的导出,也可以在此基础上对其进行扩展,以支持新的格式的输出。
屏幕预览打印机打印解析XML报表定义文件编译生成.jrprin文件报表打印生成.jrprin文件报表导出PDF格式RTF格式
图2
报表产生原理
2报表定制系统开发与实现
Web报表系统采用基于业界领先的J2EE体系架构,并使用了MVC模式,具有良好的稳定性、可扩展性、可移植性、可维护性与跨平台性。报表系统的体系结构如图3。2.1报表定制系统设计报表系统主要由报表设计模块、报表处理模块、报表生成模块3大部分组成。首先通过报表设计器IReport进行报表样式模板的设计,生成XML模板源文件,然后再将其编译,形成报表模板库(jasper文件),这时系统根据页面请求或所传递的参数加载报表模板并填充数据,最后由报表生成
第19卷第2期
基于J2EE的报表定制技术的研究
研究与开发
(模型)1Web显示5响应请求(控制)Servlet3(视图)
JSP4
数据库
2
其它数据源(xmlJavaBeat等数据库
表示层
业务层
数据层
图3
报表体系架构图4PDF报表
器生成各类报表。2.1.1报表设计模块通过可视化报表设计器IReport定制报表格式,根据用户的需要通过添加控件,对报表的格式合理布局,生成了XML模板源文件,再将其编译,形成了报表模板库文件。2.1.2报表处理模块根据相关参数调用报表处理模块处理相关的报表请求。(1)根据请求进行数据源的获取,数据源可以是数据库、JavaBean或其它格式的数据文件,得到数据源后;(2)通过读取参数,获取报表其它的相关属性信息;(3)把报表格式模板、数据源、以及报表属性信息发送到报表生成模块。2.1.3报表生成模块根据所传递的参数加载报表模板,填充数据到报表模板中,生成报表,返回到客户端,显示报表并打印。2.1.4报表系统流程由视图对象发出报表请