【VC++开源代码栏目提醒】:网学会员在VC++开源代码频道为大家收集整理了“J2EE下WebMIS报表的研究与实现 - 硕士论文“提供大家参考,希望对大家有所帮助!
云南大学学报(自然科学版}。
2009,31(S2):291—295 例53—1045/N ISSN 0258—7971Journal of Yunnan University J2EE下WebMIS报表的研究与实现 杨彪1.一,郭剑毅1一,余正涛1·2 (1.昆明理工大学信息工程与白化学院自动化系,云南昆明650051; 2.云南省计算机技术应用重点实验室,云南昆明650051) 摘要:针对开发WEB报表技术的相对不成熟,在J2EE平台下用MVC开发
网络应用模式的Struts框架实 现WebMIS系统;基于JasperReport论述了报表系统的体系结构及报表生成过程的关键技术,实现了一个可快速 构建和开发多层WebMIS、具有良好的复用性、扩展性和维护性的报表体统集成开发环境.为企业、事业单位的 webMIS报表开发提供了一种就决
方案. 关键词:WebMIs报表;JasperReport;Struts框架;MVC模式 中图分类号:TP 311.132 文献标识码:A 文章编号:0258—7971(2009)s2—0291—05 报表系统是Web MIS中不可或缺的一部分, 程机理如图1.能从大量的业务数据中发现知识,为企业经营和决 JasperReport可运行在任何支持JAV A应用中策提供支持.同时由于应用需求的多样性,系统设 的环境,包括J2EE和其它WEB应用,具有良好的计过程中的大量的工作是设计报表,其核心是考虑 兼容性和跨平台性.如何展现数据文件中存储的数据.目前,基于Web. 本WebM IS报表系统的设计是基于JasperRe.MIS的报表开发技术相对不太成熟,开发人员大 port和MVC模式的Struts框架实现的5层体系结都是根据软件产品的实际需要开发适合本软件的 构,如图2所示,JasperReport报表编译器引擎通过报表系统,国内尚无统一的标准…1.
论文主要对 XML文档加载器从报表格式模板库中载入报表格J2EE规范及其MVC模式的Struts框架进行探 式文件,同时通过JasperReport报表生成器引擎调讨,并用其来构建WebMIS,同时对同架构、
开源的 用报表数据构件获取报表数据.取得报表格式文件JasperReport产生报表的机制及数据源的配置进行 以及准备好的报表数据后.JasperReport编译生成研究,也进行了JasperReport报表工具的源
代码分 并输出报表。
从图2可以看出,在WebMIS框架的析,做了一定的扩展,并配合
开源IREPORT对报 环境下,报表的生成流程可以分为2个模块:A模表Layout进行设计;重点阐述了J2EE平台下在 块数据的
查询与封装主要是在Struts框架的基础Struts中用IREPORT和JasperReport对WebM IS 上把通过JDBC数据库连接池取得的关系型数据报表系统进行了设计与实现. 封装成面向对象的JavaBean类型的对象实例,以 便填充JasperReport报表对应的单元格;B模块采1 J2EE架构下WebMIS报表的设计原理 用IREPORT来进行报表样式的设计,报表的样式1.1基于JasperReport的WebMIS的报表体系结 根据具体的业务需求来定制,从而实现了数据和视构JasperReport是J2EE规范下开放源码的、能 图的分工和并行开发.方便实现各种图表、子表、复合表的报表设计工具. 1.2报表生成方法 基于上述WebMIS报表系统报表通用格式的使用是JasperReport与一般报表 架构以及JasperReport生成报表的工作原理,生成流程的区别所在,JasperReport生成报表的过 本节研究基于J2EE的WebMIS报表系统的生成方法. ·收稿日期:2009—06—05 基金项目:昆明理丁大学青年基金资助项目(校青2007—046). 作者简介:杨彪(1975一 ),男,云南人。
讲师,主要从事智能系统信息处理、过程控制方面的研究。
ybiaocn@126.com 292 云南大学学报(自然科学版) 第3l卷 常/篓掣‖/ Jasper 上 Design对象 不同的数据源对象: 占转换 JRXm】DataSouree l编译 JRCSVDataSource + JRBeanCollection D JasperReport对象雌充 ataSoure …‘ 上 Jasper Print对象 打EI】 ÷ ÷ 输出 占 占 占 + 占 0 Printer Screen HTML WORD EXCEL PDF 图1 JasperReport生成报表的过程机理 The process of report fbrms is became with JasperReport Fig.1 用 黯 户 层 Response 等弋 更‰出岔 qk务控 广—一 一View 输出撮 理 |l豫兰 ~髓一 .1表属一 |I筹一A ||箬磊 ¨一报制一封 ~一表处一罐 图2 J2EE体系下WebMIS报表的总体结构图 Fig.2 Architecture of WebMIS report fbrms based J2EE在Strust框架下用JasperReport报表引擎能够实现 对象数据模型的映射都只要利用struts框架的依赖对报表的快速开发,从图3WebMIS报表生成的流程 注入机制.-q反转控制机制(IOC)〔2j相对固定地通过可知,不论WebMIS报表生成流程中Ⅲ模块的IRE— 配置文档来完成.其次,只需在模块Ⅱ中把从I中得到PORT(是与JasperReport相配套的前端页面展示制 的数据封装在不同的JavaBean对象数据模型中,就作工具,IREPORT能够做出父子报表、交叉报表、图 可以形成不同的数据报表,而且这种报表的开发流表.)要设计显示多少种格式(HTML,PDF,KLS)的 程也充分体现了M VC设计WEB信息管理的松耦报表样式,首先,在模堋中数据连接池的建立、访问 合模式,并行开发报丧的Model,View,Contmller组数据库驱动的加载和数据库的关系数据模型/面向 件而使WebMIS报表的开发提高效率. 第s2期 杨彪等:J2EE下WebMIS报表的研究与实现 293 xls格式 / l_=:l〔至三b±至!竺:三兰竺羔竺竺一』 pdf格式 Fig.3 WebMIS report forms system’S becoming flow2 W曲MIS报表系统的实现 IREPORT是一个面向对象的、
开源报表引擎 WebMIS报表
系统首先由开发设计者通过可 JasperReport的可视化开发工具,用来生成样式文视化的IREPORT设计报表的显示模板,生成以 件(XML格式)的集成报表编辑器九3.利用它使得XML描述报表数据和格式的模块源文件,由 在设计时把数据和表示分开,现实WebMIS报表JRXmlLoad装载,然后再由CompileManager将其 的分页打印变量的加减处理等功能.主要用于制作编译,形成报表模板库(以iasper为后缀名的文 各种各样的报表,它与JasperReport一起提供的报件),系统根据用户在客户端浏览器的Http业务请 表前台设计工具.在其
工作环境中,可以完成设置求读取报表模板,进而通过调用相应的报表数据构 数据源、编译报表样式文件、选择不同的输出器来件为报表填充相应数据,最后通过报表生成器 输出最终的报表,从而实现样式文件的预览、调试(Jasper报表引擎)生成各种相应类型的报表.Web. 等功能;通过JFreeChart生成各种各样的图表,这M Is报表系统从图3的生成机制可知,其核心主要 些图表包括饼图、柱状图(堆栈柱状图和普通柱状由3大部分组成,分别是报表设计器(模块Ⅲ)、报 图)、区域图、线图、分布图、甘特图、混合图以及一表数据构件控制(模块Ⅱ)、报表生成器(模块IV). 些仪表盘等等〔4〕,能够完全
设计出“中国式”报表.采用构架和构件的设计方式,下面分别对它们在 从图1可知,JasperReport解析的就是一个.XMLWebM IS报表系统中的实现进行阐述. 定义格式的
文档,采样该
文档定义报表格式与报表数2.1 WebMIS报表设计器 报表设计器用以对 据,然后编泽成iasper report对象(以.jasper为后缀的WebMIS报表模板进行设计,其目的是通过GUI 文件),编译后生成的*.iasper才是真正要使用文件.向导设计出需要的报表模板文件.本系统采用JA. IREPORT就是用来生成JasperReport需要的XML报VA
开源软件IREPORT和JFreeChar作为报表设 表模板文件的,通过改写IREPORT软件包中的计器.借助它们来可视化地快速设计报表的格式, it.businesslogic.ireport.Report类的saveXMLF丑e方法主要用于实现WebMIS报表的模板,其中包括设 生成XML报表模板文件而得以实现.计webMIS报表的显示格式、定义显示的数据源、 2.2 WebMIS报表数据构件 配合Struts的设计数据计算与过滤的函数、定义WebMIS报表 MVC框架,对WebMIS报表也进行了相同架构的引用的参数及各类变量等. 统一设计.其中的Controller ActionServlet主要任 云南大学学报(自然科学版) 第3l卷务是获取报表属性集参数对象和控制报表的流程, 过一个接口统一定义了取得报表显示数据的方法;它接受来自客户层的HTTP request,然后解析请 该接口实现类除了定义报表对象的属性外还增加求参数,向Model的JavaBean发送数据信息及生 了其它相关的属性;然后通过一个对象连接类来封成报表相关属性的请求,Model的JavaBean协同 装接口实现类的相关操作.EJB一道完成request,Conroller ActionServlet re一 2.3 WebMIS报表生成器上述了WebMIS报表口uest得到response后,将得到的报表属性集参数 设计器和报表数据构件的实现过程,下面阐述如何信息封装成报表属性集对象(详见2.2.1),最后将 实现在客户端浏览器上生成报表.报表生成器主要其发送给报表生成器(详见2.3)进行解析,完成 是完成WEB显示各类动态生成的WebMIS报表View的工作. 文档.当其接收到Controller ActionServlet的请求2.2.1 WebMIS报表属性集接口设计 依据 后,读取报表属性集对象及请求参数并用WebM IS Model层的JavaBean进行统一封装,由于本系统采JasperReport组件生成报表的流程机制,在执行报表整合输出之前,需要获取报表数据集、报表参数 用JasperReport作为报表引擎,所以封装后向以及设置与获取报表模板文件、报表生成格式、报 JasperReport报表引擎发送出生成报表的请求,当表的数据源等信息,而这些信息因不同的业务需求 JasperReport报表引擎用JasperReport构件提供的 报表生成功能生成相应报表后,并将其返回给报表而不同,所以在业务逻辑中得到这些信息,然后把 生成器(获取报表后更新视图),如上所述(详见它们传递到通用报表模块中去处理.基于WebMIS报表系统通过定义一个WebMIS属性集接口(符 2.1),展现于用户.JasperReport报表引擎是基于 XML的JAVA
开源报表引擎,它能将WEB动态合J2EE规范的接口类)来存放上述所有信息.转 数据输出客户端的显示器、打印机或者生成用户需到报表模块中由Rep.ortAction类实现的控制层,从 要的HTML,PDF,XLS和XML格式等等文件,而而实现了业务模块与报表控制模块之间信息的传 且还可在各种J2EE或WEB应用中实现动态报表递. 的输出,具有非常好的跨平台性…6.2.2.2 WebMIS报表控制器设计 WebMIS报表 WebMIS报表生成器的实现是通过重写控制器的设计主要获取报表数据、封装报表属性集 JavaServlet类的service方法得以完成的,是对报表对象以及控制WebMIS报表的流程.本系统采用 属性集对象与JasperReport报表引擎的统一封装,Struts框架的web.xml与struts—config.xml配置 以便统一显示与生成不同形式的报表.文档来实现WebMIS报表系统报表的流程控制与动态Forms表单的配置;通过向WebMIS报表 3结束语Model层的JavaBean发送请求的方式来得到报表 基于开发企业级应用优秀的J2EE体系架构,要显示的业务数据〔5〕5,WebM IS报表控制器通过定 用业内领先的、同架构的
开源报表引擎JasperRe.义一个扩展DispatchAetion接口的ReportAction port及其可视化报表开发工具IREPORT设计并类来实现,该实现类主要包括创建报表属性集对 实现了一个J2EE规范下基于Struts框架的Web—象,创建管理报表的JavaBean对象,由报表属性集 MIS报表系统.该报表系统的稳定性好、健壮性对象分别获取数据并设置到报表属性集对象、设置 强、松耦合易于扩展与跨平台,此工作为企业、事业报表模板、设置生成报表格式的文件,并将报表属 单位的WebMIS报表的开发提供了一种解决方性集对象设置到request属性,并映射到报表生成 案.器以生成报表.2.2.3 WebMIS报表模型层设计 WebMIS报表 参考文献:模型层中的JavaBean配合EJB一同处理报表的业 〔1〕林琴谭,骏珊.基于Struts框架的Web报表展示的设务数据,主要是将数据源提供给WebMIS报表生 计与实现〔J〕.
计算机系统应用,2006(11):25.28.成器(详见2.3),WebMIS报表模型层的实现是通 〔2〕 张桂元,贾燕枫.Eclipse开发入门与项目实践〔M〕.北 一==:= = := = = ;=—= 岳= = = = = = = = ;= = 皇= = = ;= = 篁= = 第.