第19卷第2期Vol.19No.2
文章编号:1005-8451(2010)02-0011-03
铁路
计算机应用
RAILWAYCOMPUTERAPPLICATION
研究与开发
RESEARCHANDDEVELOPMENT
基于J2EE的报表定制技术的研究
关
摘
鑫,黄地龙,窦育民
信息工程,成都610059)
(成都理工大学
要:报表的应用在企业信息化建设中处于非常重要的地位。文中介绍的报表系统采用J2EE架构,
并应用Java开源报表引擎JasperReport与IReport,通过Web方式实现报表的生成、预览与打印,为企业级报表系统的开发提供解决
方案。关键词:J2EE;JasperReport;Web报表;MVC中图分类号:TP39文献标识码:A
ResearchofreportcustomizationtechnologybasedonJ2EE
GUANXin,HUANGDi-long,DOUYu-min
(CollegeofInformationEngineering,ChengduUniversityofTechnology,Chengdu610059,China)Abstract:Theapplicationofreportwasthemostimportantpartintheconstructionofenterpriseinformationization.ThepaperusedJ2EEarchitecture,andJavaopensourcereportingenginenamedJasperReportandIReportwereusedintoJ2EEplatform.Thereportwasgenerated,previewedandprintedontheWeb,whichprovidedanexcellentsolutiontothedevelopmentofEnterpriseReportSystemKey
words:J2EE;JasperReport;Webreport;Model-View-Controller
当前大部分MIS中的报表模块是根据客户需求定制的,与实际系统高度耦合,代码可重用性差,而且前期开发
工作量巨大,后期维护艰难,难以适应开发过程的多样性和变化性。因此传统意义上的静态报表设计模式已经不能满足日益增长的
网络环境下Web报表开发的需求。作为Java的报表工具,JasperReport可与应用紧密地集成,不仅提供更高的运行效率,且为程序员提供更大的灵活性与可控制性,实现与应用程序的无缝衔接,还可以充分利用应用服务器的各种能力,如平衡负载、统一部署等。本文采用J2EE架构系统,开源报表引擎JasperReport与可视化工具IReport,将报表模板和报表数据分离开,用户根据需要设计报表模板,自主选择数据来源。运用其强大的报表功能和丰富的可扩展接口,实现了报表的定制。满足了企业级报表系统的需求,提高
软件的通用性和扩展性。
MVC(Model-View-Controller)设计模式分成3个核心部件:模型、视图、控制器。其体系结构如图1。
状态
查询(模型)抽象系统应用的功能封装系统的状态提供使用系统功能的方法和路径管理数据的存储和一致性当数据发生变化时通知相关部分
修改状态
修改通知
(视图)
抽象数据表达表示针对用户的数据维护与Model数据的一致性
选择视图用户动作
(控制器)
抽象用户和系统的事件的语意映射把用户输入翻译为
系统事件根据用户的输入和上下文情况选择合适的视图显示数据事件
方法调用
图1
MVC体系结构
1报表定制系统研究关键技术
1.1MVC的体系结构
收稿日期2009-05-25:作者简介:关鑫,在读硕士研究生;黄地龙,教授
MVC的处理过程为:(1)用户在视图的界面上发出请求,视图把请求转发给控制器,控制器调用相应的模型来处理用户请求,模型进行相应的业务逻辑处理,并返回数据。(2)控制器调用相应的视图来显示模型返回的数据。1.2报表生成工具1.2.1报表设计器报表设计器用来设计Web报表模板,包括Web报表版面设计、数据源定义、数据重组(过
RCA2010.2总第155期
11
研究与开发
铁路
计算机应用
第19卷第2期
滤、计算等)的函数设计、Web报表被引用参数的定义等。报表设计器的目的是通过图形界面向导设计出需要的报表模板文件。本文采用IReport作为报表
设计器。IReport是一套为生成Jasper-Report报表模板的优秀可视化开发工具,它的核心是JasperReport引擎,IReport内置基于JFree-Chart的ChartTool工具可以方便绘制
常用的柱状图、饼图、曲线图、区域图、分布图、混合图、甘特图以及一些仪表盘等,可满足一般报表的需求。1.2.2报表生成器引擎报表生成器引擎JasperReport是一个强大、灵活的报表生成工具,能够展示丰富的页面内容,并将之转换成PDF、HTML、XLS、CSV或者XML格式。它完全是用
Java编写的,而且可以在各种Java应用中使用,如J2EE或者Web应用,动态地生成内容。它的主要目标是用来帮助以简单灵活的方式来创建面向页面、可打印的文档。1.3报表定制生成步骤1.3.1解析报表JasperReport使用可视化工具IReport进行报表模板的设计,报表模板采用XML文档进行定义,文档以.jrpxml为文件后缀名。JasperReports利用SAX2.0API对模板文件进行解析,使用org.xml.sax.helpers.XMLReaderFactory类的create-XMLReader()来获得解析器实例。解析过程由报表引擎自带的解析包完成。1.3.2编译报表使用IReport完成报表格式设计以后,就要对这个.jrp
xml文件进行编译,通过调用JasperRe-port类库中的JasperCompileManager.compile-Report()将生成扩展名为.jasper的二进制文件。通过编译,报表设计被加载到一个报表设计对