Java报表功能的三种实现方法
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1概述
面对管理系统中复杂的数据,报表作为数据管理工具,帮助用户快速掌握原始数据中的基本关系,直观的让用户感受到数据的变化,使用户对事务最新的形势状况能够在第一时间掌握并做出正确的决策判断。传统处理报表的方式是使用Excel,Word等编辑软件进行人为的数据统计。这种人工统计数据、填写报表的方式不仅效率低下,还容易出错。为了提高单位工作人员协同办公效率,减少传统报表在生成和使用时所带来的不足之处。越来越多的单位选择使用信息化办公,即只向系统数据库录入一次数据,再根据数据库中已有数据集进行数据处理、报表打印。
2浏览器直接生成报表
利用浏览器自带的打印功能实现报表打印,无疑是所有实现打印报表功能方式中最直接的。客户端不用下载其他额外的插件,不需要多余的环境配置,便可以很方便的通过浏览器直接实现报表功能打印。
利用浏览器直接生成报表主要有以下4个步骤:
步骤一:建立数据库连接。
DBUil db=new DBUtil();
步骤二:用JavaBean定义相应的数据操作语言,获取数据集。
public List getAlInfomationO{
List infomations=null://初始化报表数据集合
infomationsSuing sql="select*from infomations"; //生成数据库查询语句
infomations=db.getList(sql,null);//将数据集放入//集合infomations中retum infomations;}
步骤三:根据制作报表页面需要的样式。
//报表页面设计
步骤四:通过Jsp获取数据库中报表参数集并向前端传递。
<%ArayList infomations=(ArayListinfomations getAlInfomationO;//获取数据集
for(Object oinfomations){//遍历数据集,显示数据
Map m=(HashMap);%>
<%=m.get"name");%>
<%=}%>
这种实现报表打印功能有很大的局限性:一方面是使用浏览器打印报表需要对数据集的每个操作功能都写方法代码来进行获取,一旦所做的项目涉及到对多个相关数据源信息的操作,系统对数据库数据的操纵方法的实现代码就很繁复;另一方面是使用浏览器打印报表的控制不是很规范统一,例如:使用window.print()实现作者简介:邱泸谊(1999-),女,本科;黄俊杰(1998-),男,本科。
收稿日期:2018-11-05
Java报表功能的三种实现方法
邱泸谊,黄俊杰
(西华大学计算机技术与软件工程学院,成都610039)
摘要:在现代信息化管理系统中,报表担任着非常重要的数据分析和呈现工具的角色。可读性强的
报表系统可以把有效的信息转化为直观的图形化界面,方便使用者阅读数据信息,并为决策者提供精
准高效的决策依据,从而更好的进行企业市场需求分析和战略部署。随着web技术的发展,B/S架构模
式的信息管理系统越来越普遍,它的集成通用,灵活,低成本的报表生成方式是具有实际运用价值的。
主要介绍3种主流的报表功能的实现方案(浏览器、组件、拥有设计器的第三方软件)及其各自的优缺点,希望为读者在选择集成报表时提供一定的参考依据。
关键词:Java语言;Web 技术;报表打印
107
2019.02
2019.02
报表功能打印,页头页尾的格式会有页脚页眉干扰,不能准确的进行页面对齐及打印文字。并且它只能打印网页同时它还不具有迁移性,一旦需要新的报表页面,Web 网页程序将面临大幅度的修改。还应该注意的是:利用浏览器生成报表在不下载其他组件的前提下,只能支持HTML 打印。
3组件生成报表
为了能够使系统能够生成Word、PDF 这些可以通
过系统输出设备进行规范输出,一些小组件应运而生了。这些报表组件由于只是封装了制作报表格式的属性和方法,例如:生成PDF/word 格式,生成统计图等的方法属性,没有携带独立的设计器,所以它们的内存都比较小,大部分组件都比较容易安装部署。这一类组件通常是由程序进行控制定义并使用,对于小型系统的报表设计过程,利用组件生成报表是最有效方便快捷的。
主要以iText 为例,介绍了如何利用组件自身定义的属性和方法实现打印报表功能。
iText 是开放源码站点sourceforge 所开发的生成
PDF 报表的组件,它是用程序语言Java 编写的方法集成体,因此它可以适用于大多数的Java 开发环境。用
户只需要下载IText.jar 包后,将文件导入程序编辑器的库中,最后直接调用组件中的方法,即可制作报表。
通常使用IText 组件生成PDF 报表主要有以下5个步骤:
步骤一:建立数据库连接。
步骤二:用JavaBean 定义相应的数据操作语言,获取数据集。
步骤三:选取合适的构造函数定义docucom 对象,并初始化文件流对象。
Documne nt do cucom =new Doament (Rectangle size,int leftint right,int topint bot);.
//定义页面的大小以及页面内边距
docucom.getInstance (docucom,new FileOut⁃Steam(report pdf));
//将文档内容对象docucom 存储在指定的文件
//流对象
docucom.openO;//打开文件流对象
docucom addTitle("A dd text reoportitle!");//添加//文档标题
docucom addSubject("Add text theme!");//添加//文档主题
docucom.close()://关闭文档内容对象
步骤四:设计报表页面需要的样式。
步骤五:通过在服务器端使用Jsp 生成PDF 报表,PC 端通过超链接或下载得到生成的报表。
与浏览器直接实现报表功能的打印相比,虽然还是
需要连接数据库传递数据信息,但是通过iText 组件实现报表功能的打印解决了一些直接利用浏览器直接实现报表打印功能无法解决的问题:打印的内容取决于实时的数据库信息;即使页面过多,PDF 文档也能在无人参与的批处理模式下自动创建。iText 作为一个jar 包,封装了一些对文档内容制作的方法,功能比较全面,也减少了制作过程中一些格式的问题,能够满足信息管理系统实现报表功能打印的一般需求,使报表内容变得更加容易调整。
iText 组件的缺陷:由于iText 并不是中国公司开发
的,因此并不支持中文字体的设置,如果要生成中文输出的报表,还需要多下载一个ITextAsian.jar 的文件,并通过相应代码定义来实现中文的设置。这种问题极大地影响了iText 在中国报表中的使用。另一方面iText 组件在制作表格和图片中,都需要大量的代码定义表格和图片的格式。而在大型信息管理系统的制作过程中,会涉及到大量报表设计,并且这些报表样式不尽相同,在这个时候利用iText 组件制作报表在代码量上就显得冗余了。
4第三方工具生成报表
随着B/S 框架模式的普及和用户报表制作需求的不
断上升,一些方便快捷报表软件大量涌现。这些报表软件在封装了大量的报表模型和制作报表样式的操作方法的同时,还具有独立的设计器,可以通过设计器直接绘制报表模板,系统再由设计的报表样式自动生成代码。由于它们对B/S 结构的友好度极高,使得它们的出现极大的减少了开发人员在系统研发时的工作量。主要以Crystal Reports 和Fine Report 为例,介绍了如何利用第三方软件实现打印报表功能。
Crystal Reports 报表开发工具是由SAP 公司开发的,
它的优势是实现了与绝大多数主流开发工具的集成和接口。Crystal Reports 的安装是在Visual Studio?2013的电脑环境配置下下载Crystal Reports,version for Visual Stu⁃
dio 2013.aspx,修改环境变量,进行单独部署,值得注意的是在应用程序更新的时候,由于服务器方案是单独安装的,报表文件是单独部署的,所以无法同时更新。
108