




已阅读5页,还剩50页未读, 继续免费阅读
(计算机应用技术专业论文)基于构件技术的动态报表在财务系统中的研究与实现.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
中文摘要 论文题目:基于构件技术的动态报表在财务系统中的研究与实现 专业:计算机应用技术, 硕士生:,狄方领( 签名)孬遨盈5 翅。 指导教师:刘天时( 签名) 釜b 金笠4 v 摘要 本研究针对传统报表工具( 面向程序员报表) 的不足和用户的不同需求,实现了具 有明细查询和汇总统计等功能的动态报表( 用户可以自由组合不同种类、不同格式和不 同条件) ;实现了具有一键展现功能和特殊格式报表打印功能的动态报表( 按用户需求灵 活定制) 。这些报表大大加强了报表实现的灵活性和与用户的交互性,更好地满足了用户 的实时要求,有效地实现了代码的重用,提高了系统的可维护性。 本文对用友华表模板设计器组件插件及其封装的对象、属性和方法进行了详细研 究,在报表的实现类中对组件部件进行了灵活调用,实现了报表格式的动态变化。运用 面向对象的编程思想,设计三层体系结构,实现动态报表的明细查询和汇总统计等功能; 设计四个层面的类,下层类依赖上层类,上层类为下层类提供支持,实现动态报表的显 示功能和特殊格式报表的打印功能。最终开发的报表可以与用户进行实时交互,实现格 式的多种变化,把采集到的数据及时按用户要求的显示比例、颜色和位置预览并且打印 出来。该研究在财政工资统发系统中进行了实际的运用,验证了其正确性、可靠性以及 灵活性。 关键词:构件面向对象三层架构动态报表 论文类型:应用研究 i i 英文摘要 s u b j e c t : s p e c i a l i t y : n a m e : i n s t r u c t o r : t h er e s e a r c ha n dr e a l i z a t i o no fd y n a m i cr e p o r tb a s e do nc o m p o n e n t t e c h n o l o g yi nf i n a n c i a ls y s t e m c o m p u t e ra p p l i c a t i o nt e c h n i q u e d if a n g l i n g ( s i g n a t u r e ) l i ut i a n s h i ( s i g n a t u r e ) r ) i 伽。,m6 l 飞删 a b s i r a c i f o rt h ed e f i c i e n c yo ft h et r a d i t i o n a l r e p o r tf o r mt o o l s ( p r o g r a m m e r - o r i e n t e dr e p o r t f o r m ) a n dt h ed i f f e r e n tn e e d so fu s e r s t h ed i s s e r t a t i o nh a sr e a l i z e dt h ed y n a m i cr e p o r t 晰t h d e t a i l e di n f o r m a t i o na n ds u m m a r ys t a t i s t i c sf u n c t i o n s ( u s e r sc a na c h i e v et h en e c e s s a r yf r e e d o m o fc h o i c ea n dc o m b i n a t i o no fd i f f e r e n tt y p e s ,d i f f e r e n tf o r m a t sa n dd i f f e r e n tc o n d i t i o n s ) t h e d i s s e r t a t i o nh a sr e a l i z e dt h ed y n a m i c r e p o r t ( c u s t o m i z e da c c o r d i n gt o u s e r sn e e d s ) t h a t a c h i e v e sf o o l - s t y l e 、析t l lo n eb u t t o nd i s p l a yf u n c t i o na n ds p e c i a lf o r m a tp r i n t i n g t h e s er e p o r t f o r m sh a v eg r e a t l ys t r e n g t h e n e dt h ei m p l e m e n t a t i o no ft h ef l e x i b i l i t ya n d i n t e r a c t i v i t yw i mt h e u s e r st ob e t t e rm e e tt h eu s e r sr e a l t i m er e q u i r e m e n t sa n de f f e c t i v e l yi m p l e m e n t e dc o d er e u s e a n dm a i n t a i n a b i l i t yo ft h es y s t e m t h ed i s s e r t a t i o nh a sc a r r i e do u tad e t a i l e ds t u d yo fc h i n at a b l et e m p l a t ed e s i g n e r c o m p o n e n t sa n dr e a l i z e daf l e x i b l ec a l l t oc o m p o n e n tp a r t si ni m p l e m e n t a t i o nc l a s so f r e p o r t u s i n gt h ei d e ao fo b j e c t o r i e n t e dp r o g r a m m i n ga n dd e s i g n i n gt h r e e - t i e ra r c h i t e c t u r e ,t h e d i s s e r t a t i o nh a si m p l e m e n t e dd y n a m i cf u n c t i o n so fd e t a i l e di n f o r m a t i o na n ds u r n m a r y s t a t i s t i c sa n da c h i e v e dc o m m o nd y n a m i cd i s p l a yf e a t u r e sa n ds p e c i a lr e p o r tp r i n t i n gf o r m a t t h ef i n a lr e p o r tc a l lb eo fr e a l t i m ei n t e r a c t i o n 、析t l lu s e r st oa c h i e v eav a r i e t yo ff o r m a t c h a n g e s ,t h ec o l l e c t e dd a t ac a nb ep r e v i e w e da n dp r i n t e do u tb yr e a l - t i m ed i s p l a yo ft h er a t i o o fu s e r sr e q u i r e m e n t s ,c o l o ra n dl o c a t i o n t h et e c h n o l o g yh a sc a r r i e do na c t u a lu t i l i z a t i o ni n t h ef i n a n c i a lw a g e ss y s t e ma n dv e r i f i e di t sa c c u r a c y , r e l i a b i l i t ya n df l e x i b i l i t y k e y w o r d s :c o m p o n e n t ,o b j e c t - o r i e n t e d ,t h r e e t i e rs t r u c t u r e ,d y n a m i cr e p o r t t h e s i s :a p p l i e dr e s e a r c h i i i 学位论文创新性声明 本人声明所呈交的学位论文是我个人在导师指导下进行的研究工作及取得的研究成 果。尽我所知,除了文中特别加以标注和致谢中所罗列的内容以外,论文中不包含其他 人已经发表或撰写过的研究成果;也不包含为获得西安石油大学或其它教育机构的学位 或证书而使用过的材料。与我一同工作的同志对本研究所做的任何贡献均已在论文中做 了明确的说明并表示了谢意。 申请学位论文与资料若有不实之处,本人承担一切相关责任。 论文作者签名:鼋濑嗍嘞 学位论文使用授权的说明 本人完全了解西安石油大学有关保留和使用学位论文的规定,即:研究生在校攻读 学位期间论文工作的知识产权单位属西安石油大学。学校享有以任何方法发表、复制、 公开阅览、借阅以及申请专利等权利,同时授权中国科学技术信息研究所将本论文收录 到中国学位论文全文数据库并通过网络向社会公众提供信息服务。本人离校后发表 或使用学位论文或与该论文直接相关的学术论文或成果时,署名单位仍然为西安石油大 学。 论文作者签名:擀 导师 签名:垒k 二1 f 日期业夕 吼舭,7 注:如本论文涉密,请在使用授权的说明中指出( 含解密年限等) 。 第一章绪论 第一章绪论 1 1 课题研究的目的和意义 报表是管理信息系统的重要组成部分,报表的作用是将多种管理活动中产生的原始 数据转换为有用信息,为领导层正确决策提供支持和帮助。通常报表的开发周期较长且 费时【1 1 1 2 1 。原因主要有: ( 1 ) 用户报表的变化性。用户报表可能会随时发生变化,有时是内容变化,有时是 格式变化。这些变化非常频繁,而且在管理信息系统开发过程中的任一阶段都有可能发 生,这会大大增加开发上的难度。 ( 2 ) 用户报表的膨胀性。用户报表数量不会随管理信息系统开发的结束而结束,它 会不断的增加。由于管理信息系统及其报表生成系统的多样性,在同一企事业单位中往 往会产生大量不同类型的报表文件。如何有效管理并合理使用这些报表,也是管理信息 系统需要解决的重要问题。 ( 3 ) 用户报表的随意性。不同的用户进入系统,可能需要查看不同种类和数量的报 表。用户报表的内容是不相同的,每个用户关心的内容也有很多不同。这造成了部分报 表随用户的不同而不同,也使得报表开发的工作量变得非常大。 ( 4 ) 在管理信息系统的开发中,查询和统计是非常重要的内容。传统方法是根据用 户的需求,通常会为用户建立一些固定查询和统计方式,而实际应用中,用户对查询和 统计的要求是多种多样的,是动态变化的,往往事先不能确定,只有用户才真正了解自 己的需求。因此,在所开发的系统中,提供一种面向用户的通用的明细查询、汇总统计 工具对用户来说是非常必要的。 产生报表最常用的方法是利用现成的报表工具,它们都具有无需编程或简单编程就 能实现的优点,可以适应大部分简单报表,特别是单个数据表为数据源的情况的需要。 开发工具中的报表设计工具通常不能随程序发布,只能由程序员在设计阶段进行设计, 用户在使用阶段不能按自己的意愿对报表进行修改、调整、新增和删除。这种报表只有 程序员在设计阶段才能修改和设计,称为面向程序员的报表。面向程序员的报表往往不 能满足用户的实时要求,用户不能在使用时增加或删除某个显示项,因此报表工具的交 互性不强、灵活性不高,只适合做一些项目固定、打印格式要求不多、与用户交互不强 的报表。但实际使用中的报表的格式却是千变万化的,有的还包含了复杂的明细查询和 汇总统计,还有某些特殊用户,由于年龄或其它原因不想自己对报表进行二次调整、加 工,希望报表能够具有傻瓜式的一键展现、打印功能,而且能实现某些特殊格式报表的 打印,例如单位转帐凭证。要把采集到的数据及时按用户要求的显示比例、颜色和位置 预览并且打印出来,像这种要求与用户进行实时交互的报表,用面向程序员的报表很难 实现【3 1 。 西安石油大学硕士学位论文 1 2 国内外研究现状 目前市面上出现的许多处理报表的应用软件,较流行的程序设计方法为:在企业局 域网的内部公用服务器上建立相应的数据库,利用代码设计报表查询程序,并将其放在 企业w e b 主页上供内部查询使用。这种设计方式的优点在于用户不需要安装程序,只要 知道本单位的网页站点即可,查询操作较为直观,但也存在不足之处,主要表现为:报 表结构设计较繁琐,难以实现报表样式紧凑而美观,报表的可操作性和可维护性不强, 报表数据的录入、加载,以及报表打印都另外需要设计大量的程序代码。在众多的可视 化数据库开发工具中,d e l p h i 以其真正的面向对象、高效率、支持多层b s 结构开发、 支持多层结构应用开发等优良性能脱颖而出,成为广大编程人员的首选开发工具【4 1 。 q u i c k r e p o r t 报表组件是挪威q u s o f t 公司专门为d e l p h i 编写的,使用它可以较快设 计出符合西方人习惯的报表。q u i c k r e p o r t 报表组件从设计和功能上说,算是一个不错的 报表设计工具,但从报表的灵活性和程序编译完毕后用户对报表的可维护性等方面,还 远远不能达到用户的要求【5 j 。 g r a p e c i t y 公司的a c t i v e r e p o r t 报表控件,功能完善,性能稳定,加上了及时的用户 设计以及网络应用。它融合了m i c r o s o f tv i s u s lb a s i c 的灵活性和功能,为v b 开发程序 员提供终端报表设计器。a c t i v e r e p o r t 集成了v b 编码环境,没有模糊的脚本,提供了开 放的框架结构,可以处理复杂的报表。 f a s t r e p o r t 公司开发的f a s t r e p o r t ,是高性能的报表设计器,在报表中使用的数据来 源广泛,能从多种类型的数据源得到,可以是文本文件、a d o 数据源、b d e 数据库、 p a s c a l 记录和数组,还有一些不常用的数据源。f a s t r e p o r t 是一个组件,可以安装到d e l p h i 的v c l 控件面板上。 c r y s t a le n t e r p r i s e 是美国c r y s t a ld e c i s i o n s 公司的产品,它支持报表设计者根据业务 视图创建报表,来加快开发速度并减少维护的工作量。它可以管理多个各不相同的数据 源的访问,将这些数据源组合成单一数据源,供报表设计者使用。它还引入了c r y s t a l r e p o r t s 报表引擎,此引擎支持c r y s t a lr e p o r t s 的许多基本功能,例如分组、筛选、排序、 基本的格式设置、绘制图表等【6 】【7 。 常见的报表生成方法有如下几种: ( 1 ) 利用r a v e 或t q u i c k r e p 组件快速生成报表; ( 2 ) 用第三方开发的组件生成报表,例如f a s t r e p o r t 、c r y s t a lr e p o r t s 等; ( 3 ) 手工生成报表; ( 4 ) 利用d e l p h i 的o l e 功能,操作e x c e l 对象生成数据报表。 制作报表的工具非常多,像d e l p h i 、p o w e r b u i l d e r 等开发工具都提供了相应的报表 工具,通常这些工具可以方便的定义规则报表,但定义不规则报表时这些工具使用起来 并不方便,可能需要编写大量代码去填充相应的单元格。e x c e l 在处理不规则单元格、设 2 第一章绪论 定单元格公式方面很方便,但它却无法从其他数据源自动获取数据填充。 除了无法对规则报表和不规则报表通用之外,这些报表工具还具有下面一些不足之 处: ( 1 ) 报表功能被限制在事先提供的报表需求范围内,开发完后不容易对报表表样与 取数口径进行调整、变动。 ( 2 ) 因为不同报表的检索参数不同,不同报表的检索条件操作界面无法共用,需要 为每一个报表编写单独的检索操作界面【8 】。 ( 3 ) 手工制作的报表往往只适合用于静态查询,使用起来不灵活,无法按照用户要 求灵活的生成动态报表,并且当报表生成后,用户不能根据报表内容对报表进行调整。 而且一些复杂报表在这些报表工具下几乎是不能实现的。 1 3 主要研究内容 本研究针对在研课题的需求和程序员报表的不足,实现了可以按用户不同需求进行 设置,具有明细查询和汇总统计等功能的动态报表;实现了可以按用户特殊需求进行定 制,具有一键展现和打印功能的动态报表。 本文对构件( 主要是华表模板设计器组件插件) 进行了详细研究,在实现类中对组 件封装的属性和方法进行了灵活调用,设计并实现了可以根据用户需求动态变化的报表。 用面向对象的编程思想,设计三层体系结构,按照不同种类、不同格式和不同条件进行 动态地明细查询和汇总统计( 用户可以根据需要自由组合种类、格式和条件) 。通过四个 层面的类间的调用,具体实现了三个方面的动态功能:动态显示报表菜单,以不同的用 户名进入系统,展示出不同种类和数量的报表供用户选择;动态创建控件,在弹出的“查 询条件”窗体上动态创建控件供用户选择;动态展现不同报表的样式和内容,系统根据 用户选择的查询条件显示出要查询的报表内容,并把内容按设计的样式显示在查询s q l 窗体上。 设计了若干个不同的查询元素,对查询元素进行加工使之成为一个标准的结构化查 询语句,实现了多样化的查询和汇总功能;运用构件技术实现了不同样式报表的展现和 打印功能;最后在报表的动态程度上进行了创新,用户可以根据需求灵活定制报表的样 式和内容,并实现了多种特殊格式报表( 例如单位记帐凭证) 的打印功能。最终开发的 报表可以与用户进行实时交互,实现格式的多种变化,把采集到的数据及时按用户要求 的显示比例、颜色和位置预览并且打印出来。 西安石油大学硕士学位论文 第二章华表模板设计器组件和面向对象思想的研究及应用 本章研究了构件的基础理论,重点研究了一种第三方构件一华表模板设计器组件及 其封装的属性和方法,为实现多种样式的动态报表提供了支持。本文设计并实现了两大 类动态报表,在设计动态报表的整体架构,类层次之间的调用,以及设计类文件的内部 结构时用的都是面向对象思想,所以本章也对面向对象编程技术进行了研究。 2 1 构件基础 2 1 1 构件的定义 构件技术【9 】是近些年在软件界兴起的一项崭新的技术,受到各国软件界的普遍关注, 构件技术也成为计算机软件领域研究的热点。各个国家都在构件技术的广泛应用方面作 了许多有益的探讨和研究工作,取得了一定的进展,使构件理论得到发展和完善。什么 是构件呢? 软件工业界对于构件的定义说法不同,下面将给出几个典型的定义,分别从 不同角度对软件构件加以说明。 定义l :构件是一个系统中重要的、相对独立的、能够被替换的系统中的一部分, 在已定义好的软件体系中执行具体的功能,能够提供一系列接口的物理实现。 定义2 :从动态的角度出发,一个运行的软件构件是一个或多个程序的动态捆绑的 软件包,它作为一个单元进行管理,通过文档化的接口进行访问,这个接口会在程序运 行时出现。 定义3 :一个软件构件是接口和环境附属物所构成的组合体的一个单元,它可以独 立的被调度,不是由系统开发人员和系统最终用户而是由第三方提供的。 综上所述,构件( c o m p o n e n t ) 是具有特定功能的、可重用的、并且能独立工作或 能同其它构件一起组装构造软件的独立的软件单元。换句话说,构件作为一种软件单元 是可以独立地制造、分发、销售、装配的。构件的概念很广泛,它可以是需求分析和设 计阶段的产品、代码、测试案例和文档,也可以是软件开发过程中的其他产品。构件可 以是小到图形界面的按钮,也可以是大到一些复杂的诸如通讯中间件和电子表格之类的 软件,如本章将要重点介绍的用友华表模板设计器组件插件。 2 1 2 构件的特点 通过上面对构件的分析,可以看出构件具有以下几个主要特点【1 0 】: ( 1 ) 封装性 构件通过接口提供服务。使用构件,需要通过这些接口提出请求,并不是通过访问 构件的内部细节实现,即使构件内部发生变化,不会对其它构件和整个系统产生影响, 及时地控制了软件的复杂程度。 ( 2 ) 有用性 4 第二章华表模板设计器组件和面向对象思想的研究及应用 构件会提供一些有用的功能,将这些功能集合到一起会满足一定的要求,但是这些 功能的设计要符合一定的设计准则,这意味着它可以独立地进行制造、开发、销售和装 配,其本身可以独立工作或与其它构件协同构造其它软件。 ( 3 ) 方便性 为了方便地使用构件,构件的包装要符合一定的要求。目前软件构件的标准大致有 以下几个: 微软提出的构件对象模型( c o m p o n e n to b j e c tm o d e l ,c o m ) 和分布式构件对象模型 ( d i s t r i b u t e dc o m p o n e n to b j e c tm o d e l ,d c o m ) ,s u n 公司提出的e j b ( e n t e r p r i s ej a v a b e a n ) 和o m g 提出的公共对象请求代理结构( c o m m o no b j e c tr e q u e s tb r o k e r a r c h i t e c t u r e ,c o r b a ) 等。 2 1 3 构件的描述 从构件本身的特征讲,构件是自包含的、可重用的、独立于具体应用的软件对象模 块。构件作为系统的一个特定的功能单位,主要由四部分组成【l l 】: 构件标识符、构件说明、接口、构件体。之所以把构件说明和构件体分开是因为同 一个构件说明可以由不同的程序设计语言来实现。同一个构件也可以有多个不同语言实 现的构件体。构件的接口不仅要提供外部物理实现接口,而且还要提供外部逻辑接口, 后者是给用户提供一个非形式化的构件的功能描述,这样会方便用户了解和使用构件。 软件构件模型是关于开发可重用软件构件和实现构件之间相互通信的一组标准的描述。 构件及构件模型的出现,使软件开发者可以通过构件快速组装出所需的应用软件,来减 少软件开发所需的经费、缩短开发周期和提高效率,并且可以在重用已有开发成果的基 础上得到高质量的、完全可靠的软件产品。构件作为一个可以广泛复用的软件单元具有 以下几个特点: ( 1 ) 自识别性:构件要能够识别其属性、方法和事件,这些信息可以将开发环境与 第三方构件紧密的结合起来。 ( 2 ) 可集成性:构件要能被编程语言直接控制,可以和脚本语言或者与从代码级访 问构件的环境连接,这使得构件可以在非可视化开发项目中使用。 ( 3 ) 可设定性:允许提供一个图形方式环境,使软件构件的属性只可以通过控制面 板来设定。 ( 4 ) 连接机制:构件要能产生事件或者具有让程序员从语义上实现相互连接的机制。 这说明程序员可以很方便的向按钮添加代码,通过点击按钮就可以影响其他构件的动作。 2 1 4 构件的分类 。 ( 1 ) 从构件使用情况看,构成一个系统的构件可以分为以下几种【l2 j : 成熟而独立使用的构件:这类构件隐藏了所有接口,用户只需按规定好的格式使 西安石油大学硕士学位论文 用,如数据库管理系统的系统命令、操作系统命令等。 使用受限制的构件:这一类构件提供了接口,明确了使用的前提和条件,使用时 应先对其进行测试。如类库中的类。 可以直接使用的构件:这类构件进行了封装或者使用了接口技术,对不兼容性、 资源冲突等问题进行了处理,可以直接使用它们。目前一些软件商提供的大多数软件产 品都属于这一类。 修改可用的构件:这种构件可以进行版本替换,如果对原构件修改错误或需增加 新功能,可以通过重新封装或重写接口来实现构件的替换。这种构件在应用系统开发中 使用较多。 对于第一类构件,用户需要根据说明书来挑选合适的构件。对于第二类构件要先对 其进行底层的测试、开发,确认该构件满足要求后方可使用。第三、四类构件使用起来 相对方便,但目前技术还不完善,许多问题需要解决,要制订构件的标准等。 ( 2 ) 根据构件复用的方式,分为白匣子、黑匣子和灰匣子三类。白匣子,即公开全 部源代码,在使用中开发人员要对源代码进行一定修改,然后才可集成,属于较底层次 上的复用,很少使用。灰匣子只提供实现有关界面的部分源代码,使用时只需在接口界 面上进行一些用户化的工作,不需要对构件内核有深刻认识。黑匣子则完全不提供源代 码,只需要提供构件的二进制可执行形式,它是构件的主要存在形式。使用者压根不需 了解其内部如何工作,只需从外部使用它,即可实现即插即用。软件构件发展趋势是开 发现成构件( c o t s ) 。其特点剐1 3 】: 不是由应用开发人员而是由第三方提供,是现成的,强调构件的预制性。 不提供源代码,强调构件的透明性和封装性。 可互换性。 不是专门为某一个客户定制的,而是在某一领域中通用的。 ( 3 ) 根据使用的范围,可分为领域共性构件、通用构件和专用构件。领域共性构件 属于某一领域内相似系统间需要的公用构件,如系统支撑构件。通用构件是将系统内的 通用功能提取出来,开发成构件,如用户界面元素和基本的数据结构等。专用构件是针 对各种领域的特性开发的专有构件,属于应用系统的核心。领域共性构件和通用构件的 设计和实现是解决应用系统重复劳动的关键。 ( 4 ) 根据结构,可分为原子构件和由多个构件聚集而成的组合构件。 ( 5 ) 根据构件粒度大小,可分为数据结构构件、功能构件和子系统构件。 2 1 5 面向构件的思想 构件技术【1 4 】【1 5 1 与面向对象技术紧密相关。构件和对象都是对现实世界的抽象描述, 通过接口封装了可复用的代码实现,不同的是:在概念层面上,对象描述客观世界实体 ( i d e n t i t y ) ,构件提供客观世界服务( s e r v i c e ) ;在复用策略上,对象通过继承实现复用, 6 第二章华表模板设计器组件和面向对象思想的研究及应用 构件通过合成实现复用;在技术手段上,构件通过对象技术实现,对象经过适当的接口 包装后成为构件,一个构件通常是多个对象的集合体。构件思想更多的是将重点从建模 本身发展到对软件生产的考虑,即构件可以在应用领域的软件生产中作为零件纳入新的 体系被重用。构件是面向对象思想的沿袭和扩展,认识事物的角度从对象个体本身上升 到个体在群体中的作用。构件有以下几个基本属性。 ( 1 ) 构件是可独立配置的单元,构件必须白包容。 ( 2 ) 构件强调与环境和其他构件的分离,构件的实现是严格封装的,外界没有机会 或没必要知道构件内部的实现细节。 ( 3 ) 构件需要提供清楚的接口规范,可以与环境交互。 总之,构件沿袭了对象的封装性,但同时并不局限在一个对象,其内部可以封装一 个或多个类、对象,结构较灵活。 2 1 6 构件与对象的关系 ( 1 ) 对象的概念 在现实世界中,每个实体都是对象,如,学生、课本、电视等都是现实世界中的对 象,每个对象都有它的属性和操作,人们一般不知道也不关心对象是如何实现这些操作 的,正如人们只关心电视机的功能及其操作,而不必知道电视机是如何实现其操作的一 样。在计算机系统中,对象是指一组属性以及这组属性上的专用操作的封装体。一个对 象一般由对象名、属性和操作三部分组成。 ( 2 ) 构件与对象的主要区别 从广义上讲,构件技术是基于面向对象的,以嵌入后“即插即用 为概念核心,通 过构件的组合来建立应用的技术体系。但这并不意味着构件技术就等同于面向对象的开 发。相较而言,构件比对象更加方便、灵活,两者的区别主要体现在以下几个方面: 在面向对象设计中,对象( 类) 、封装和继承三者不可缺少,但构件可以没有继承 性,只需要实现封装就可。所以构件不是面向对象中的对象,而是与对象有相类似的地 方,构件位于对象类之上。 对象和构件的生成方式不同,面向对象中的对象生成过程,是实例化的过程,方 法较简单,而生成构件的方式很多。 面向对象技术中的对象属于编程体系中的概念,依赖于具体的编程语言,不同的 是,构件是设计概念的体现,与具体的编程语言无关。 对于数据操作,对象的操作通过公共接口,数据是可以被访问的,但是在对构件 操作时不允许直接操作构件中的数据,数据真正被封装了。 对于软件重用,面向对象技术通过继承实现软件重用,而构件没有继承机制,是 通过组装和聚集来实现重用。 由此可见,构件与对象相比,构件具有更加灵活、方便和高效复用性。 西安石油大学硕士学位论文 2 2 华表模板设计器组件的功能介绍及应用 本章第一节研究了构件的一些初步知识,并把构件和对象进行了简单的对比。有些 文章曾经应用构件技术开发m i s 系统( 管理信息系统) ,给出了构件的获取、实现、组 装等技术。经研究发现基于构件开发的m i s 系统,其实质无外乎两种,一是从系统中提 取m i s 构件按照集成算法组合,添加到构件库,另一种便是用开发好的第三方构件开发。 本文的重点是在财政工资统发系统中研究与实现动态报表,并不是研究如何设计构件开 发整个m i s 系统。所以本章要重点研究一种第三方构件一华表模板设计器组件插件及 其封装的对象、属性、方法,和如何在开发动态报表中使用它们。 2 2 1c e l l 报表及其优势 与西方报表相比,中国的报表非常复杂。例如,中国式报表表头复杂。因为展现的 内容比较丰富,表头通常非常复杂,往往表头被分为多层,而且表头中有嵌套,包括不 规则的嵌套。再如,中国报表的数据计算复杂。在中国式报表中,常常含有求和、求比、 汇总统计之类的运算。这些运算有的只涉及到数据库中的数据( 数据字段) ,有的只涉及 到表格上的数据( 单元格) ,也有些两者都要涉及,而且参与计算的数据也有可能根本就 不在报表内显示。正是由于中国报表的特殊性,国内一些对报表有大量需求的行业就对 报表软件提出了深度的需求。 含有报表模块的应用软件是很多企业必不可少的开发工具,其中报表工具是关键环 节。业内的报表工具在技术上大体分成两类,一类是s q l 型( 也称“条带”模型) 报表, 另一类是c e l l 型报表。传统的西式报表是s q l 型为基本构造模型,能够把数据库的数 据取出来运算排列,制作出动态的变长统计报表,但在呈现效果上就不那么完美,这也 是与中国式的报表的主要区别之一。中国式报表,往往会遇到多层表头制作、多变的单 元格类型、图表处理数据分析、报表行业分级显示函数及自定义函数、数据输入输出转 换等难题。简言之,中国式的报表是多样的格式+ 动态的数据,对报表软件提出了更有 深度的需求。 北京用友华表软件技术公司,是国内第一家提出可以替代国外报表软件的民族软件 公司。华表c e l l 报表工具推出后,迅速在各个行业得到应用,已成为了国内报表软件的 第一品牌。 c e l l 型报表工具具有丰富的表头转换功能,可轻松处理多层表头。单元格囊括几乎 所有的w i n d o w s 标准控制。其单元格显示也多种多样,包括子字符串、数值、日期、时 间、百分比等。用c e l l 进行图表操作时只需要指定图表数据的准确位置便可直接制作图 表,方便完成某个模块的制作。之后的打印预览操作也非常方便,支持级极打印缩放功 能,可多页显示。 用友华表的c e l l 组件插件是用友华表公司的明星产品,由于产品本身的一些技术优 势使得它在报表行业有很高的声誉。说到它的优势,不能忽视它是适合制作中国式复杂 8 第二章华表模板设计器组件和面向对象思想的研究及应用 报表的报表工具。中国式复杂报表是“报 “表结合的报表,它具有表头复杂、局部规 则整体不规则、多级分组、数据计算复杂等特点。面对这些需求,用友华表的c e l l 报表 均能满足需求。它具有丰富的单元格类型,支持数值、货币、日期、文本等,并且囊括 了几乎所有的w i n d o w s 标准控制;强大的自定义函数和图表功能,在使用中,用户可以 根据自己的业务逻辑添加自己的函数,图表种类和效果可以和e x c e l 媲美,在系统中无 需安装e x c e l ,就能实现e x c e l 文件完全转换,并且转换效率更高,效果更加完美;丰富 的打印设置,使用c e l l 使得报表的打印也方便了j 可以设置表头表尾,能所见即所得的 打印,轻松输出各种报表;资源本地化功能,c e l l 产品有中文版,英文版,繁体中文版, 还有国际化版,这样用户根据需要可将c e l l 设成不同的语言版本,开发出来的报表可以 在不同语言的w i n d o w s 平台上运行,无需更改程序;适用于v b 、v c + + 、v f p 、n e t 、 d e l p h i 、c + + 、b u i l d e r 、p o w e r b u i l d e r 等多种开发工具。 c e l l 型报表的出现是中国软件开发者在报表领域非常重要的、有益的探索。它较好 地解决了“条带”模型“报 强“表”弱的问题,在格式展现效果上有了很大的提升。 用友华表公司的c e l l 组件插件的单元格的数据类型比较丰富,可以支持数值、时间、货 币等多种数据类型,同时还包括了w i n d o w s 程序的多种框架。在e x c e l 中是通过o l e 嵌入式来支持按钮的,而c e l l 报表的单个单元格就支持按钮的嵌入,这样就使用户可以 很方便地录入数据和显示数据。用友华表的c e l l 组件插件的显示模式具有框架模式和汇 总模式。框架式类似于e x c e l 的分级显示,汇总式支持中国式的“小计、“总计”式报 表。用友华表的c e l l 组件插件具有图表功能。很多用户在做报表时,需要插入图表。 c e l l 组件非常好地支持各种图表的分析,比如饼图、柱图等。对于数据交换,用友华表 的c e l l 组件插件能够与e x c e l 的数据转换。在与e x c e l 转换时,采用直接分析e x c e l 二 进制格式的方式来支持数据转换,这样,用户的机器上不需要安装e x c e l 软件就可以完 成转换,这种转换依靠二进制,速度快,效率高。同时还支持输出文本格式的、x m l 格式、网页h t m l 格式,特别的还支持以图片的方式导出p d f 文件。另外,在困扰研 发人员的“报表打印”方面,传统控件设计的报表一般在预览时才能看到效果,而用友 华表的c e l l 组件插件完全是“所见即所得”的,在c e l l 报表上所看到的,就是所要打 印出来的。这种打印和打印预览也是比较符合中国特色的,如可以添加打印表头、表尾、 页眉、页脚等。 令人惊喜的还有用友华表的c e l l 组件插件工具支持自定义函数,这个功能是在报表 开发中最重要的。在用报表工具做报表开发的时候,只能做出应用系统的一个模块,不 可能是整个系统。报表需要和用户的具体业务去结合,一个通用的应用报表是不可能和 具体的业务需求来结合的。用友华表c e l l 产品通过函数和自定义函数来解决这个问题, c e l l 报表软件提供了一个自定义函数的接1 3 ,用户可以自己增加函数,函数里面的内容 可以与具体的业务结合起来。 9 西安石油大学硕士学位论文 2 2 2c e l l 组件的功能介绍及应用 c e l l 产品分c e l l 组件【1 6 】和c e l l 插件两个产品,它们是用友华表软件技术有限公司在 长期开发实践的基础上推出的功能强大、技术成熟的报表二次开发工具。c e l l 组件 ( a c t i v e x 控件,扩展名为o c x ) 主要适用于开发w i n d o w s 应用程序,是为商业软件解 决实际开发过程中的图表、报表显示,输入,打印输出等问题的比较理想的解决方案。 可在v c ,v b ,d e l p h i ,p b ,v f p ,c + + b u i l d e r 等开发工具下使用。采用c e l l 组件可以极 大的减少软件开发工作量,改善软件人机界面,提高软件质量。c e l l 插件具有与c e l l 组 件类似的功能,但与c e l l 组件不同,c e l l 插件用于开发w e b 应用。支持h t m l 、a s p 、j s p 、 v b s c r i p t 和j a v a s c r i p t 等语言。 ( 1 ) 设置外观 ( d c e l l 整体外观 隐藏滚动轴。s h o w h s c r o l l ( s h o w a sl o n g ,s h e e t a sl o n g ) 方法设置该页是否显示水平 滚动条。参数s h o w ,显示方式;s h e e t ,页号。s h o w v s c r o l l ( s h o wa sl o n g ,s h e e ta sl o n g ) 设置是否显示垂直滚动条。参数s h o w ,显式方式;s h e e t ,页号。 设置c e l l 控件外观。通过拖拽在窗体或对话框中改变c e l l 控件大小,也可以精确设 置c e l l 控件为指定的尺寸。默认情况下c e l l 控件是有边框的,可以设置是否显示边框。 行列外观 s e t r o w h e i g h t ( t y p ea sl o n g ,ha sl o n g ,r o wa sl o n g ,s h e e ta sl o n g ) 方法设置指定行 的行高。参数t y p e ,显示单位;h ,行高;r o w ,行号;s h e e t ,页号。s e t c o l w i d t h 方法 设置指定列的列宽。s e t c o l w i d t h ( t y p ea sl o n g ,wa sl o n g ,c o la sl o n g ,s h e e ta sl o n g ) 参 数t y p e ,显示单位;w ,列宽;c o l ,列号;s h e e t ,页号。g e t r o w b e s t h e i g h t 方法得到 指定行最适合的行高。g e t r o w b e s t h e i g h t ( r o wa sl o n g ) a sl o n g 参数r o w ,行号。 g e t c o l b e s t w i d t h 方法得到指定列最适合的列宽。g e t c o l b e s t w i d t h ( c o la sl o n g ) a sl o n g 参数c o l ,列号。 表头设置 s h o w s i d e l a b e l 方法设置是否显示行标。s h o w s i d e l a b e l ( s h o w a sl o n g ,s h e e t a sl o n g ) 参数s h o w ,显示方式;s h e e t ,页号。s h o w t o p l a b e l 方法设置是否显示列标。 h o w t o p l a b e l ( s h o wa sl o n g 。s h e e ta sl o n g ) 参数s h o w ,显示方式;s h e e t ,页号。 s e t c e l l t e x t c o l o r 方法设置指定单元格的字体颜色。s e t c e l l t e x t c o l o r ( c o la sl o n g ,r o w a s l o n g ,s h e e t a sl o n g ,p a r a a sl o n g ) 参数c o l ,列号;r o w ,行号;s h e e t ,页号;p a r a 为颜 色数组中的索引号,可以用函数f i n d c o l o r i n d e x 0 来得到,1 为缺省颜色, = o 为颜色序 号。s e t c e l l b a c k c o l o r 方法设置指定单元格的背景颜色。s e t c e l l b a c k c o l o r ( c o la sl o n g , r o w a sl o n g ,s h e e t a sl o n g ,p a r a a sl o n g ) 参数c o l ,列号;r o w ,行号;s h e e t ,页号;p a r a 为颜色数组中的索引号,可以用函数f i n d c o l o r i n d e x 0 来得到,一l 为缺省颜色, = o 为颜 1 0 第二章华表模板设计器组件和面向对象思想的研究及应用 色序号。 单元格外观 设置单元格颜色。s e t c e l l t e x t c o l o r 方法设置指定单元格的字体颜色。 s e t c e l l t e x t c o l o r ( c o la sl o n g ,r o w a sl o n g ,s h e e t a s l o n g ,p a r a a sl o n g ) 参数c o l , 列号; r o w ,行号;s h e e t ,行号;p a r a 为颜色数组中的索引号,可以用函数f i n d c o l o r i n d e x ( ) 来得到,1 为缺省颜色, = 0 为颜色序号。 设置单元格对其。s e t c e l l a l i g n 方法设置指定单元格的对齐方式。s e t c e l l a l i g n ( c o la s l o n g ,r o wa sl o n g ,s h e e ta sl o n g ,p a r aa sl o n g ) 参数c o l ,列号;r o w ,行号;s h e e t ,页 号;p a r a 参数设置单元格边框。 在指定的单元格区域上画表格线。d r a w g r i d l i n e ( s t a r t c o la sl o n g ,s t a r t r o wa sl o n g
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 消费贷受托支付合同范本
- 物流车队调动协议书范本
- 网约出租车买卖合同范本
- 销售合伙人模式合同范本
- 清洗窗帘合同协议书模板
- 离婚协议女方补偿协议书
- 海鲜店合作协议合同范本
- 长期租地建房合同协议书
- 甲方授权乙方的合同范本
- 美业学员合同协议书范本
- 《人行自动门安全要求》标准
- 矿坑涌水量预测计算规程
- 消化性溃疡护理业务学习(胃十二指肠溃疡)
- 长租公寓计划书
- 2022施工升降机安全生产隐患识别图集
- 《正确对等得与失》课件
- 30题新大陆科技集团测试工程师岗位常见面试问题含HR问题考察点及参考回答
- 太阳完整分享
- 【全套100种】职业病危害告知卡 全网最全(精编版)
- 精神病学课件:抗抑郁药物和抗焦虑药物完整版
- 断路器分合闸时间标准
评论
0/150
提交评论