基于B/S架构的自主生成报表引擎系统设计与实现
2017-04-25何俊博
戚 平,何俊博
(1.中国石油大学(华东)山东 青岛266580;2.中国移动通信集团新疆有限公司博州分公司 新疆 博尔塔拉蒙古自治州833500)
基于B/S架构的自主生成报表引擎系统设计与实现
戚 平1,何俊博2
(1.中国石油大学(华东)山东 青岛266580;2.中国移动通信集团新疆有限公司博州分公司 新疆 博尔塔拉蒙古自治州833500)
基于当前社会对报表应用的需求,为满足开发人员对已有数据库查询显示的不同需要,采用B/S架构,使用JSP编程,设计实现了自主生成报表引擎系统。该系统使用浏览器登录服务器,为用户划分个人工作空间,根据用户需求自由设定报表的查询项目,解决了时间、地点的局限,突破了只能按系统设定好的报表模版查询的桎梏。经测试该系统具有良好的稳定性、兼容性和可扩展性,达到了设计的要求。
自主生成;报表引擎;B/S架构;报表生成器
在信息社会中,各种信息都需要进行处理并直观的展现出来。很多企业的系统中都需要将大量数据以报表的方式显示和分析,报表的重要性越来越得到了企业决策者的肯定。随着时代的变迁,传统纸质报表在社会的进步以及科技的发展中逐渐被电子报表所取代,各大公司也投入了大量资金进行报表设计工具的开发[1-2]。目前大型企业基于B/S的报表系统开发模式越来越成熟,但是很多开发人员仍在根据实际需求直接写代码实现数据的分析、处理、展现功能。这样的实现方式会做很多重复工作,比如很多项目中都需要通过报表数据和图表来展现业务趋势,而展现的时间粒度、地域粒度、数据纬度和指标却各不相同,所以结果也是不同的[3-4]。
报表引擎是用来生成相应的报表并展示给用户的一种工具。报表引擎起源于流行的工作流引擎的原理、报表格式的定义、报表内容的各种算法,产生报表引擎的思想。它主要是引用工作流引擎的流程运转原理,在原始数据的基础上,定义报表的格式、报表的算法,根据定义的算法自动执行计算,并输出计算后的结果,再根据定义的报表格式显示报表的内容[5]。
客户使用的系统中经常需要显示大量的报表,这些报表中的指标随着客户的需求变化也在不断地发生改变,这对管理人员来说当用户需求改变时就要大规模的更改系统,修改显示报表的页面。为了使管理人员解脱束缚,在已有数据的基础上开发一套能够通过自定义来生成报表的系统,这会大大降低管理人员对于系统的维护时间。随着需求的出现,技术人员开发出了很多系统平台,比如:巫乔顺等设计并实现了一种基于XML和Excel技术的自定义动态报表系统,系统由数据层、业务层、定义层及展现层组成[6];潘永才等则提出了一种可定制报表系统的设计方法:给出了可定制报表系统架构与实现方法,并在.NET平台下设计了由报表定制模块、报表解析模块等组成的可定制报表系统[7]。
随着当前网络环境的无处不在,各种电子产品大都具备了连通网络,处理各种信息乃至工作任务的强大功能,直接利用这些工具通过网络浏览器来完成一些报表的定制将会极大地方便从事相关工作的从业人员。基于B/S架构的自主生成报表引擎系统的设计与实现,为解决这样的社会需求提供了一种解决的思路。报表从某种方式上可以划分为两类:用来查询显示的报表,提供数据上报的报表。在这个系统里只涉及用来查询显示的报表。
1 系统设计
自主生成报表引擎系统是一个通过浏览器访问服务器端,调用报表生成工具来完成一系列报表任务的系统平台。它通过Web方式实现报表的生成、预览与打印,为用户提供满足其要求的报表格式。根据不同用户对报表的不同需求,系统中所显示的报表会随着用户的自主设定而不断地变化。由于传统的编写jsp报表页面工作量巨大,因此自定义生成报表引擎系统将功能进行了模块化设计,以提高工作效率。
系统根据用户提供的要求来定制报表,需要实现以下功能:
1)用户名认证:限定用户的工作区间,即用户登录后只能修改其用户权限下定制的报表。
2)定制报表:此功能是本系统的主体功能。一个完整的报表由表名,表头,表格数据,日期组成,用户通过输入表名、表头、数据查询语句,选择时间粒度,即可完成一个简单的报表定制。
3)报表列表:显示用户定制的报表信息(包括报表名,生成时间,定制人id)。
4)预览报表:预览已经定制的报表。
5)修改报表:进入修改界面,可更改表名,表头,数据查询语句,时间粒度。
6)报表下载打印:将报表导出到Excle表格中或者打印。
将以上功能进行归纳,可以将系统划分为3大模块:
1)用户工作区:完成用户的登录验证并设定用户的工作区间,使用户之间不会互相干扰。
2)报表定制、修改模块:使用新建报表功能,填写报表生成器的内容,创建报表。完成后,用户可以查看报表信息内容,进行报表的修改、删除等管理工作。
3)报表显示打印模块:实现将用户生成的报表导出并打印的功能,打印功能使用一款名为iText的开源的免费纯java组件来完成,在本文中就不做介绍了。
2 系统实现
2.1 用户工作区的实现
用户输入用户名和密码后,点击登录按钮,服务器端调用javabean通过jdbc与数据库连接进行用户验证。登录成功后显示index.jsp主页面,框架分为两部分,如图1所示。
图1 主页面框架
页面的顶部,是用于显示含有系统信息的图片,在图1中未做展示。第①部分位于左侧,主要含有报表列表、新建报表、修改报表、报表信息四个按钮供用户选择需要进行的任务;第②部分位于右侧,是在主页中嵌入了一个