




已阅读5页,还剩55页未读, 继续免费阅读
(计算机软件与理论专业论文)net环境下报表自动生成系统的设计与实现.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要 针对传统信息管理系统( m i s ) 中的报表处理系统缺乏灵活性、不能自动生 成等不足,本文提出了自动生成统计报表的开发思想,并在此基础上开发和设计 出报表自动生成系统。从需求分析、系统设计和系统实现的角度探讨了在n e t 平台上开发基于逻辑定义的报表自动生成系统的主要思路、关键技术和具体方法, 并在此基础上开发了实际的系统。 本文重点研究了报表逻辑定义及其解释程序,并主要针对报表模式和报表自 动生成的技术进行了系统的研究。在技术上,提出一种基于逻辑定义的报表自动 生成系统的开发方法,即将逻辑定义作为可以定制的部分实现报表数据计算和报 表结构的设置;采用代码自动生成技术和模板技术实现不同形式报表的自动生成。 本文还简要描述了报表统计图、系统权限管理和日志管理等功能的实现方法。最 后,简单介绍了该系统在陕西移动投诉中心系统开发中的应用。 关键词:报表系统自动生成a s p n e t 逻辑定义统计模式 a b s t r a c t f o rt h ew e a k n e s so ft h et r a d i t i o n a lr e p o r t p r o c e s s i n gs y s t e m si nm i s ,w h i c hi s l a c ko ff l e x i b i l i t ya n da u t o - g e n e r a t i n ga b i l i t y , t h i sp a p e rp r e s e n t sad e v e l o p m e n t c o n c e p to fs t a t i s t i c sr e p o r ta u t o - g e n e r a t i n ga n dd e v e l o p sar e p o r ta u t o m a t i cg e n e r a t i o n s y s t e mb a s e do ni t t h ep a p e rd i s c u s s e st h em a i ni d e aa n dk e yt e c h n i q u ea n dm a t e r i a l a p p r o a c h e so fd e v e l o p i n gt h er e p o r ta u t o m a t i cg e n e r a t i o ns y s t e mb a s e do nl o g i c d e f i n i t i o no n n e tp l a t f o r mf r o mr e q u i r e m e n ta n a l y s i sa n ds y s t e md e s i g na n ds y s t e m r e a l i z a t i o n a i m i n ga ti t ,a na c t u a ls y s t e mh a sb e e nd e v e l o p e d t h i sp a p e rp a y sm o r ea t t e n t i o nt or e s e a r c ht h er e p o r tl o g i cd e f i n i t i o na n dt h e c o r r e s p o n d i n gc o m p i l e r , a n ds y s t e m i c a l l ys t u d i e sb ya n a l y z i n gt h et e c h n o l o g i e so f s t a t i s t i c sp a t t e r n sa n da u t o m a t i cg e n e r a t i o n t e c h n i c a l l y , t h ed e s i g nm e t h o di sp r o p o s e d , w h i c hd e v e l o p st h er e p o r ta u t o m a t i cg e n e r a t i o ns y s t e mb a s e do nl o g i cd e f m i t i o n , a n d t h e nm a k e st h el o g i cd e f i n i t i o na sc u s t o m i z e dt oa c h i e v et h ec o m p l e m e n t a t i o no fd a t a a n dt h es t r u c t u r eo fr e p o r t w i t ht e c h n o l o g i e so fr e p o r tt e m p l a t e sa n da u t o m a t i c g e n e r a t i o n , t h es y s t e mg e n e r a t e sd i f f e r e n tf o r m sr e p o r t sa u t o m a t i c a l l y t h i sp a p e ra l s o b r i e f l yd e s c r i b e st h ei m p l e m e n t a t i o no fr e p o r tg r a p h i cm o d u l e ,p r i v i l e g em a n a g e m e n t m o d u l ea n dl o gm a n a g e m e n tm o d u l e f i n a l l y , t h ea p p l i c a t i o no fr e p o r ta u t o g e n e r a t i n g s y s t e mi ns h a a n x im o b i l ec o m p l a i n t c e n t e rs y s t e mi si n t r o d u c e d k e y w o r d s :r e p o r ts y s t e ma u t o m a t i cg e n e r a t i o na s p n e tl o g i cd e f i n i t i o n s t a t i s t i c sp a t t e r n s 创新性声明 本人声明所呈交的论文是我个人在导师指导下进行的研究工作及取得的研究 成果。尽我所知,除了文中特别加以标注和致谢中所罗列的内容以外,论文中不 包含其他人已经发表或撰写过的研究成果;也不包含为获得西安电子科技大学或 其它教育机构的学位或证书而使用过的材料。与我一同工作的同志对本研究所做 的任何贡献均已在论文中做了明确的说明并表示了谢意。 申请学位论文与资料若有不实之处,本人承担一切相关责任。 本人签名:i 噬 关于论文使用授权的说明 r 期:矿罗;。 本人完全了解西安电子科技大学有关保留和使用学位论文的规定,即:研究 生在校攻读学位期间论文工作的知识产权单位属西安电子科技大学。本人保证毕 业离校后,发表论文或使用论文工作成果时署名单位仍然为西安电子科技大学。 学校有权保留送交论文的复印件,允许查阅和借阅论文;学校可以公布论文的全 部或部分内容,可以允许采用影印、缩印或其它复制手段保存论文。( 保密的论文 在解密后遵守此规定) 本学位论文属于保密,在一年解密后适用本授权书。 本人签名:三姓 导师签名: 熬绾 同期: 日期: p 秀。o 客h 第一章绪论 第一章绪论 1 1 课题目的和意义 本课题是基于w e b 技术的业务系统生成环境的子课题之一。首先,对课 题基于w e b 技术的业务系统生成环境做一简要介绍( 以下简称业务系统生 成环境: 1 课题业务系统生成环境研究的目的、意义和内容 随着计算机和信息技术的飞速发展,计算机在各行业应用已经取得了越来越 明显的经济效益。以w e b 业务系统为核心的企业内部网或外部网正吸引着越来越多 的企业,一大批企业将走向信息化的道路。但企业信息化又给广大的计算机专业 和应用人员带来了巨大的工作量,他们不得不承担繁重的程序设计和编码任务, 其中许多是重复性的劳动。更为严重的是:一方面,由于应用对象业务的不断变 化,导致使用传统软件开发方法开发出的应用程序开发周期长、生命周期短。许 多系统开发出来后,使用不了多长时间就因为业务规则的变化等原因被迫搁置到 一边,造成工作上的损失和人力、财力的巨大浪费。另一方面,由于不同企业之 间的业务流程和业务需求的千差万别,使得不可能用常规的编码方法开发出一个 完全通用的适合各个企业的应用系统。上述种种原因导致应用软件在企业很难进 入完全适用的阶段n 1 。 因此,业务系统生成环境课题的意义在于: 1 缩短软件的开发周期,延长其生命周期; 2 将开发和应用人员从复杂、繁琐和重复的手工编程方式中解放出来; 3 节省大量的人力、物力和财力; 4 使生成的系统具有再生成的功能,提供通用性和适应能力; 5 使生成的系统具有重构功能,应用系统可以根据企业业务发生的变化而变 化。 业务系统生成环境课题的目的是研究并开发出面向信息企业中生产经营 管理系统的应用程序自动生成系统。其研究的内容主要集中在如下几个方面: 1 研究描述业务需求的逻辑定义; 2 研究逻辑定义的解析程序; 3 研究自动生成程序: 4 研究系统构造和组合程序; 5 研究构件生成方法; 2 n e t 环境下报表自动生成系统的设计与实现 6 研究人机交互界面; 7 面向对象的程序设计方法和应用; 8 研究与其他系统的信息集成; 9 研究系统的安全性技术。 2 课题业务系统生成环境的系统构架 根据基于w e b 技术业务系统生成环境的需求,可以将其功能模块划分为数据 源配置、业务逻辑定义、逻辑定义解析、权限操作、业务操作、统计报表、流程 控制操作以及代码生成等模块,其体系结构如图1 1 所示。 图1 1 业务系统生成环境的系统构架图 其中,虚线框中的功能模块是本文报表自动生成系统所要详细介绍的部分, 在后面章节将详细介绍其设计思想、原理以及实现方法。另外,业务逻辑定义和 代码生成引擎是系统的核心部分,其功能和原理如下: 业务逻辑定义是用于系统代码自动生成的数据结构,即数据的定义和描述。 业务逻辑定义中的数据来源于对业务需求的抽象概述,并以x m l 文件方式存储,而 代码生成引擎也是主要根据对业务逻辑定义中的数据解析来进行代码生成。 第一章绪论 代码生成引擎是系统的关键核心部件。它的主要工作是将业务逻辑定义数据 转换为代码。由于系统可以生成不同类型的代码,而生成代码的类型是可以扩展 的。因此,代码生成引擎本身实际上是以一个代码生成插件工厂的形式出现的。 在执行代码生成的过程中,系统界面调用代码生成引擎接口,而代码生成引擎通 过代码生成工厂类乜1 创建指定类型的代码生成实例。由代码生成实例实现代码转 换。作为代码生成引擎的重要组成部分,代码生成插件要实现最基本的标准接口, 以便代码生成调用者能用一致的方法调用不同的插件。但每个插件的实现是根据 其所要生成的代码而编写的。 3 本课题的目的和意义 如前所述,本课题作为基于w e b 技术的业务系统生成环境的重要组成部分, 其研究在整个课题研究中占有重要地位。报表是政府机构、企业单位最常用的业 务数据采集方式。报表数据的汇总、统计分析,对政府部门的宏观决策,企业单 位经营管理、商业决策有着十分重要的意义。因此,在一般的管理信息系统( m i s ) 中,报表系统是不可或缺的。在一些情况下,报表系统功能的强弱,如是否灵活、 方便等,直接决定了m i s 系统开发的质量。 报表功能是所有数据库应用系统最基本、最重要的需求。多年来,软件工作 者一直致力于通用报表生成工具的开发,以减轻m i s 的开发工作量,提高工作效率。 目前市场上存在各种的报表生成工具,但存在以下问题啼1 : 行业针对性强,难以满足各种m i s 的特殊要求。 可移植性差。当前各种d b m s 都有自己专用的报表工具,但其可移植性差, 并且格式单一、功能简单,难以满足中国国情的需要。 无法支持分布式环境下多数据源的查询与报表。 不支持数据的分析、归类及知识的挖掘。 操作烦琐,计算机专业性强,难以满足一般用户的要求。 安全性及可靠性差。 授权费用昂贵。 考虑到用户现有的数据库系统种类繁多、规模各异,特别是在一个企业中由 于系统的不断更新,导致存在不同的数据库管理系统,所以需要一种新的报表工 具,它能方便地挂接到任何数据库系统中,并具有对多个分布的、异构的、独立 自治的数据源进行分析、加工和综合处理的能力。 目前在使用常规的软件开发方法开发m i s 系统或e p r 系统时,在整个系统的构 建过程中,往往是采用手工编写代码的方式来完成报表系统的开发。造成这种情 况的原因是多方面的,其中的主要因素可能是报表工具的费用问题。但采用手工 编写代码的方式进行报表系统的开发,其结果往往是报表的实现被“写死 了, 报表系统的伸缩性和通用性比较差。在系统交付的初期,还能够满足用户的需要。 4 n e t 环境下报表自动生成系统的设计与实现 但随着时间的推移,一旦用户的业务逻辑发生变化,就可能要对以前的某些报表 的格式或内容进行修改,则采用这种开发方式唯一的补救办法便是修改系统的源 代码。这种开发方法无疑增加了软件的开发和维护费用,缩短了软件的生命周期。 因此,目前的报表系统的开发一般是采用报表工具的方式来开发。 本课题在分析了目前国内外各种主流报表工具及其相关技术的基础上,提出 了一套n e t 平台上的基于逻辑定义的报表自动生成系统的开发方法,并设计实现 了该系统。本课题重点研究了报表逻辑定义及其解释程序,并主要针对报表模式 进行了系统的研究。系统运行的结果是令人满意的,己经接近了报表生成自动化 的目标。 1 2 国内外研究现状 由于报表系统在信息系统中的基础性地位,报表统计的应用非常广泛。报表 工具软件也引起了国内外一些软件公司的关注和重视。近年来,随着软件开发技 术的日新月异,报表技术也不断成熟和完善,目前已经出现了一些优秀的颇具特 色的报表工具软件。以下就从国外和国内两个方面扼要介绍一下报表系统的研究 现状和进展: 1 目前国外相对主流的报表工具软件主要有c r y s t a lr e p o r t 和a c t i v er e p o r t 等,其中又以c r y s t a lr e p o r t 为代表。水晶报表基本上可以认为是高效能报表系统 的行业标准,微软在其n e t 开发平台上捆绑的是水晶报表。水晶报表主要的特点 是:可以从各种数据来源创建丰富、交互式的内容,并将它集成到应用程序,可 以充分使用w e b 的优势,实现快速和交互式的报表系统。它是一款功能非常强大 的报表开发工具,提供了可视化的控件和报表工具的方式来进行报表开发,可以 集成到开发者的开发环境中,如v i s u a ls t u d i o 、n e t 等,适合开发传统的c s 结 构的系统和基于w e b 的报表系统。其不足之处在于开发一些较复杂的,如带有斜 线、交叉线等不规则报表时,实现起来比较困难。另外,它在报表的设计和使用 方面不太符合中国式报表的习惯,并且它的费用比较昂贵等等,这些不足限制了 它的使用,特别是在国内的使用。 2 目前国内报表工具软件以用友华表公司的c e l l 软件【4 】为代表,其内核采用 了类似微软的e x c e l 的技术。c e l l 的主要特点是:具有很强的打印及打印预览功 能、丰富的单元格式与设计、很强的图表功能等。c e l l 提供一些常用函数和自定 义函数以及3 0 0 多个编程接口,来扩展系统的功能。c e l l 在开发基于w e b 的报表 系统方面,显示了较强的实力。从c e l l 的特点可以看出,它具有很鲜明的特色, 比较适合开发中国式报表。但其不足之处:它不是严格意义上的报表类软件,其 本质是属于电子表格类软件。只是在开发类似e x c e l 的报表方面,它具有较明显 第一章绪论 5 的优势。这个缺点限制了它的广泛应用。 相比较,国内的报表软件开发仍比较弱,因此,国内报表工具软件的崛起, 对提高国内的报表软件开发水平有着重要的促进作用,也给国内用户提供了更多 的选择。同时,也要关注今后报表系统的发展方向和存在的问题: 随着i n t e m e t 技术的飞速发展,基于w e b 的应用软件正逐步取代传统的c s 模式软件,成为当今应用软件的主流。但由于目前受浏览器功能和技术的限制, 原来一些c s 模式下比较简单问题如报表的制作、打印和显示,在w e b 方式下实 现起来变得异常复杂,要获得复杂的、高质量的报表尚存在较大的困难。当然这 是目前基于b s 模式的软件面临的普遍问题,这个问题也是今后w e b 报表系统亟 待解决的难题之一。 1 3 论文研究内容 从现有的技术程度出发,本文主要研究以下几项内容: 1 研究已有的报表自动生成应用软件的开发方法,分析其优点和不足,在此 基础上设计“n e t 环境下报表自动生成系统的系统构架,详细阐述系统的设计 原理和实现过程。 2 设计并开发系统运行时环境接口。包括技术接口和功能接口,其中技术接 口包括数据库、数据库事务、消息服务等方面的基本接口:功能接口包括报表项 目管理、数据集管理、报表管理、权限设计、日志管理、组织结构等方面。这些 接口构成系统的内部接口,供代码生成引擎直接调用。 3 详细介绍数据集管理的逻辑定义模块和逻辑定义解析模块的设计和实现。 4 设计和开发代码生成引擎。通过调用逻辑定义模块,分析报表业务的需求, 根据不同的统计业务模式自动生成相应的统计报表代码。 5 设计并实现统计报表管理功能。用于统一集中处理应用系统的统计报表设 计。报表引擎包括报表统计模式引擎、报表统计图、报表数据打印导出等三大部 分。 课题的一个研究原则是:各功能之间相对独立,并在一定程度上独自成为一 个相应的应用工具,比如代码生成引擎是能够独立应用或被其他系统调用,从而 构建为一个特定的代码生成工具;报表统计模式引擎也是能够独立应用于其他的 系统开发中。逻辑定义设计、数据资源库、代码生成引擎、统计模式引擎、运行 时环境等几大部分都实现后,通过一定的接口调用组合在一起即构成报表自动生 成的原型系统。 本文的创新点主要有:提出一种基于逻辑定义的报表自动生成系统的开发方 法,开发了利用报表模式实现不同形式报表自动生成的模块和能适应各种后台数 6 n e t 环境下报表自动生成系统的设计与实现 据库的数据访问模块等。 1 4 论文的章节安排 本文共分五部分,具体的内容组织如下: 第一章:绪论。主要介绍本课题的目的和意义、报表系统当前的发展概况、 本论文的组织等。 第二章:报表自动生成系统的技术研究。介绍系统开发相关的关键技术,着 重介绍了n e t 平台和数据模板控件g r i dv i e w 的特点,代码生成的技术、代码自动 生成特定域软体系结构以及e x c e l 文件转换的算法和原理。 第三章:报表自动生成系统的系统分析与设计。主要是对系统进行系统分析 和设计,对报表系统的主要业务流程进行了分析,并在此基础上对系统的功能进 行了详细分析和设计。重点放在报表逻辑定义及报表统计模式的设计和代码生成 引擎的设计。 第四章:报表自动生成系统的系统实现。主要是详细介绍系统实现的方法, 给出了各个模块的具体实现方法,着重阐述了报表生成模块的实现。最后简单介 绍了系统在陕西移动投诉中心报表系统中的应用。 第五章:结论及以后要做的工作。主要对本课题做一总结,并指出了今后需 要改进的工作。 第二章报表自动生成系统的技术研究 第二章报表自动生成系统的技术研究 2 1 n e t 框架和数据模板控件 n e t 框架( n e t f r a m e w o r k ) “是微软c o m 技术与互联网技术的综合。n e t 框架组件能够实现服务型的接口,使得应用不需客户机上装载功能组件而通过互 联网可直接使用。基于微软技术的开发平台是a c t i v e x 和n e t 。相比较,n e t 平台作为微软最新的开发平台代表了最新的开发技术,是商业软件的开发趋势, 专业的构件厂商也在纷纷推出基于n e t 平台的构件产品,而且n e t 框架功能强 大对x m l 、w e b 、d a t a b a s e 都有良好的支持。相比a c t l v e x 平台,在n e t 平台上 解决技术难腰,实现报表引擎会更为简单。因此报表自动生成系统采用的是n e t 平台。 m i e m s o r n e t f r a m e w o r k 是一个开发、设计、运行n e t 应用的环境它为用 户提供了n e t 平台下通用的a p i 。n e t f r a m e w o r k 将c o m 的精华引入了基于 i n t e m e t 的操作系统,生成了强大、高效的组件系统,从而简化了编程,加强了系 统安全性,极大地改善了应用程序的可靠性和可扩展性”,其结构如图2 1 所示。 图2ln e t 框架结构图 8 n e t 环境下报表自动生成系统的设计与实现 它由三个核心模块组成:c l r ( c o m m o nl a n g u a g er u n t i m e ) 、基本类库( b a s e c l a s sl i b r a r y ) 和a s p n e t 耵: c l r ( c o m m o nl a n g u a g er u n t i m e ) 通用语言运行时库,位于框架的最底 层,是整个框架的基础和核心部分。c l r 是一个运行时环境,它负责资源 管理,包括内存分配和垃圾搜集,并保证应用和底层操作系统的必要分离。 c l r 是n e tf r a m e w o r k 应用程序的执行引擎,c l r 的设计目的是直接在运 行时为基于组建的编程提供全面的支持。c l r 的编程模型是围绕组件进行 的,与c o m 不同,c l r 的组件概念是以a s s e m b l y 的形式出现的,c l r 只存 在一种元数据交换格式。c l r 是对c o m 的发展。 基本类库( b a s ec l a s sl i b r a r y ) 统一的编程类库,它是对过去的w i n d o w s a p i 、m f c 、a t l 等以及其他一些工具的集成和封装,是一套通用的a p i 。 a d o n e t 是微软a d o 的下一代产品,是一种新的数据访问模型。它提供 了平台互用性和可伸缩的数据访问,是在n e t 中创建分布式和数据共享应 用程序的a p i 。相比现有a d o 数据访问模型,a d o n e t 引入了一些新的特 性,如它是基于x m l 的,并且是松散耦合( l o o s e l y c o u p l e d ) 的。a d o n e t 使用了脱机( d i s c o n n e c t e d ) 数据缓存,是用户能够快速创建出高性能、 可靠的x m lw e bs e r v i c e s 和多层应用程序( n t i e ra p p l i c a t i o n s ) 。 a s p n e t 是建立在n e tf r a m e w o r k 之上,利用c l r 在服务器端为用户提供 建立强大的企业级应用服务的编程框架。其目的是使程序员更容易开发 w e b 应用,满足计算向w e b 转移的趋势。a s p n e t 是对现存的a s p 的升级, 它对a s p 保持语法兼容。但与a s p 不同,a s p n e t 是编译执行的,而a s p 是解释执行的,因此前者比后者有着更高的执行率。a s p n e t 的执行过程 可以看作是编译后的c l r 代码充当一个与前端浏览器和中间件用户交互 的应用程序,它接受用户的请求,输出h t m l 流到客户端显示h 1 。此外, a s p n e t 还可以利用n e tf r a m e w o r k 的许多优越性能,如类型安全、对 x m l 、s o a p 和w s d l 等i n t e r a c t 标准强有力的支持等。 a s p n e t 数据模板控件包括g r i d v i e w 、d a t a g r i d 、d a t a l i s t 、r e p e a t e r l 四种哺1 。 g r i d v i e w 、d a t a g r i d 、d a t a l i s t 、r e p e a t e r 控件的使用方法类似,都是通过数据绑定, 将数据源中的数据显示在w e b 页面中并通过控件的模板列实现复杂的数据操纵。 a s p n e t 的强大功能使我们可以在代码中将控件的任何属性绑定至数据源,在 页面中所有的数据绑定表达式不论是摆在任何位置都必须内含在 字符中; 数据源可以包括数据库数据、x m l 数据、数组、集合等多种方式,一般在w e b 的 p a g el o a d 事件中执行这种数据绑定旧3 。 在模板列中可以定义控件,我们经常需要从绑定的数据源中获取数据记录,以 便再绑定至模板内控件,这时可以通过a s p n e t 服务器控件支持的d a t ab i n d e r 类, 第二章报表自动生成系统的技术研究 9 调用d a t ab i n d e r 的e v a l 方法,通过c o n t a i n e r d a t a l t e m 访问数据源中的当前正在处理 的数据记录,从而获得数据字段的值。 通过灵活运用数据模板控件的数据绑定和模板列功能可以实现复杂的数据报 表应用。 2 2 代码自动生成技术 代码生成( c o d eg e n e r a t i o n ) 是一项利用计算机程序来产生程序代码的技术,这 类计算机程序即为代码生成器( c o d eg e n e r a t o r ,或称代码生成工具) 。代码生成器 一个基本的工作模式是:代码生成器读取一个抽象需求的定义( 通常是一个x m l 文 件) 作为输入,然后根据模板产生基于该需求的一个或多个文件。代码生成技术有 如下四个特性n 们: ( 1 ) 质量:代码生成器利用模板来生成代码。模板越好,产生的代码也就越 好。当修改模板来提高模板的质量时,所有产生的基础代码的质量都会提高; ( 2 ) 一致性:产生的代码在类名、方法名和变量名上是完全一致的;。 ( 3 ) 生产力:代码生成技术对生产力的提高依赖于灵活的代码生成器能够重 建基础代码来适应项目需求的变化。利用一个代码产生过程能够增加和删除大段 的代码; ( 4 ) 抽象性:代码生成器把输入需求存储为独立于程序语言的抽象形式,在 设计和生成的基础代码之间设立了一个抽象层。 2 3自动生成的特定域软件体系结构 为了提高代码生成器的核心功能的可重用性,支持多目标平台,提出一种类似 现代编译器基础架构( c o m p i l e ri n f r a s t r u c t u r e ) n 1 1 的特定域软件体系结构( d o m a i n s p e c i f i cs o t t w a r e a r c h i t e c t u r e ,d s s a ) n 羽,用于构建代码生成器。 编译器基础架构通过将编译工作划分为前端与后端两个阶段,并在前端与后 端之间提供统一的中间代码格式,实现多个后端共享同一个前端、多个前端共享 同一个后端的高可重用性。类似地,将报表自动生成系统的自动生成划分为业务 逻辑定( 类似于编译器前端) 与目标代码生成( 类似于编译器后端) 两个主要阶 段。业务逻辑可采用可视化、脚本语言等方式定义,定义生成统一格式的业务逻 辑表示供代码生成使用;目标代码生成阶段读入业务逻辑定义,根据后期维护需 要生成不同目标平台的代码。 基于以上“前端+ 后端 体系结构,抽取常见的业务逻辑模式,如图2 2 所示, 针对每一种业务逻辑模式开发用于业务逻辑定义的前端与用于代码生成的后端, 1 0 n e t 环境下报表自动生成系统的设计与实现 从而实现相应业务模式的代码自动生成。业务逻辑定义是待生成目标报表系统需 求分析结果的精确表示,直接根据需求分析结果生成目标代码。 范围值统计模式业 务逻辑定义前端 参数型统计模式业 务逻辑定义前端 范围值统计模式 业务逻辑 参数型统计模式 业务逻辑 图2 2 基于业务模式的代码自动生成 2 4e x c e l 文件的转换技术 要用e x c e l 扩展v i s u a lc 拌的报表功能,开发人员需要与e x c e l 对象模型提供 的对象进行交互来控制e x c e l 应用程序,e x c e l 对象模型提供了数百个可交互的对 象,下面主要介绍几个常见的对象n 3 l 。 a p p l i c a t i o n 对象:e x c e la p p l i c a t i o n 对象代表e x c e l 应用程序本身,它处于对 象层次结构的顶层。 w o r k b o o k 对象:w o r k b o o k 对象处于a p p l i c a t i o n 对象的下一层,表示一个工 作簿,它可以包含一个或多个工作表。 w o r k s h e e t 对象:w b r k s h e e t 对象处于w o r k b o o k 对象的下一层,表示一个e x c e l 工作表。 r a n g e 对象:r a n g e 对象处于w o r k s h e e t 对象的下一层,表示工作表单元格的 范围。单元格的选择包含一组或多组单元格的选择,或则不同工作表中单元格的 选择。 c e l l 对象:c e l l 对象包含于w o r k s h e e t 对象中,表示e x c e l 工作表中的一个单 元格。 采用面向对象的方法将数据集的内容转换至l j e x c e l 文件的算法如图2 3 所示,转 换时首先转换列名,然后再逐行逐列分别转换。 第二章报表自动生成系统的技术研究 l l 冀 图2 3 数据集内容转换e x c e l 文件的算法 在转换过程中,首先定义并创建三个e x c e l 对象:e x c e l a p p l i c a t i o n 、e x c e l w o r k b o o k s 和e x c e l w o r k s h e e t s n 3 1 。在读取数据集时,分两次读取,第一次逐列 读取数据表的列名生成e x c e l 的标题,第二次再逐行逐列读取数据内容并赋值到 对应单元格,最后再通过设置e x c e l 对象的v i s i b l e 属性为t r u e 将e x c e l 文件打开 并显示出来。 2 5 本章小结 本文对报表自动生成系统所涉及的相关技术进行了综述性的概括介绍。根据 方式方法和作用以及内容与形式的不同,从n e t 框架和数据模版控件g r i d v i e w 、 代码自动生成技术、特定领域软件体系结构、e x c e l 文件转换技术等方面进行了 介绍。其中着重介绍了特定领域软体系结构的“前端+ 后端 体系结构和e x c e l 文件的转换技术的原理。 第三章报表自动生成系统的系统分析与设计 1 3 第三章报表自动生成系统的系统分析与设计 按照现代软件工程学的定义,一般的软件开发过程可以分为六个阶段:制定 计划、需求分析、设计、编码、测试和运行维护n 引。更详细的划分可以分为:问 题定义、可行性研究、需求分析、总体设计、详细设计、编码与单元测试、综合 测试、软件运行和维护。系统分析是一组计算机系统活动的统称,它要解决的是 软件系统“做什么 的问题。系统分析的基本任务是理解用户的需求,确定软件 开发的总体目标,确定工程的可行性,提出实现工程目标应该采用的策略及系统 必须具有的功能,估计完成该项工程所需要的资源和成本,制定工程进度表,并 将用户的需求用书面形式表达出来。这一阶段产生软件需求规格说明书( s o f t w a r e r e q u i r e m e n ts p e c i f i c a t i o n ) 。 系统分析阶段的工作目标是建立系统的逻辑模型,明确地描述系统“做什么 。 在获得了系统的原理性解决方案后,软件开发的下一步工作进入软件的系统设计 阶段。该阶段的任务是如何将系统的逻辑模型转变为物理模型,回答系统“怎么 做”的问题n 1 5 j 引。 系统设计可以分为两个阶段:总体设计和详细设计。 总体设计阶段的基本任务是“概括地回答系统应该如何实现 。总体设计又 被称作概要设计、初步设计。总体设计阶段的每个物理元素仍然处于黑盒阶段, 黑盒内的具体内容将在详细设计阶段考虑。总体设计通常由系统设计和结构设计 两个阶段组成,其过程和任务为n 副:设计供选择的方案、选择合理的方案、确定 最佳方案、功能的抽象和分解、软件结构设计、数据库设计、制定测试计划、编 制文档、技术审查和复审。 详细设计阶段的基本任务是对总体设计阶段划分出的每个模块进行明确的算 法描述。详细设计根据总体设计提供的文档,确定每一个模块算法及数据组织, 并选择合适的工具进行表达n 习,其具体步骤:确定每个模块的算法、确定每个模 块的数据组织、为每个模块的设计测试用例、编写详细设计说明书。 3 1 系统概述和系统目标 3 1 1 系统概述 报表功能是所有数据库应用系统最基本、最重要的需求。因为用户往往需要 用直观、综合的方式来获取数据库的信息,而不仅仅是查看单个的数据;其次, 1 4 n e t 环境下报表自动生成系统的设计与实现 报表还是企业决策者关心的内容,报表传递也是数据信息在不同管理层次之间流 动的一种通用方式。在m i s 开发中,报表的编制占据了应用系统开发人员大量时间, 而且报表的生命周期很短。目前市场上,虽然有各种各样报表生成工具,但因存 在种种问题( 见绪论部分) ,使其很难得到广泛应用。目前主流报表生成工具提供 两种报表生成方式:一种是可视化的报表设计器,其优点是所见即所得,比较直 观,容易生成和修改,缺点是生成的速度较慢,效率不高。另外,可视化的报表 模板设计在技术实现上难度较大;另一种是以脚本语言的方式生成报表,其优点 是报表生成速度快,缺点是不够直观。但是,这些报表生成工具大多是偏重于可 视化的报表设计器,虽然也提供以脚本语言的方式生成报表,但功能比较简单。 针对当前一些主流报表生成工具的不足,本文提出了一种基于统计模式的动 态自动统计查询方法,该统计查询方法脱离于具体的数据库结构甚至数据库版本, 而尽可能最大限度地满足信息系统应用的实际要求。本报表系统采用以报表逻辑 定义为主的报表生成方式,其特点是报表生成速度快,逻辑定义设置简单易懂, 容易掌握。系统开发采用微软最新的n e t 平台,系统的开发效率很高,并且具有 较好的扩展性。 3 1 2 系统目标 为了减少应用系统开发的工作量,缩短系统的开发周期,解决系统生命周期 短的问题,确保系统具有较好的通用性,本文重点研究报表的逻辑定义设计、报 表设计和报表自动生成方面的技术及实现,并达到以下的目标: 实现自动生成。本系统可以根据需求分析描述文本中有关报表的描述,自 动生成报表系统。本系统既可以作为整个自动生成环境的子系统,又可以 作为单独的报表工具来使用。 能适应各种后台数据库。本报表系统主要是面向用户的数据库管理系统, 由于微软n e t 平台上提供了a d o n e t ,使得在n e t 平台上进行数据库开 发变得比较容易。本系统可以适用于目前市场上各种主流的数据库系统, 如m ss q ls e r v e r ,o r a c l e ,d b 2 ,a c c e s s ,m y s q l 等。 功能完备。本报表系统不仅可以进行标准报表的设计和生成,而且重点针 对非标准报表,提供了灵活的设计和生成方式。可以对后台数据库的任何 表提供数据导出和打印的功能。 提供报表描述语言的逻辑定义及解析器。逻辑定义语义简单、清晰,容易 理解和使用。系统提供了描述语言逻辑定义的解析器,为代码生成引擎提 供所能识别的逻辑定义所描述的业务需求表达式。用户只需要设置报表业 务的逻辑定义,系统就可以自动生成相应的报表。 第三章报表自动生成系统的系统分析与设计 1 5 具有较高的安全保密性和可靠性。系统提供了用户登录的身份验证和权限 管理功能,能够严格控制用户在使用过程中的权限。系统的日志管理功能, 记录了所有登录用户的重要信息,以备查询。系统具有较好的容错能力, 在设计时,对各种可能的错误提供了较完善的异常处理。 界面友好,操作方便。采用类似w i n d o w s 资源浏览器的软件界面,用户 操作简单方便,无需技术培训。 3 2 系统业务流程和功能分析 本节将从上节对报表自动生成系统的需求和目标的分析入手,提出解决策略, 总结设计思想,设计出系统的整体框架。本节将对系统的流程和功能作进一步的 详细设计,对系统所包含的主业务流程和主要功能进行详细介绍。 3 2 1 系统流程图及流程分析 根据以往设计开发e r p 系统中报表处理系统的经验和对各种不同类型报表的 分析结果,本节归纳出报表自动生成系统的基本流程,如图3 1 所示。 简要对系统流程图中的主业务流程分析如下: 1 系统启动时,首先读取系统配置文件,以确定用户系统的数据库服务器。 如果系统配置文件不存在合理的配置项,系统将会给出相应的提示信息,如提示 系统配置文件不存在、配置数据库服务器等。 2 定义项目数据库。系统第一次运行时,项目数据库是不存在的,这时要新 建项目数据库。选择项目数据库和用户数据库,以及填入合法的用户名和密码后, 经过系统的身份验证,然后进入报表系统主界面。 3 定义数据集。数据集提供了产生报表的数据来源一数据源。数据源可以来 自特定的数据库中的表、视图、存储过程或s q ls c r i p t 。定义报表之前首先要确 定数据集,数据集是用户数据库中的表、视图、存储过程、或s q ls c r i p t 的映射。 定义数据集的目的是便于报表的绑定。 4 定义报表。首先要设置报表的属性。其中选定数据集是关键的一步,这一 步确定了与报表绑定的数据源。其次是通过报表代码生成引擎,使用报表逻辑定 义构建报表。报表代码生成引擎除了对报表的显示字段进行定义,还要对字段进 行数据绑定。报表逻辑定义对报表的表头、表体和表尾进行了详细、精确的定义 和描述。针对不同形式的报表,本文提出采用报表模式的方法解决。报表模板要 能够保存,可以将其保存到数据库中。报表模式的属性信息以x m l 文件形式保存。 5 报表的打印导出。对已经编译生成的报表代码进行输出,并对输出的报表 1 6 n e t 环境下报表自动生成系统的设计与实现 数据进行打印导出。 第4 步和第5 步是可以迭代进行的。如果用户浏览生成的报表时,发现生成 的报表数据不符合要求,则可以回到第4 步,对报表逻辑定义进行修改,然后再 浏览报表。如此反复进行,直到生成满意的报表。 n o 图3 1 报表自动生成系统的流程图 3 2 2 系统功能分析 通过对系统的业务流程的分析,可以对系统做更进一步的功能分析。首先给 第三章报表自动生成系统的系统分析与设计 1 7 出系统的用例图( u s ec a s ed i a g r a m ) 1 7 o 用例( u s ec a s e ) 是系统中的一个功能单元, 可以被描述为参与者与系统之间的一次交互作用。用例图( u s ec a s ed i a g r a m ) 是被 称为参与者的外部用户所能观察到的系统模型图。用例模型的用途是列出系统的 用例和参与者,并显示哪个参与者参与了哪个用例。用例图描述了系统的所有的 功能点。系统的用例图如图3 2 所示。 系统用户 挪瞬置。 图3 2 报表自动生成系统的用例图 其次,再对系统的功能进行详细分析,本系统应具备如下功能: 1 数据库配置管理功能 本报表系统主要的功能是面向用户的数据库系统( d b m s ) 提供数据提取和挖 掘服务。系统启动时,必须首先连接后台数据库如果是第一次连接数据库或者用 户改变数据库的配置,那么数据库连接的必要信息,由系统用户手工输入。连接 成功后,参数信息被保存到本地的系统配置文件中。当下一次系统启动时,系统 自动读取配置信息。因此,该模块是最基本的模块。 2 报表项目管理功能 考虑到系统的安全性和实现的简便性,本系统拟采用项目数据库的方式,将 项目数据库放置在用户的数据库服务器端。项目数据库中保存系统用户的权限信 息、数据集信息、报表信息、日志信息等。系统如果是第一次运行,系统会给出 1 8 n e t 环境下报表自动生成系统的设计与实现 提示新建项目。该流程根据需要可以新建项目,也可以直接选择己经存在的项目。 3 身份验证功能 系统的使用者必须是合法的系统用户,否则将不能进入系统。 4 数据集定义功能 新建数据集时,系统会提供数据集名称、别名、数据集类型、数据集所映射 的用户数据库表、数据字典等信息,这些信息需要用户手工填入或选择。新建数 据集完毕,系统会提示保存相关信息,系统提供保存、放弃、取消的三种选择。 如果选择保存,系统将所有信息保存到项目数据库中。如果在系统登录选择的是 已经存在的项目,那么系统会在初始化时,将该项目的信息显示在数据集界面上。 5 数据浏览功能 根据数据集所映射的用户数据库表,系统能够将该数据库表中的所有数据信 息显示出来。还可以通过设置过滤条件,屏蔽掉不需要的数据。通过设置逻辑定 义,可以改变数据信息显示的字段名。 6 报表逻辑定义功能 报表逻辑定义功能是系统的核心模块。在新建报表时,系统会提供报表名称、 说明、数据集名称、报表参数等信息,这些信息需要用户手工填入或选择。新建 报表完毕,系统会提示保存相关信息,系统提供保存、放弃、取消的三种选择。 如果选择保存,系统将所有信息保存到外部x m l 文件中。如果在系统登录是选择的 是己经存在的项目,系统会在初始化时,将
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 专业职业技能试题及答案
- 药学专业自荐试题及答案
- 能源专业试题及答案
- 测绘专业考研试题及答案
- 黑龙江省新时代高中教育联合体2024-2025学年高一上学期期末联合考试政治试卷(含答案)
- 内墙腻子拆除施工方案
- 2026届安徽省合肥市高三物理第一轮复习综合检测试卷2(力学部分B卷)
- 在线直播行业发展报告
- 婚礼主持人开场白模版
- 金乡蔬菜冷库施工方案
- GB/T 18277-2025收费公路收费制式和收费方式
- 高一语文学法指导(绝对经典)
- 包装车间基础知识培训课件
- 2025年贵州建筑中级试题及答案
- 古代服饰复原与租赁服务创新创业项目商业计划书
- 河北社区工作管理办法
- 超声内镜检查及护理配合
- 数字人文与档案重构-洞察及研究
- 关于密码的课件
- 小儿腹泻患者的健康宣教
- 企业有限空间培训课件
评论
0/150
提交评论