




已阅读5页,还剩67页未读, 继续免费阅读
(计算机软件与理论专业论文)基于xml的web报表工具研究.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要 随着i n t e r n e t 的蓬勃发展,作为信息系统的重要组成部分报表应用迫切需 要向w e b 转移。现有的报表工具主要采用客户端构件方式或者静态h r m l 方式支 持w e b 报表的开发,无法满足根据用户需要实时生成报表的要求,报表功能的可 扩充性也相对较差,新的w e b 报表工具迫在眉捷。 本文在研究了大量的报表工具基础上,提出了面向w e b 的报表工具模型。x r t 报表工具,以x m l 为基础,重点解决了报表的两个核心问题:报表数据、报表格 式。工具将报表分为页眉、页尾、细节等多个小节,在各小节中可以自由定义小 节数据项,通过丰富的数据运算,可以实现复杂的报表功能。 本文重点描述了基于x m l 的自定义报表数据语言x r d l ,该语言实现了报表 数据源s q l 、数据间的运算、报表条件、合计等语法定义。数据解释器采用d o m 解析报表数据定义文件,生成报表数据文件。 对于以浏览器为客户端的w e b 报表,工具采用x m l x s l 作为报表信息的描 述标准,具有良好的通用性,支持报表格式的多样性。 本文详细论述了报表工具的设计、实现,为w e b 上的报表开发指明了一条新 的途径。 关键词:报表工具x m l x s l 解释器浏览器 a b s t r a c t w i t hr a p i d d e v e l o p m e n t o f h i t e m e t ,r e p o r ta p p l i c a t i o n s to n eo f t h e m o s t i m p o r t a n t c o m p o n e n t so f i n f o r m a t i o ns y s t e m s ,n e e dt ob ec h a n g e dt o w a r d sw e b t h er e p o r tt o o l s a v a i l a b l e ,m a i n l yb a s e do nc l i e n t - c o m p o n e n to rs t a t i ch t m lp a g e , c a l l tf u l f i lt h e r e q t m s to ft h eu s e rt oc r e a t er e p o r t si nr e a lt i m ea n dt h ef u n c t i o nu p d a t e s n e wr e p o r t t o o lu s e do nw e bi sg r e a t l yn e e d e dt ob ed e v e l o p e d o nt h es t u d yo fl o t so fr e p o r tt o o l s ,t h i st e x tg i v e sar e p o r tt o o lm o d e lt o w a r d s w e b t h ex r tr e p o r tt o o l ,b a s e do nx m l ,e m p h a s i z e so nt h et w ok e r n e lp r o b l e m so f r e p o r t :r e p o r td a t aa n dr e p o r tf o r m a t i ts e p a r a t e sar e p o r ti n t os e v e r a is e c t i o n s , i n c l u d i n gh e a d e r 、f o o t e ra n dd e t a i le t c ,i n s i d ew h i c ht h ed a t ai t e m sc a l lb ed e f i n e d f r e e l y c o m p l e xr e p o r t sc a nb ea c h i e v e db yr i c hd a t ac a l c u l a t i o n s t h i st e x tm a i n l yd e s c r i b e st h eu s e r - d e f i n e dr e p o r td a t al a n g u a g e _ 伽l t h i s l a n g u a g ei m p l e m e n t st h es y n t a xd e f i n i t i o n ,s u c ha sr e p o r td a t as o u r c es q l 、o p e r a t i o n s b e t w e e nd a t aa n dr e p o r tc o n d i t i o n se t c t h er e p o r td a t af i l e sc a nb eg o t t e na f t e rt h ed a t a p a r s e rp a r s e st h er e p o r td a t ad e f i n i t i o nf i l ew i t hd o m f o rt h eb r o w s e rc l i e n t ,t h et o o lu s e sx m l x s lt od e s c r i b ew e b r e p o r ti n f o r m a t i o n , a n dh a st h ea d v a n t a g eo f w i d eu s e i ta l s os u p p o r t st h em u l t i p l i c i t yo f r e p o r tf o r m a t t h i st e x td e s c r i b e st h ed e s i g na n di m p l e m e n t a t i o no f t h er e p o r tt o o lt h o r o u g h l y ,a n d g i v e san e wm e t h o df o rr e p o r td e v e l o p m e n to nw e b k e y w o r d :r e p o r tt o o l x m lx s l p a r s e r b r o w s e r 创新性声明 y 5 8 3 4 2 4 本人声明所呈交的论文是我个人在导师指导f 进行的研究工作及取得的i i f 究 成果。尽我所知,除了文中特别加以标注和致谢中所罗列的内容以外,论文中不 包含其他人已经发表或撰写过的研究成果;也不包含为获得西安电子科技大学或 其它教育机构的学位或证书而使用过的材料。与我一同工作的同志对本研究所做 的任何贡献均已在论文中做了明确的说明并表示了谢意。 申请学位论文与资料若有不实之处,本人承担一切相关责任。 本人签名 盘越日期兰! 丝坐旦 关于论文使用授权的说明 本人完全了解西安电子科技大学有关保留和使用学位论文的规定,即:研究生 在校攻读学位期间论文工作的知识产权单位属西安电子科技大学。本人保证毕业 离校后,发表论文或使用论文工作成果时署名单位仍然为西安电子科技大学。学 校有权保留送交论文的复印件,允许查阅和借阅论文:学校可以公布论文的全或 部分内容,可以允许采用影印、缩印或其它复制手段保存论文。( 保密的论文解密 后遵守此规定) 本学位论文属于保密,在年解密后适用本授权书。 本人签名 导师签名 丝盐 妣乒一 日| 胡弘。竺,、一 r 期地生! f :! f 第一章绪论 第一章绪论 1 1 引言 2 l 世纪最大的特征是信息时代的到来,更确切的说是网络时代的到来i lj 。 i n t c m e t 给全球企业带来了前所未有的影响,造成了无数新的机遇,越来越多的新 的企业在其应用系统中集成了i n t e r a c t 的能力,让更多的用户使用新一代的系统, 进一步开拓新的商机。随着i n t c m e t 技术应用的越来越广,传统客户服务器模式的 企业信息系统逐渐向i n t 岛 n e t 转移,演变为浏览器服务器模式,出现了 i n t e m e t i n t r a n e t 企业信息系统。 所谓i n t r a n e t 是以i n t e m e t 为基础的网络体系,又称为企业内部网,是i n t e r n e t 技术在企业局域网的应用,其基本思想是:在内部网络采用t c p i p 作为通信协议, 利用w e b 作为标准平台,同时建立防火墙与i n t c “m e t 进行隔离。它给传统企业信息 系统带来巨大变化,使用更加简单,系统更加开放,扩展性好,开发和维护方便。 不论是基于i n t r a n e t 的企业信息系统,还是i n t e m e t 上的电子商务应用,其开发 过程中,报表往往占了开发总工作量的较大比例【2 】。因此,基于浏览器的网络报表 工具已经成为i n t e m e t 应用不可或缺的一部分。 目前,数据库应用的大量出现,而报表是这些应用系统最重要的输出形式之一, 绝大部分数据库软件的设计都离不开报表的设计。在数据库软件开发的过程中, 软件设计人员常常需要设计大量的报表,尽管其中相当一部分的报表结构类似, 但也得为每一个报表的报表对象、数据类型、显示格式等一一进行定义。这些繁 锁的重复性工作常常花费数据库软件设计人员、操作人员、维护人员大量的时间 和精力,影响系统的开发进度、质量、效率。切实可用的支持二次开发的报表工 具迫在眉捷。 1 2 论文研究目的 长期以来,报表工具的开发一直是一个热点,不少人对报表工具进行了研究, 提出了自己的解决方案【3 】 4 。目前,已经有了多种可用的报表工具,但依然存在 许多问题。 支持h t m i x m l ,可供浏览器使用的w e b 报表工具少。多数编程语言或数据 库系统为增加系统的实用性,有自己的报表工具,但这些工具总是与晤言或数据 库紧密联系,多数未能提供报表的w e b 输出功能。 报表与用户之间的交互能力弱。通常报表工具的工作方式分为两种:p u s h p u l l 。p u s h 指的是报表工具预先生成报表,然后将报表发布,例如将报表发布 到网页,或e m a i l 给用户等,这是固定静态报表的使用。p u l l 指的是用户请求 2基于x m l 的w e b 报表工具研究 报表,报表工具实时生成报表,反馈结果给用户,这是条件动态报表的使用。 一般基于客户端服务器的系统中,报表的交互能力较强,由于相应的报表工具 支持多,报表条件的显示、选择、实现较为容易。而基于浏览器服务器的应用系 统中,绝大部分报表以p u s h 的方式工作,先由报表工具生成内部特定格式的报 表,然后转换成硼m u l 格式,以此来支持i n t e r n e t 网页,缺乏相应的与用户 互动的功能,制约了报表数据应用能力,用户无法通过条件选择实时生成需要的 报表。 w e b 特定报表特定程序的处理方式多,而使用通用报表工具的少。例如站点提 供成绩查询功能,用户输入准考证号,系统接收输入条件,为查询功能定制的程 序作出相应处理,返回各科成绩至用户浏览器;该站点又提供了员工工资查询功 能,对相应工资查询,站点又编制了相应的脚本程序。虽然这两个功能从处理流 程上,具有极其的相似性,但由于缺乏通用报表工具,就会造成系统工作的低效, 报表设计维护繁锁。 切实解决上述报表技术问题,成为本论文的研究目的。 1 3 研究内容 笔者有幸参与了陕西邮政综合服务平台报表模块的开发工作,该报表工具运行 在u n i x 操作系统上,使用c 语言编写。采用数据驱动的方式解释格式定义文件 及数据源文件生成报表。限于平台及编程语言,其中格式文件、数据源以及最终 生成的报表均为普通文本文件,数据处理及界面表达能力相对较弱且不直观。 在原有工具的思路上,笔者提出了新的报表工具架构,新报表工具x r t ( x m l - b a s e dr e p o r tt 0 0 1 ) 采用表达能力丰富的x m l 设计数据格式文件,作为信 息的中间过渡【6 7 1 。工具将报表分为报表页眉、报表页尾、页面页眉、页面页尾、 分组页眉、分组页尾、细节多个小节,在各小节中可以自由定义小节数据项,数 据项拥有自己的数据源联系。通过丰富的数据运算,可以实现复杂的计算功能。 x r d l ( x m l b a s e dr e p o r td a t al a n g u a g e ) 自定义报表数据语言以及相应的数 据解释器是整个报表工具的核心部分。 其中,在数据源方面,x r d l 内置了数据库s q l 查询、表字段的引用、外部条 件的定义引用,支持报表的条件交互是工具的一项重要目标:在数据运算上,x r d l 支持常规数据类型定义、数据四则运算、字符串常用运算以及自定义函数的调用 等:x r d l 支持报表特有数据项的使用,包括:当前页码、总页数、记录数、打 印时间、打印同期等;x r d l 支持报表小计、合计地自动计算,支持分页处理。 数据解释器在用户申请报表查询后,采用d o m 文档对象方式动态地解析数据 定义文件,关联数据库,实时生成数据x m l 文件p 】。语法纠错是数据解释器的一 项重要功能。 第一章绪论 在格式处理上,报表工具采用x m l x s l 的显示方式1 9 】,具有较强的通用性。 利用x s l 及x p a t h r 如j 的数据定位功能,可以有效地检索报表数据x m l 文件中的 数据片段,通过x s l t 转换语言的转换f f “,工具将数据x m l 文件转换成测监器支 持的h t m l 文件。 报表工具运行方式适用于三级结构:客户端、应用服务器、数据库服务器。因 工具面向w e b ,客户端使用浏览器,服务器端使用了x m l 、d t d 、x s l 、h t m l 、 j a y a 、d o m 、s e r v l e t 、j s p 、t o m c a t 等技术【1 州1 14 】【1 5 】。 1 4 论文结构 全文结构如下: 第二章:首先介绍了报表的基本知识、报表的任务及特点;其次介绍了报表工 具的分类、功能,例举了两个常用报表工具。重点围绕报表数据及格式两方面展 开讨论。 第三章给出了x r t 报表工具模型,介绍了工具的设计总思路。报表数据定义 语言负责定义报表数据的运算规则,通过数据解释器的相应处理,获得x m l 格式 的报表数据,x s l 负责处理报表格式。 第四章详细介绍了自定义报表数据语言x r d l 的语法规则,包括数据源的定 义、数据变量的运算、函数的处理等。 第五章介绍如何保证报表数据定义文件规范有效,最后给出了x r d l 的文档 类型定义d 1 d 。 第六章介绍了报表数据解释器的功能及其实现。 第七章介绍了报表格式的实现方法,包括布局和细节的详细处理。 第八章给出了一个由x r t 报表工具实现的报表样例:话费交易日志。 第九章为论文的总结部分,提出了工具的不足之处以及今后工作的重点。 基于x m l 的w e b 报表工具研究 第二章报表工具分析 本章主要内容是对报表工具作全面分析。首先介绍报表特点,主要针对报表的 核心问题:报表数据、报表格式;其次,介绍了两个典型报表工具;章末,介绍 了报表工具的特定需求。 2 。l 报表 2 1 1 报表定义 报表,就其实质而言,是信息的发布,包括内容和形式两方面。形式方面:报 表是“表格”,具有“统一规定的表格形式”报表内容要按照一定格式组织。 内容方面:报表要“报告情况”,“反映经营成果和财务状况”赧表内容是各 种各样有用的数据。同时,报表是“数据处理系统所预备好”的输出文件,是“总 结性文件”报表中的数据是经过处理的数据。报表工具要代替人完成报表的 编制,就必须解决这两个主要问题:一是报表的内容,即报表数据;二是报表的 形式,即报表格式。 2 1 2 报表分类 报表工具种类繁多,按照使用方式划分,可以分为以下几类: 独立报表工具。这类工具可以独立运行,设计、浏览、打印报表,生成的报表 一般保存为私有格式。这类工具的典型代表有p l a t i n u m 公司的i n f o r e p o r t s ,以 及许多大型数据库厂商提供的报表工具。 嵌入式报表工具。指能够嵌入在其它开发环境中使用的报表工具。这类工具一 般能封装成构件或类,不能独立运行,只能在其它的编程环境中使用。 复合报表工具这类工具既可以独立使用,也可以嵌入在其它开发环境中。它 们一般提供了可独立运行的报表工具,同时也将报表功能封装成构件形式,供 其它系统使用。 目前,在实际应用中,比较流行的是第二和第三类报表工具,它们可以灵活地 和其它应用开发工具结合使用,开发出丰富功能的报表应用子系统。而第一类工 具,由于使用上的局限性,无法和其它应用结合,这不符合当前报表应用和系统 开发的集成化潮流。 另外,与一般报表系统不同,电子表格系统是一种较为特殊的报表工具。电予 表是一种“纯粹”的表处理工具,实际上,各种表处理都可以通过电子表格系统 实现。同样,电子表格系统可以用来方便地编制各种报表。典型的电子表格系统 包如e x c e l ,l o t u s 2 3 等。电子表格系统大都为可视化界面,每张表根据行和列划 第二章报表工具分析 分成许多单元格,在单元格中定义数据和显示格式,使用方便。 2 1 3 报表特点 不同系统中的报表特点不同,主要差别体现在: 擐袭的交互性 一是报表生成前的交互用户是否可以根据条件定向报表内容的输出;其次是 报表生成后的交互,某些报表系统,生成报表后,报表是“活动”的,用户还可 以对数据,格式作修整。例如:在e x c e l 中,可以按交互式或非交互式保存数据, 如果将数据按交互式保存,用户可以对生成的报表作如下操作:筛选,输入新值 或汇总分析数据。 数据流动方向 报表一般是从数据库提取某些数据,经过一些数学运算,最终以特定的格式呈 现给用户。数据流动是单向的,即从数据库到报表。可是,在某些报表系统中, 数据流动是双向的,还存在着另一方向上的数据流动,从报表至数据库报表可 以更新数据库中的数据。例如:在f o r m u l a ro n e 中,报表可以添加、修改、删除 数据库中记录的功能。 报表的输出 手工编制的报表不需要考虑输出问题,编制好的报表往往是纸质的,可以直接 使用;报表系统则必须考虑报表的输出,支持报表的打印、屏幕上的浏览等。也 虢是说,报表工具不但要能生成报袭,还必须能够按照使用者的要求输出报表, 供人霄撤用。 2 2 报表数据 报表的核心内容是数据。数据来源多种多样,可能取自数据库;可能来自数据 文件:“荀能童用户输入;还可能来自其它系统。同时,报表中的数据不是简单地 摘录或拷贝源始数据,大量数据需要经过加工处理,是计算结果,也就是说,报 表数据是经过处理的数据。 报表中的数据受以下因素制约: 数据源中现有的数据 报表的大部分数据最终来自外部数据源,主要是各种数据库,因而受到数据源 中包含的数据范围限制。例如:若数据库中不存在历史数据,则无法在报表中对 历史数据检索。 报表工具支持的数据源 原始数据可能存在于多种形式的数据源:数据库、数据文件等。数据库有不同 的访问接口,数据文件有不同的格式。报袁工具所能访问的数据源种类是有限的, 基于x m l 的w e b 报袭工具研究 因而限制了报表的数据来源。 报表工具的数据处理能力 报表工具的数据处理能力,决定报表数据的抽象层次。报表数据越抽象,需要 的处理越复杂。比如,要支持统计分析报表,就要求报表工具具有数据的统计分 析能力。 报表工具的实现 一些实现因素也限制了报表工具的能力。例如,报表工具所能支持的数据规模 就受到程序实现的制约。同时,支持报表工具运行的操作系统也可能限制报表 工具的能力。 2 3 报表格式 除了报表数据,报表的另一个重要方面是报表格式,报袭中的数据必须按照一 定的格式组织。报表格式包括报表布局和报袭数据格式两个方面 2 3 1 报表布局 报表布局是指报表结构的安排,或者说是报表各部分内容出现位置报表工具 的习惯做法是将报表分解,规定各个部分的出现位置,用户通过指定备部分的内 容来控制报表的布局、 常用报表工具,如a c c e s s ,将报表分为以下多个部分每个部分称为小节 ( s e c 如n ) ,是指一组控件的集合,不管处理还是打印。均f 乍为一个不可分割的整 体f 阍 报表页眉r e p o r t h e a d e r 报表页眉在报表的开始处出现。它通常用于打印报表标题,概括表,或指示报 表功能的总结性文字等信息。一般报表页眉只在报表第一页出现;若报表页眉数 据复杂,跨跃多页,在它的内容中插入分页控制即可。 报袭页尾r e p o r t a v o o t e r 报表页尾在整个报表的结束处出现。它用于打印报表的总结性内容,总计,报 表总页数,报袭处理时间,或报表的结束处器要处理的信息。 页面页眉p a g e h e a d e r 页面页眉在报表每页的顶端出现( 第一页出现在报表页眉的后面) 。它用于打 印列名,页标题,当前页页码等信息。 页面页尾p a g e f o o t e r 页面页尾在报表每页的底部出现( 最后一页出现在报表页尾的上面) 。它用于 打印页小计,页码等信息。 分组页眉g r o u p h e a d c r 第二章报袁r 其分析 报表数据可以分组,组可以嵌套。同一组的数据拥有相同的组头数据,分组后, 复杂报表层次更清晰。分组页眉在每一组的明细节前出现,用于打印组头数据。 分组页尾g r o u p f o o t e r 分组页尾在每一组的明细节后出现,用于输出组末信息。 明细( 主体) d e t a i l 明细节是报表的主体部分,记载报表的数据细节,通常用循环来处理明细节记 录行。 图2 ,1 ( 未分组) 说明了报表的布局配置。 图2 1 报表布局配置 如果按明细节的不同处理方式划分,报表布局可以分为以下两类。 纵栏式 固名思义,明细数据纵向处理。一条数据记录对应报表明细节的多行。这种报 表显示相对松散、大方。例如: 学号:0 0 0 0 2 0 7 6 8 姓名:张三 成绩:8 5 学号:0 0 0 0 2 0 7 6 9 姓名:李四 成绩:8 0 表格式 明细数据按表恪方式处理,记录内数据在明细节单行显示。这种方式显示数据 更为紧凑,有效。例如: 基于x m l 的w e b 报表工具研究 学号姓名成绩 0 0 0 0 2 0 7 6 8张三 8 5 0 0 0 0 2 0 7 6 9李四8 0 2 3 2 报表数据格式 报表数据格式,是指报表中数据的呈现格式。例如,报表文字格式:字体、大 小、颜色、粗体、下划线、对齐方式:报表数字格式:货币符号、千分位开关、 小数位数;报表日期格式:x x x x 年x x 月x x 日、x x x x x x x x 、x x x x - x x - x x 等。 报表工具的数据格式与文档编缉器( 如w o r d ) 提供的格式设定功能类似。对 报表的数据格式作详细优化的设计,能起到美化报表的作用,对重要数据的加粗 显示,报表就更直观有效。 2 4 报表输出 报表生成后,需要以某种形式输出供人们使用。关于报表输出有如下要求: 输出设备无关性 报表工具应能够将报表输出到多种设备。工具应能根据输出设备的能力,选择 合适的表现形式比如,报表的打印应能支持多种打印机。 支持多种发布方式 不仅支持打印方式介质,而且能发布报表至互联网网页,或以其它私有数据文 件格式保存等。 2 ,5 典型报表工具介绍 目前,常见的典型报表工具中,著名的有e x c e l 、q u i c k r e p o r t ,对现有报表工 具的研究,比较它们的优缺点,有助于我们设计出更好的报表工具。 2 5 1m i c r o s o f te x c e l e x c e l 是历史悠久的电子表程序之一,功能强大,许多后来出现的w i n d o w s 报 表报表工具均受其影响,甚至在界面和功能上加以模仿。 e x c e l 具有如下特点1 1 7 1 : 可视化界面 e x c e l 提供工作簿和工作表,一个工作簿包括若干张工作表,一张工作表即是 一个报表。每张工作表由若干单元格组成,每个单元格可以独立操作:设计单元 格的数据格式,定义数据公式,拆分合并单元格数据等。对报表作修改,立即可 以看到修改结果。 丰富的格式支持 e x c e l 中可以包括文字、数字、图形等多种内容: 第二章报袭工具分析 提供文字的字体大小、颜色、数字的显示等格式控制; 支持条件格式化。 丰富的数据处理功能 提供多种数据处理函数:数据库函数、日期与时间函数、工程函数、财务函数、 逻辑函数、查询和引用函数、数学和三角函数、统计函数、文本函数。 支持数据的分组、合计等。 支持多种数据源 可访问的数据库包括:m i c r o s o f t a c c e s s 2 0 0 0 ,d b a s e ,m i e r o s o t t f o x p r o ,o r a c l e , s q l s e r v e r ,文本文件数据库。 此外,可以使用d a o 检索m i c r o s o f te x c h a n g e ,和l o m s l 2 3 数据源中的数据。 还可以使用o d b c 数据源驱动程序获取其它类型数据库中的信息。 w 曲发布支持 e x c e l 支持将报表静态发布到w e b 页上,用户不需要在计算机上安装e x c e l 就 可以访问报表。 支持交互式报表 可以设置报表为交互式或非交互式。若设置为交互式,用户可以修改单元格数 据、格式,输入新值,汇总分析数据。 提供编程环境 e x c e l 提供了v i s u a lb a s i cf o r a p p l i c a t i o n ( v b a ) 和v i s u a lb a s i c 编程环境,同 时支持o l e ,用户可以使用v b a 编写自定义函数,实现对已有函数库的扩充,满 足实际需要。 2 5 2d e l p h i 的q u i c k r e p o r t q u i c k r e p o r t 是q u s o f t 公司为i n p r i s e ( d e l p h i 的开发厂商) 开发的报表构件产 品。q u i c k r e p o r t 是目前d e l p h i 中使用最广的报表工具,以v c l ( v i s u a lc o m p o n e n t l i b r a r y ,d e l p h i 的内部构件标准) 构件的方式提供”s j f l 9 1 。 报表设计原理 报表的设计通常包括数据设计和格式设计,q u i c k r e p o r t 也不例外。 由于q u i c k r e p o r t 是和d e l p h i 紧密集成的,因此它自身不提供数据定义构件, 而是充分利用了d e l p h i 提供的数据构件定义数据源,这些数据构件包括t q u e r y 、 t d a t a s o u r c e 、r r a b l e 等。 格式设计,q u i c k r e p o r t 也是按节的思想处理,把报表分成页眉、页尾、明细 等多节,每个节内可以放置任意报表元素构件,如数据库的字段值、文本标签、 图形图像、日期、时间、页码等。通过报表元素的不断组合,就形成了整个报表。 它能够设计出分组报表、统计图形报表、复合报表等复杂的报表应用。格式与数 1 0 基于x m l 的w e b 报表工具研究 据的关联通过字段构件的数据源属性设定。 w e b 报表体系结构 q u i c k r e p o r t 本身只是一套报表构件,并不提供数据库访问等应用开发功能。 但它依靠d e l p h i 的强大技术支持,使报表得以在网上应用。d e l p h i 提供了 a c t i v e f o r m 技术支持网上应用程序的设计。所谓a c t i v e f o r m 是指d e l p h i 中a c t i v e x 构件的容器构件,这个容器构件可咀包含其它a c t i v e x 构件,内嵌在浏览器中供用 户使用,这种容器构件在d e l p h i 中称为a c t i v e f o r m 。以a e t i v e f o r m 技术开发出来 的报表构件可以在浏览器中浏览使用。它再结合d e l p h i 提供的多层分布式体系结 构m i d a s ( m u l t i - t i e rd i s t r i b u t e da p p l i c a t i o ns e r v i c e ss u i t e ) ,就可以开发出w e b 报 表应用程序。如图所示: 图2 2q u i c k r o p o r tw e b 报表体系结构示意图 整个体系结构分为三部分:客户端、应用服务器和数据库服务器。客户端包含 报表应用构件、客户端数据构件和连接构件。应用服务器包括数据构件和数据提 供构件。在运行的时候,客户端首先从w e b 服务器下载客户端构件至浏览器,然 后报表应用构件通过m i d a s 的数据构件访闯数据库,获取报表数据,显示报表。 功能分析 q u i e k l 娜o r t 支持丰富的报表类型。报表设计可以任意复杂,它依靠m i d a s 框架及a c t i v e f o r m 技术支持w e b 报表开发。由于m i d a s 提供了很强的多层数据 库应用功能,支持多应用服务器的动态负载平衡机制,支持事务处理等高级功能, 使得报表应用在功能上十分强大。不过,q u i c k r e p o r t 也有一些不足,主要体现在: 报表设计繁锁。虽然它能创建复杂报表,但是制作过程也同样的复杂。工具中 没有提供报表设计向导等易用性的开发方法。 构件非标准。q u i c k r e p o r t 采用的是d e l p h i 的标准构件v c l ,只能在d e l p h i 中使用,影响其通用性。在实现时,它将报表应用整体封装成c o m a c t i v e x 构件。 导致构件体积庞大。 第二章报表r t 具分析 在w e b 上的应用速度慢。由于报表构件体积大,下载到客户端需要较长时间, 影响了它在i n t e m e t 上的应用。虽然,q u i c k r e p o r t 支持报表的h t m l 文件输出, 阻这种方式是静态的。 总的来说,q u i c k r e p o r t 是开发常规的w i n d o w s 报表应用的有力工具。 2 6 其它报表需求 除以上计论的报表数据、报表格式和输出,报表工具还需提供一些其它功能。 2 6 1 报表管理 报表工具需要提供报表管理机制,用于管理系统存大的大量报表,方便用户使 用检索。报表添加功能用于向系统添置新报表;报表删除功能指从系统已有报表 集中删除旧报表:查询功能指可以对报表集进行检索。 2 6 2 报表安全性 报表数据来自于数据库,数据安全性是数据库最重要的方面之一,同样也是报 表的需要。未经授权的报表浏览可能导致商业机密的泄漏,恶意修改报表的数据 定义或报表数据会造成不可估量的影响。因此,报表工具需提供安全机制,对用 户进行不同授权,控制报表的使用,保护数据。常用的方法是设定用户名、密码 保护,用户正常登录后,才能浏览权限内的报表,一般不允许修改报表数据,对 特殊需修改的报表采用密码保护等措施。 2 6 3 伸缩性 报表工具支持从报表设计、报表生成至输出的一系列功能。但,并不是所有用 户都需要全部功能,报表工具应具有伸缩性,能提供系统功能的一个子集,实现 灵活的配置。例如:对于最终浏览报表的用户,按装一个报表浏览器即可,不需 要安装整个报表开发工具。 2 6 4 平台支持 报表工具应尽可能多地支持操作系统平台。目前,基于w i n d o w s 操作系统的 报表工具相对较多,而u n i x l i n u x 上的报表工具较少。 2 6 5 二次开发支持 报表工具经常需要嵌入在其它系统中使用,提高报表工具的适用面。此时,报 表工具应向其它应用程序提供编程接口,提供二次开发支持。为了便于使用,要 求报表工具提供的编程接口符合一定标准。 2 6 6 扩充性 报表工具的功能并不一定能满足所有用户的需求,若报表工具提供扩充机制, 1 2基于x m l 的w e b 报表工具研究 从而用户的特殊需求得以实现,则报表工具的应用面就更广。通常报表工具应提 供自定义函数扩充机制,增强报表数据的处理能力。 2 7 本章小结 本章对报表工具作了全面的介绍,从报表定义、报表特点至报表核心问题:报 表数据、报表格式处理,对典型报表工具作了细致分析,最后,介绍了报表工具 的特殊要求。 第:章x r t 报丧j :具模嘲及设计 第三章x r t 报表工具模型及设计 本章主要介绍基于x m l 的报表工具( x m l b a s e dr e p o r tt o o l ,x r t ) 的设计 理念。针对一般报表,提出了基础报表工具模型,始终围绕报表数据处理和报表 格式处理这两大块。流水线样本、解释器样本概念的引入用以加深对报表工具模 型的理解。其次,介绍了标记语言x m l ,在此基础上提出了面向w e b 的x r t 报 表工具模型。最末,介绍了报表工具的一些其它设计。 3 1 基础报表工具模型 我们首先提出一个基础报表工具模型,该模型提供重用性、可扩充性,易于构 造。模型如图3 1 所示。 图3 1 基础报表工具模型 该报表工具模型支持:报表的定义、生成和输出发布。其中 报襄的定义由报表设计环境支持。 报表生成和报表的输出发布由报表运行环境支持。 报表数据定义使用报表数据定义语言。 1 4基于x m l 的w e b 报表工具研究 报表格式定义使用报表格式描述语言。 报表数据解释器负责根据报表数据定义,生成报表数据模型。 报表格式解释器负责根据报表格式定义,将报表数据模型中的数据按照指定的 报表格式组织,生成报表。 报表输出处理器将报表输出到不同设备或者以不同的文件格式发布报表。 3 2 报表工具模型中的样本运用 3 2 1 样本 样本定义:样本描述了在一个特定的设计环境中重复出现的设计问题,提出了 该问题久经考验的一般解决方案;该方案描述了解的组成部件,组成部件的职责 和相互关系,以及它们协同的方式 2 0 l 。 样本具有如下特性: 样本针对特定设计环境中重复出现的设计问题,提出了问题的解。 样本记录了现有的久经考验的设计经验。 样本识别和指定了高于单个类和实例或者组件层次的抽象。 样本提供了理解设计原则的公用语言。 样本是记录软件结构的方法。 样本支持构造具有特定性质的软件。 样本有助于构造复杂的、异构的软件结构。 样本有助于管理软件的复杂度。 3 2 2 流水线样本 流水线样本是一种数据处理系统的体系结构样本 2 0 1 每个处理步骤用过滤组件 实现。数据沿相邻过滤器间的管道流动。重新组合过滤器可以建造相关的系统。 流水线样本将任务分解成几个顺序的处理步骤。这些步骤通过系统中的数据流来 连接:每个步骤的输出是后续步骤的输入。每个处理步骤用过滤器组件实现。过 滤器增量式的消耗和分发式数据一不是在产生任何输出之前消耗所有的输入一获 取低的延迟,允许并行处理。系统的输入由数据库、数据文件提供。输出流到数 据漏( 文件或者终端等输出设备) 。数据源、过滤器和数据漏由管道顺序连接。每 个管道实现相邻处理步骤间的数据流动。用管道连滤接的过滤器组合称为处理流 水线。 过滤器是流水线中的处理单元。过滤器可以丰富,提炼或者转换它的输入数据: 过滤器通过计算和增加信息来丰富数据;通过集中或者抽取信息来提炼数据;通 第三章盯报表i :其模喇及设计 过将数据用其它方式表达来转换数据。 管道指的是过滤器问的连接、数据源和第一个过滤器i 剞的连接以及最后一个过 滤器与数据漏之闻的连接。如果两个主动的部件被连接,管道同步两者同步采 用先进先出的缓冲。如果活动被一个过滤器控制,管道在实现上可能是主动方对 被动方的直接调用。然而,直接调用使得过滤器的重新组合非常困难。 数据源代表系统的输入,提供了相同结构或者类型的一系列数据。数据源可能 主动地将数据推向第一个过滤器,或者在第一个过滤器拉数据的时候,被动地提 供数据。 数据漏在流水线的末端收集结果。数据漏有两种形式:主动的数据漏从流水线 拉结果;被动的数据漏接受流水线推来的结果。 流水线样本可以总结如下: 流水线样本是处理数据流系统的结构样本,过滤器封装处理步骤,相邻过滤器 以管道连接,数据沿着管道流动。 流水线样本的优点: 可以不需要中间件。 过滤器可以替换,提供了灵活性。 过滤器可以重新组合,提供了灵活性。 过滤器部件支持重用。 可以用于快速流水线原型开发。 可以实现并形处理,提高效率。 流水线样本的缺点: 状态信息的共享代价昂贵或者不灵活。 并行处理的效率提高实际上不容易获得。 数据转换的额外开销。 错误处理比较因难。 3 2 3 解释器样本 解释器样本描述了如何定义语言的语法规则,表示语言中的句子,解释这些句 子f 2 i j 。也就是说,程序可以提供某种语言描述它能够执行的操作,提供相应的解 释器执行这种语言。解释器简单的例子如宏记录器( 许多字处理软件中提供的操 作记录设施) ,复杂的如v b a 。宏记录器只是记录菜单和键盘操作,以后可以回放, 甚至不能称作是语言:它没有书面的格式,或者是语法。v b a 则是一个复杂的例 子,它的功能非常强大,或许远远超出了一个程序员的能力所及。 在什么时候使用解释器样本? 我们这里给出关于解释器样本适用场合的一些 论述: 1 6基于x m l 的w e b 报表工具研究 如果程序需要进行一些不同但是类似的操作,可以考虑使用一种简单的语言来 描述这些操作,通过程序解释之。 如果某类问题经常重复出现,那么或许可以构造一种简单的语言,使用这种语 言的句子来描述需要解决的问题。然后,可以构造一个解释器来解释这种语言的 句子以解决问题口j 。 以下两种场合特别适合使用解释器样本: 如果程序必须分析数学表达式。这很明显:程序需要根据用户要求执行操作, 用户的要求可能是等式或类似的东西。在数学图形计算中,经常需要程序根据 它所能求值的方程画曲线或者曲面。_ 些程序如m a t h e m a t i c a 和图形绘制程序 包,比如o r i g i n 就是这样工作的。 如果程序产生不同的输出。这或许不太明显,但是在这种情况下更有用。考虑 一个程序按照任何顺序显示数据列,并按照不同的方式来排序。这种程序一般 叫作报表生成器,底层的数据可能存储在关系数据库中,报表程序的用户界面 经常要比数据库使用的s q l 要简单的多。实际上,在有些情况下,简单的报 表语言可以由报表程序解释,最后翻译成s q l 。 使用解释器样本的优点:扩充性, 可以很容易地加入新的动词或者变量, 使用解释器样本的缺点: 可以方便地扩充或者改写语言的语法规则 从而扩充程序的功能。 复杂的语法可能使得程序难以维护。 引入语言后,相应的语法需要相当的错误的检查:拼写错误或者语法词汇不匹 配。这需要大量的编程努力,除非已有一些模板帮助实现语法检查。进一步, 有效地通知用户这些错误也不容易设计和实现。 3 2 4 基础报表工具模型使用样本的优点 除了满足功能方面的需求外,可重用性、扩充性和易构性也是基础报表工具模 型设计的重要目标。上述报表工具模型应用了流水线样本和解释器样本,通过使 用样本设计,模型提供了重用性、扩充性和易构性:应用流水线样本支持重用性; 应用了解释器样本支持扩充性。流水线样本的优点之一就是支持过滤器的重用, 在基础报表工具模型中,报表运行的全流程包括报表数据模型生成、报表格式化、 报表输出三个步骤,前一步骤的输出提供了后一步骤的输入,每个步骤的处理器 都可以重用。引入数据定义语言和报表格式语言后,通过对语言的扩充,即可扩 充系统功能,同时可以保证现有报表定义在扩充后的系统中仍可以使用。同时将 报表运行环境分为相对独立的三个部分,给实现也带来了方便:在报表数据处理 器实现中,将注意力集中在报表数据上,不涉及格式;在报表格式处理器实现中, 第三章x r t 报丧工具模型及设计 主要是各种格式的支持;在报表输出处理器实现中,处理各种不同的输出要求。 3 3x m l 及相关技术简介 3 3 1 标记语言 “标记”是一种传输元数据( 即关于数据集本身的信息) 的方法。标记语言使 用文字串或“标记”来界定和描述这些数据。例如: 2 0 0 3 1 0 2 0 表述日期为2 0 0 3 年1 0 月2 0 日。 张三 表述了一个称作张三的姓名。 3 3 2s g m l 1 9 6 9 年,m m 的研究人员e dm o s h e r ,r a yl o r i e 和c h a r l e sf g o l d f a r b 发明了 第一种现代标记语言一通用标记语言( g e n e r a l i z e dm a r k u pl a n g u a g e ,g m l ) 。g m l 是一种自参考的语言,它可以用于标记任何数据集合的结构,同时它也是一种元 语言( m e t a l a n g u a g e ) 一能够描述其他语言及其语法和词汇表的语言。此后,g m l 发展成了标准通用标记语言( s t a n d a r dg e n e r a l i z e dm a r k u pl a n g u a g e ,s g m l ) 。 1 9 8 6 年,s g m l 被国际标准化组织( is o ) 接受为国际性的数据存储和交换的标准, 并收录在i s 0 8 8 7 9 当中。s g m l 是一种非常强大的标记语言,它已经被美国政府及 其合同商、大型制造公司、信息技术发布者广泛采用。
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 新能源产业政策碳足迹评估与减排路径报告
- 建筑方案设计文献综述模板
- 2025年焊接中心考试试题及答案
- 2025年排序算法考研真题及答案
- 初中任务三 举办演讲比赛(说课稿)-2025-2026学年统编版语文八年级下册
- 归纳与总结教学设计-2025-2026学年中职基础课-基础模块下册-语文版-(数学)-51
- 2025年高级车工考试试题及答案
- 2025年民航英语知识题库及答案
- 2025年新型页岩气开采技术环境效益评估与资源节约型社会效益研究报告
- 2025年智慧城市背景下新能源汽车充电网络布局策略报告
- 政府法律顾问聘用合同
- 部编人教版六年级上册道德与法治全册教案
- 2025年共青团入团考试测试题库及答案
- 第13章第2节 人体免疫课件-2025-2026学年北师大版八年级上册生物
- 2025上海科技馆招聘高层次专业技术人才3人备考考试试题及答案解析
- 2025年秋季学期安全主题班会教育记录
- 线路维护材料管理办法
- 2025年外企面试英语常见问题与答案解析
- 2025年6月浙江省高考物理试卷真题(含答案解析)
- 民宿课程题目大全及答案
- 2025年银行内部审计部门财务审计员竞聘考试指南
评论
0/150
提交评论