JasperReports在招生管理平台的应用研究*1
2016-07-21吴志霞叶根梅
吴志霞,陈 平,叶根梅
(马鞍山师范高等专科学校,安徽 马鞍山 243041)
JasperReports在招生管理平台的应用研究*1
吴志霞,陈平,叶根梅
(马鞍山师范高等专科学校,安徽 马鞍山 243041)
摘要:招生管理系统是校园信息化的一部分,其报表的实现有多种方法,课题组采用iReport与JasperReports并基于JavaBeans数据源方式进行报表的设计及实现,使报表的实现过程更简易,并给用户提供丰富的报表格式和输出方式.文中对系统报表的设计思路及实现过程进行了论述,以便能为类似开发人员提供参考和借鉴.
关键词:报表;JasperReports; JavaBeans;招生管理
报表制作及输出是信息系统的一个重要组成部分.高校招生系统作为信息化管理的一部分,需要提供分批次打印录取通知书,新生报到时打印报到单,针对录取情况提供分省、分科、分专业统计,针对新生报到情况提供报到率、报到统计分析、新生名单打印、入学名册打印、已报到人员数据导出、未报到人员数据导出等多种报表统计输出功能.本课题组对管理平台所需的报表进行了分析、设计、编码测试及实现,基本能满足前述学生录取管理及报到管理报表的统计和输出,下文将阐述设计思路及实现过程.
1设计思路
本研究采用iReport工具设计出符合JasperReports所需要的报表模板文件,基于MVC设计模式,将JasperReports与Java Web框架技术进行集成,实现基于Web的招生管理平台的报表制作与生成.在运用iReport进行报表模板文件制作时,选用基于JavaBean类型的数据源,避免了针对复杂或复合型报表数据无法用某一条SQL语句进行表述的问题;在JasperReorts报表导出实现阶段,运用JasperReorts提供的API去编写代码、加载报表模板文件,将JavaBean类型的集合数据去动态填充报表,为用户提供报表的显示和多种格式的报表输出.[2-3]
2JasperReports和iReport介绍
JasperReports是一个免费的、基于Java的纯开源报表生成工具和引擎.其类库中提供了很多API,通过这些API,能够非常方便的操作报表的生成、编译、填充、打印、导出等等.它可以支持多种数据源,比如Bean、Connection、xml、ResultSet记录集等作为数据源,可以很灵活地设计普通报表、主细表、交叉报表,并可以将报表的结果导出成excel、pdf、xml、html等格式文件,可以应用于各种Java程序,比如在JavaEE、Web 应用程序中生成动态内容.其主要的目的是辅助生成面向页面(page oriented)的准备付诸打印的文档.[1-2]但JasperReports本身没有图形界面的设计工具,初期都是通过编写JRXML来完成报表模板的创建,效率很低,后来引入了iReport工具来辅助创建报表模板.
iReport是JasperReports的一个可视化报表模板设计工具,用它就可以动态链接数据库生成报表,或在SQL语句中输入参数,提取指定的数据来生成报表.但iReport只是一个客户端工具,要生成报表,用户必须先安装它,并知道如何使用,如果要改变筛选条件,还要求用户懂得SQL语句.iReport在创建报表模板的过程中会产生jsxml和jasper两种文件,jsxml是用来定义报表格式的,比如报表头是什么内容,报表体有哪些列等,jasper 是由jsxml编译生成的二进制文件,开发者加载经过编译后的jasper文件,然后利用jasperReports这个工具包来编写程序代码,实现信息系统动态生成所需的报表.
3JasperReports报表业务的逻辑处理总体设计
报表的主要功能是数据的展示,而报表的功能需要结合实际的业务需要进行开展,根据系统的业务需求实现报表的导出.课题组选取Struts2+hibernate+Spring的Java Web框架来设计与实现系统.在设计处理报表业务的逻辑过程时,采用了MVC设计模式,实现表现层与功能模块的完全分离,结构图如图1所示.
图1 报表业务的逻辑处理结构图
4JasperReports报表数据源的选定
在使用iReport进行报表模板的设计之前,必须先确定要使用哪种类型的DataSources来填充报表,常用的是基于Connection类型的数据源,因Connection作为报表数据源要求使用SQL查询作为数据来源,但有时报表的内容并不能由一条SQL语句完成,鉴于课题实际业务报表的复杂度,本文采用基于JavaBeans类型的数据源,后期开发者只要将数据封装成一个个JavaBean对象,然后将其添加到一个JavaBean集合类之中,就可完成填充报表的数据准备工作.
确定采用基于JavaBeans类型的数据源,在运用iReport进行报表模板的设计之前,开发者必须先完成JavaBean实体类及工厂测试类的创建与编译工作,其中工厂测试类主要是用来提供一个方法,该方法内部将创建多个JavaBean对象,并将其添加到一个集合类对象中,而这个JavaBean集合类对象,就是要用来在iReport中查看报表生成效果的填充测试数据.随后将JavaBean与工厂测试类的.class文件打包成.jar文件,至此完成基于JavaBeans类型的数据源报表模板设计前期数据准备工作.
5JasperReports报表模板的实现
课题组选用iReport进行JasperReports报表模板的设计.在使用iReport进行拖曳控件设计报表模板之前,打开iReport工具软件设置.jar文件的classPath路径,选用JavaBeans Set data source方式建数据源,若测试连接成功,表明在iReport中已经可以采用JavaBeans类型的数据源进行报表模板的设计.[3-4]
在iReport中,开发者打开报表模板设计向导,选择一个标准空白模板进行样式设计,设置表头、内容、行尾,还可以进行报表的参数、字段或变量的设置,最后保存模板,生成.jrxml文件.将生成的jrxml文件进行编译,会得到jasper文件,而这个jasper文件将应用到JavaEE Web框架来完成报表的制作,实现步骤如图2所示.
图2 基于JavaBeans数据源JasperReports报表模板的实现
6JasperReports报表的导出
有了前期生成的jasper文件,应用程序加载该文件,并导入JasperReports的jar包,便可编写代码来实现报表的填充及导出.本系统既提供用户在线浏览数据的功能,也提供给用户在客户端阅览与保存.如图3所示,用户可以通过浏览器在页面上查看到“2014年分省分科类分专业成绩统计表”,点击“打印预览”按钮将输出pdf文档供用户预览或打印;点击“数据导出”按钮将导出如图4所示的Excel文档供用户进行分析或处理.
图3 基于Web的招生系统页面样例
以报表生成并导出Excel文档为例,其工作原理为首先调用业务逻辑管理类,获取用来填充报表的数据,接着去获取报表模板文件(.jasper文件)并通过加载的方式将其转成JasperReport对象,再通过JasperFillManager类将数据自动填充到报表对应的数据项中,最后采用导出器导出Excel文档,其核心代码如下:
按照上述步骤,在招生管理系统中已实现了学
生录取管理及报到管理相关报表的统计和输出功能.采用JasperReports来设计与开发报表,使整个系统开发过程得到简化,减少时间和精力的投入,并能为用户提供丰富的图表显示和多种格式的报表输出,使管理人员、工作人员能够清晰了解本校招生及报到状况.本文提供了一个较好的报表生成方案,对类似项目的开发有一定的借鉴指导作用,期望能为同类研究提供一定参考.
参考文献:
[1]周琳.JasperReports在物流商管理平台中的研究与应用[D].大连:大连海事大学,2013.
[2]黄鈺.基于Flex和JasperReport报表工具的设计与实现[D].广州:华南理工大学,2010.
[3] iReport中文用户手册.[EB/OL](2012-01-13).http://wenku.baidu.com/view/a1e0aa0a7cd184254b3535f9.html?re=view,iReport中文用户手册
[4] 关鑫.基于J2EE的通用报表系统的研究与实现[D].成都:成都理工大学,2010.
(责任编辑:王前)
Research and Application of JasperReports in Enrollment Management Platform
WU Zhi-xia, CHEN Ping, YE Gen-mei
(MaanshanTeacher'sCollege,Maanshan,Anhui243041,China)
Abstract:Enrollment management information system is a part of the construction of campus information. About how to design and implement the report, there are multiple ways. In this paper, using iReport and JasperReports technology which based on the JavaBeans data source to make, so that the reporting process is more simple, and to provide the users with a wealth of report formats and output modes. The paper will gradually explain the design ideas and implementation process, so as to provide reference for similar developers.
Key words:report forms; JasperReports; JavaBeans; enrollment management
DOI:10.13877/j.cnki.cn22-1284.2016.04.016
*收稿日期:2015-11-20
基金项目:安徽省质量工程项目资助“软件技术专业综合改革试点”(2014zy085)
作者简介:吴志霞,女,江西抚州人,讲师.
中图分类号:TP31
文献标志码:A
文章编号:1008-7974(2016)02-0050-03