WEB报表系统的研究与应用

来源 :科学时代·下半月 | 被引量 : 0次 | 上传用户:yux444
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  [摘 要] Web报表是当前企业信息系统报表应用的发展方向。本文提出了一套在Web环境下的报表生成系统的设计方案,以XML为报表数据和格式的描述及表现手段,以应用服务器为中心进行Web集成,并利用软件构件来搭建基于Web的报表应用,动态生成PDF或HTML格式的报表,并实现报表打印和CVS导出。并且在应用的过程中还利用了将传统的关系型数据通过O/R映射工具转化为持久对象,从而引入以对象的形式来操作数据库数据的创新性设计思想进行设计,最终的实验对比及分析展示出了这两种方式的利弊。
  [关键词] 报表系统 J2EE Hibernate XML
  
  1.引言
  随着INTERNET的廣泛应用以及Web技术的日益成熟,B/S结构已逐步成为被大众认可的一种先进的软件系统构建模式。B/S结构主要特点是客户端利用浏览器访问服务器端的业务逻辑以实现复杂的功能,由于其良好的分布式结构、跨平台特性,已逐渐成为应用软件开发的一种发展趋势。传统的C/S体系结构正逐渐被更灵活的Web分布式环境所取代,B/S架构解决方案业已成为企业级应用软件解决方案的主流。
  报表是信息管理系统中非常重要的而且往往是必不可少的组成部分,也是商务智能的一个重要组成部分,被誉为应用软件的灵魂,在应用系统的设计实现中占有十分突出的地位。随着Web应用的逐步发展,基于浏览器的客户端也出现了一些新的问题,其中比较重要的是B/S模式下报表的设计和展现问题。
  基于Web方式的报表开发技术相对C/S模式不太成熟,这就给报表开发人员带来很多困难。有很多商业报表工具如Crystal Report、华丹报表等,商业报表工具存在数据和格式之间耦合度高,报表定义和报表数据离开了格式就毫无意义,难以修改维护、不能重用等缺点,因此难以适应生产过程的多样性和变化性,这样无形增加了系统修改维护的难度,大大浪费了人力和财力。本文提出了一套切实可行的基于XML的可重用Web报表的解决方案并予以实现。该方案提出的报表系统架构支持多种数据源,并可以生成多种格式的文件,模板采用了XML技术, 将报表格式和报表数据分离,并引入报表参数的概念,可以有效降低格式和数据之间的耦合度,提高系统的可移植性,增强格式和数据的可重用性,可以跨平台使用,所提供的API形式简单,易于扩展。该解决方案可以充分利用多层体系架构的优点, 为设计和实现全新的WEB报表系统提供了强大的能力支撑而且能够很好地集成到各种Web应用系统中[1]。
  2.报表系统的架构
  
  图1 系统架构图
  无论是哪一种WEB报表应用,所要完成的工作都是相似的,就是用户在浏览器端输入报表的名字,运行在服务器端的引擎解析这个报表的配置文件,然后相应的从数据库中提取数据,然后将数据填充在报表中,最后在浏览器中显示给用户,用户可以打印,也可以输出为CSV或者PDF等文件。其中报表的格式相对来说是稳定的,而数据是经常发生变化的,这样就可以将报表格式定义为报表模板,多种报表格式就产生了多个报表模板,同时要支持多种数据源。通过对报表系统基本功能的分析,可以将报表系统划分为报表设计器,用来设计各种各样的格式复杂的报表模板,报表引擎,用来提供报表的打印和输出功能。本文提出的报表系统的系统架构图如图1所示。
  3.报表系统的实现
  3.1 报表模板
  如何设计功能强大且通用的报表模板格式是非常重要的,基于报表元素之间的复杂性和XML技术的优点,采用XML技术表示报表模板是最好的选择。
  为了支持更方便和更灵活的数据表示方式,报表模板中还包括参数、变量、字段及查询语句等。报表模板中的所有元素都是通过在用户在网页中对数据源,数据集,表头,明细等的动态选择自动生成的。参数是网页中用户的输入传递给报表引擎的数据,例如季度报表可以传递给报表具体的季度得到关于这个季度的报表数据。变量是一个表达式,可以根据报表的相关数据动态计算结果,比如计算汇总统计等。字段将数据源映射到报表域,根据数据源的数据逐行填写在报表域中。有了这样统一模板的定义,无论多么复杂的报表都可以遵循这样的定义,都可以由报表引擎解析生成报表,通用性和扩展性比较强。
  3.2 面向对象型的数据展现方案
  在系统对数据库进行操作的时候,面临两种选择:DAO和Hibernate。DAO(Data Access Object)是传统的应用的比较广泛的技术。开发人员可以通过DAO类自己编写SQL对数据库进行操作。应用程序使用面向对象的思想,建立了若干个类,但是数据库系统是面向关系的,所以底层的数据库系统破坏了这种对象关系,需要人工做O/R映射。而Hibernate技术正是对数据库进行O/R映射成功的例子。于是选择了Hibernate技术。Hibernate其实就是在JDBC上面封装的一个数据访问子层,这一层实现了面向对象的思想和关系数据库之间的衔接,使得开发人员能够较好的使用和控制数据库操作。在实现起来也较为方便,利用xml可以很方便的实现这种映射[2]。
  下面就分析面向对象的数据表现形式所带来的不同以及优缺点:
  首先分析不同之处:利用Hibemate后,程序中不可以直接用JDBC连接数据库,所以每张报表都必须拥有一个dataSource文件;而当一个查询语句就能得到所需要的全部数据时,就可以直接在.rptdesign文件(报表模板文件)中用JDBC和SQL来实现数据源。下面我们来看一下各自的优缺点:
  (1)当报表所需要的查询语句比较简单而且一个查询语句就可以的情况下,普通的关系型就很简单方便。
  (2)对于复杂的数据源,需要用多个查询语句来得到所需的数据的时候,每张报表拥有一个独立datasource 是很方便的。
  (3)当用户的需求改变,尤其是报表的表格行列内容发生变化时,对于一般的关系型数据库操作,必须修改查询语句,那将是非常麻烦的,甚至是不可以实现的;但对于单独的dataSource文件,不需要修改查询语句,只需要对数据组织部分的代码进行相应的修改即可,使用起来相当方便灵活。
  通过以上的分析,可以了解到面向对象的数据表现方式给基于J2EE平台的应用项目开发所带来的优越性。在运用了Hibernate技术后,每张报表都需要一个单独的数据源java类,对于每个数据源类,都要有一个对应的前台展现的xml文件。有了这两个最基本的元素后,还需要的就是管理这些报表正常地运行于系统中的servlet。这个servlet的功能是产生报表,工作过程为:页面将报表名传给servlet后,servelet建立数据源实例,把报表配置xml文件与数据源实例一起传给报表引擎,然后由引擎生出PDF,html,cvs等文件。
  3.3 报表引擎
  报表引擎是报表系统的核心组件,应用程序可以很方便地调用报表引擎提供的接口设定报表模板,并完成报表的输出和打印。报表从一个描述报表所有属性的XML文件开始。其中定义了报表的layout、所展现数据的属性两大内容,这两大主要因素就可以决定一张报表。由报表引擎解析这个XML文件,XML文件经过逐项分析后就被提交到ReportDesign类,然后经过编译以后被送到Report类,在此处经过变量一致性检查和优化等操作后,产生一个临时的.rptdesign文件。这个文件被填上适当的数据后就基本可成型为一张完整的报表。所以为了提高生成报表的效率,从第一次生成该.rptdesign文件以后,就保存于服务器中特定的目录下,等待命令,填充数据,从而生成新的报表。填完数剧的.rptdesign文件被送到Print类,根据要求或是直接显示到屏幕上,或是导出为PDF、HTML、CSV等格式的文件。通过这一系列过程后,一张完整的报表就产生了[3]。
  4.结束语
  随着电子商务与电子政务的蓬勃发展,如何实现快速有效的Web报表系统已成为软件应用系统研究的重要课题。本论文提出了一种基于XML技术的面向对象型数据的Web报表系统的解决方案,该解决方案针对报表系统的基本模型,设计出了通用的报表模板和报表引擎,能够满足用户对各种各样复杂报表格式的需求,用户可以很方便地调用报表引擎的API。本论文重点阐述了在J2EE平台下基于对象型的数据的创新性操作思想,同时通过该思想设计的系统已经在交通信息平台中得到了实际应用,结果证明此方案具有性能高,开放性、可移植性和扩展性好的特点,并且适用于各种Web应用系统对报表的需求。
  参考文献:
  [1] 唐远涛、苗放著.基于Web报表开发的研究与应用[D].四川:成都理工大学,2006.
  [2] Herbert-Hill著,朱德爽、胡凤燕、胡复明等译.C#完全手册[M].北京:电子工业出版社,2002.15-18.
  [3] http://www.eclipse.org/birt/phoenix/ 2006.04.
其他文献
[摘 要] 电气工程设计是大型楼盘建筑的灵魂,做好工程设计工作,对楼盘建设的工期、质量、投资费用和建成投产后的运行安全可靠性和生产的综合经济效益,起着决定性的作用。本文主要是對楼盘的电气设计中遇到的一些问题的研究与探讨。  [关键词] 电气工程设计 大型楼盘 照明 采光 安全    一、电气工程设计中的几点总则  电气工程设计是大型楼盘建筑的关键环节,做好工程设计工作,对楼盘建设的工期、质量、投资
期刊
[摘 要] 本文结合自身工作经验,分析工程预决算工作中存在的一些问题并就如何进行控制提出了个人的一些见解。  [关键词] 工程预决算 预决算编制 管理    1.引言  建筑工程预决算是决定和控制工程项目投资的重要措施和手段, 是进行招标、考核企业经营管理水平的依据, 也是审查机关掌握投资状况, 监督经济活动的重要依据。建筑行业流行一句话:是赔是赚,全在预算。这句话,充分证明了工程预决算对于工程施
期刊
[摘 要] 丧失稳定一直是钢结构破坏的主要原因之一,本文陈述了对钢结构稳定概念的一些理解,并且总结了钢结构稳定计算的原则和特点。  [关键词] 钢结构 稳定 荷载    1.前言  钢结构的稳定性问题普遍存在于钢结构的设计中,丧失稳定一直是钢结构破坏的原因之一,凡是结构的受压部位在设计时都必须认真考虑其结构的稳定性。笼统来说,钢结构的失稳就是,当结构所受载荷达到某一值时,若增加一微小的增量,则结构
期刊
[摘 要] 现代城市街道景观是既协调自然风景、人文环境与民俗风情,又结合地形,注重环境生态及景观塑造的设计。赋予城市街道以浓郁的文化气息,塑造具有文化特色的景观体系满足了现代生活的精神文化需求,反映现代人的艺术品味和审美观念,使景观具有了艺术灵魂和价值,城市形象也将充满生机和活力,从而实现城市社会环境的可持续发展。  [关键词] 城市街道 景观 人文特色    如果说街道空间是城市空间的重要组成部
期刊
[摘 要] 在实际工作中,对机械加工工艺质量的影响因素有很多,其中比较关键的影响因素是产品结构和机床精度工艺,本文根据笔者的实际设计工作经验研究了机械加工过程中由于机床精度所引起的一些常见加工缺陷,并提出了一些提高加工工艺的方法。  [关键词] 机床 加工精度 原始误差    随着计算机技术,数控技术的发展,工艺技术水平有了很大的提高,这使工艺制造技术和工艺质量管理工作产生了革命性的变化。所以提高
期刊
[摘 要] 冲压加工效率高、质量好、成本低,应用较为广泛,但是由于压力机是危险性较大的机械,很容易引发安全事故。本文通过笔者的实际操作及工作经验总结出了冲压生产安全事故的有效预防措施。  [關键词] 冲压生产 事故分析 预防措施    引言  冲压生产是一种少、无切削的加工方法,材料利用率高,操作简便,制件尺寸稳定、精度较高、互换性好,因而在现代工业生产中占有十分重要的地位。据近年不完全统计,冲压
期刊
[摘 要] 介绍了某变电站35kV备自投装置拒动案例,通过分析说明了备自投装置动作不成功原因,将备自投装置程序升级后能有效避免类似的事故发生,进一步提高了供电可靠性。  [关键词] 备自投 据动 母线TV断线逻辑 升级    0.引言  微机备自投装置在保证电力系统可靠供电中发挥了巨大的作用。然而在实际工作中,由于各种原因造成备自投装置拒动的事故时有发生。本文介绍一起由于备自投装置逻辑错误,从而导
期刊
[摘 要] 如果把商业建筑综合体比作一个人体,它的各个脏器便是它的各种功能部分,而保证这个肌体维持正常新陈代谢的血管就是城市交通。空中商业街是借鉴扩展的过街天桥,位于两边商场的中央,在距离上、空间景观上和功能使用上形成的街区公共空间,商业区内道路与建筑空间的融合统一是今后城市、建筑与交通一体化发展的必然选择。  [关键词] 空中商业街 交通 建筑空间 融合    建筑师在进行建筑设计的时候,一定在
期刊
[摘 要] 配电自动化技术是利用现代电子、计算机、通信及网络技术的重要配电技术,也是一个复杂性与综合性极高的系统工程。本文对电力系统配电自动化的改造进行了分析。  [关键词] 配电自动化 改造构想 改造措施    1.配电自动化主要有如下几个方面  1.1 馈线自动化  馈线自动化完成馈电线路的监测、控制、故障诊断、故障隔离和网络重构。其主要功能有:运行状态监测、远方控制和就地自主控制、故障区隔离
期刊
[摘 要] 随着经济的发展、第三产业的兴起、高层建筑的增多以及装修工程的普及,火灾隐患也随之增多.本文通过分析电缆火灾的成因,探讨如何从电气线路设计、防火材料的选用这两方面防范火灾发生。  [关键词] 电气故障 电缆火灾 防火 变电系统 民用建筑    导言  据统计,在引起诸多火灾的因素中,以电气线路故障引起火灾的比例最高。国内因电气线路故障引起的火灾事故造成了巨大的人员伤亡和巨额的经济损失,给
期刊