




已阅读5页,还剩62页未读, 继续免费阅读
(计算机软件与理论专业论文)基于非线性模型的报表工具的研究.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
题,设计了以单元格为理论核心的基于非线性模型的报表工具。 本文选用i a v a 语言实现了基于非线性模型的报表工具。该报表工具能够设计出 多源分片、不规则分组、动态格间运算和行列对称等特征的复杂报表。报表工具中 增加了语义层和不规则分组层,在语义层中定义数据模型,用户设计报表时,只需 简单的拖拽语义元素即可;在不规则分组层,用户可以自由定义分组规则,利用这 些分组规则设计报表时,只需拖拽分组名称即可。该报表工具为用户设计复杂多样 的报表提供了极大的方便。 关键词:报表,非线性模型,报表工具,报表设计器,报表引擎 a b s t r a c t r e p o r ti sa ni m p o r t a n tm e a n st op r e s e n td a t a b u tg e n e r a lr e p o r tt o o l sc a n tm e e t c h i n e s e - s t y l ec o m p l e xr e p o r td e m a n d s t h i sp a p e rp r e s e n t sar e p o r tt o o l ,b a s e do na n o n l i n e a rm o d e lw i t ht h ec e l la si t su n d e r p i n n i n gt h e o r y t h ed e s i g no ft h i sr e p o r tt o o l i sb a s e do na n a l y s i so fp l e n t yo fc o m p l e xc h i n e s e s t y l er e p o r t s ,a n dt h eq u e s t i o no f c u r r e n tr e p o r tt o o l s 。 t h i sp a p e rb a s e do nt h en o n l i n e a rm o d e lr e p o r tt o o li sr e a l i z e db yj a v al a n g u a g e t h er e p o r tt o o lc a nd e s i g nr e p o r t sw i t hm u l t i p l es e c t i o n su s i n gm u l t i p l ed a t as o u r c e s , i r r e g u l a rg r o u p i n g ,d y n a m i cc a l c u l a t i o n sb e t w e e nc e l l s ,a sw e l la s r o wa n dc o l u m n s y m m e t r y t h er e p o r tt o o la d d e das e m a n t i cl a y e ra n da ni r r e g u l a rg r o u p i n gl a y e r d a t a m o d e li sd e f i n e di nt h es e m a n t i cl a y e r g r o u p i n gr u l e sc a nb ee a s i l yd e f i n e di nt h e i r r e g u l a rg r o u p i n gl a y e r t od e s i g nar e p o r t ,t h eu s e rs i m p l yd r a g sa n dd r o p ss e m a n t i c e l e m e n t so rg r o u p i n gn a m e s t h er e p o r tt o o lp r o v i d e sg r e a tc o n v e n i e n c ef o rt h eu s e ri n d e s i g n i n gr e p o r t sw i t hc o m p l e x i t ya n dv a r i a t i o n s l i ul i q i n ( c o m p u t e rs o f t w a r ea n dt h e o r y ) d i r e c t e db yp r o f l i nb i y i n g k e y w o r d s :r e p o r t ,n o n l i n e a rm o d e l ,r e p o r tt o o l ,r e p o r td e s i g n e r ,r e p o r te n g i n e _一,;, 华北电力大学硕士学位论文 目录 摘要i a b s t r a c t i 第一章 绪论一l 1 1 研究背景及意义1 1 2 国内外的研究动态2 1 2 1 国外研究动态一2 1 2 2 国内研究动态3 1 3 研究内容4 1 4 论文的组织结构4 第二章报表工具的概述5 2 1 报表工具的概念5 2 2 报表数据5 2 3 报表格式5 2 3 1 报表布局5 2 3 2 报表展示格式6 2 4 本章小结6 第三章非线性报表模型7 3 1 非线性报表模型的概念7 3 2 非线性报表模型的研究内容7 3 2 1 多源分片报表7 3 2 2 不规则分组报表7 3 2 3 动态格间运算报表7 3 2 4 行列对称报表8 3 3 非线性报表模型的设计一8 3 3 1 展现模型8 3 3 2 数据模型8 3 3 3 扩展模型9 3 3 4 主格模型9 3 3 5 坐标设计1 0 3 3 6 格集13 3 4 本章小结1 4 i t 11 ; 11 ; 16 1 6 17 1 ; 4 3 1 语义层的概述1 8 4 3 2 语义层的实现18 4 4 不规则分组层的设计与实现2 7 4 4 1 不规则分组层的概述2 7 4 4 2 不规则分组层的实现2 7 4 5 报表设计器的设计与实现3 3 4 5 1 报表设计器的概述3 3 4 5 2 报表模板管理一3 4 4 5 3 定义数据源3 4 4 5 4 定义数据集3 5 4 5 5 定义参数3 6 4 5 6 定义报表模板3 6 4 5 7 解析分组规则文件3 8 4 5 8 解析语义文件一3 9 4 6 报表引擎设计与实现4 0 4 6 1 报表引擎的工作流程4 0 4 6 2 报表引擎的主要实现算法4 1 4 6 3 报表计算的实例一4 4 4 7 报表的输出4 4 4 8 本章小结一4 4 第五章报表工具的应用实例4 5 5 1 多源分片报表举例一4 5 5 2 不规则分组报表4 6 5 2 1 匹配分组报表举例一4 6 5 2 2 不完全分组报表举例4 7 5 2 3 归并分组报表举例一4 8 5 3 动态格间运算报表4 8 5 3 1 累积占比报表举例4 8 5 3 2 排名报表举例4 9 i l l f :【 | c : 一 位论文 1 1 研究背景及意义 论 随着企业信息化的加速,大部分企业需要很多应用软件,而应用软件中数据基 本都是以报表的形式展现的,所以应用软件中大部分都包含报表模块。报表是非常 重要的信息载体,是进行数据浏览、存储、交换、统计和分析等的重要手段【l 】,是 经营和决策者掌握企业运营情况、进行决策的重要依据,是企业信息系统中不可缺 少的重要组成部分。据不完全统计,企业信息系统应用中的6 0 以上都与报表相 关1 2 j ,企业在系统开发过程中,报表模块的设计往往占据了总工作量的较大比例。 在计算机出现之前,数据是以纸制文件形式保存的,数据处理是手工进行的, 报表的编制也是手工实现的。随着计算机的广泛应用,人们开始使用计算机及计算 机软件实现数据处理,使用数据库管理系统来管理数据,使用应用程序束完成具体 的业务操作,报表的编制也开始使用软件来实现【3 】,于是就产生了报表工具。报表 工具的产生使得很多功能实现起来更简单,便捷易操作,有的甚至都不需要任何编 码,节省了很多人力物力,提高了效率。报表工具的产生改变了报表编制的流程、 方法和手段,随着计算机技术的发展,报表工具也在不断的推陈出新。 纵观报表工具的发展历程,从早期d o s 下的c c e d 到w i n d o w s 下的e x c e l , 从原来的c s 报表工具到现在的b s 报表工具,从原来的单平台报表工具到现在的 跨平台的报表工具【4 】。一直以来报表开发工具都被国外产品所占据,如水晶报表 ( c r y s t a lr e p o r t ) 、s t y l er e p o r t 等等,这些工具的理论模型和需求都出自国外, 大多数的国外报表工具采用的数学模型都是基于s q l o l a p 理论设计的,使用 s q l 语句查询关系型数据库获得一个二维表格的报表数据结构,然后将这些数据以 某种方式填充到与之配套的报表模板中,从而生成报表文档,这种理论比较适合设 计报表样式规整、简单的报表。而中国的报表习惯与国外有天壤之别,比国外的报 表要复杂得多,国外的报表工具在制作中国式报表时存在以下问题: ( 1 ) 大多数的国外报表工具只注重报表的内容,格式单一,无法满足格式复杂 的中国式报表,比如中国式报表中对斜线的要求,多层表头的嵌套等等。 ( 2 ) 中国式报表数据统计复杂,具有多数据源、不完全分组、动态格间运算、 行列对称等诸多特征。这些国外的传统报表工具无法实现,从而导致常常要求编写 代码,准备数据或进行子表拼接才能完成一个复杂报表的制作。 ( 3 ) 中国式报表信息量大,各种各样的数据,明细的、汇总的往往都集中在一 张报表中,这就导致同一张报表中的数据来自多个不同的数据表或视图,甚至来自 华北电力大学硕士学位论文 多个不同的异构数据库。而大多数的国外传统报表工具不能同时灵活有效地访问多 个数据源,无法实现对不同数据库的集成。 ( 4 ) 中国式复杂报表大都需要填写,要求报表工具具有填报功能,同时提供各 种填写控制,如编辑风格、自动计算、合法性校验等;填写好的数据能够方便地存 到数据库以便进行下一步的统计汇总;还需要能支持离线填报和多级汇总填报等。 而大多数的国外报表工具都不具有填写功能,一般的填报解决方案都不能自动处理 ! i _ 入库的问题,导致相应的编程工作量仍然很大。 所以国外报表工具的理论模型和需求不符合中国人的报表习惯,处理中国复杂 ,。能力较差,而且一般不会提供任何变通的手法。 ,吱近几年国内也出现了多家报表工具开发商,但由于长期受国外设计思想的制 ,:r 制了自己设计拓展空间,这些报表工具的数学模型也是基于s q l o l a p 理 7 :汁的,虽不断地进行改良,但都只是在技术上改进,如从c i s 移植到b s 、 义持j a v a 5 】等其根本处理方案并没有本质的变化,远远不能满足国内复杂报表的 制作需求。 1 2 国内外的研究动态 由于报表的应用非常广泛,报表工具软件也引起了国内外一些软件公司的关注 和霍视。近年来,随着软件开发技术的日新月异,报表技术也不断成熟和完善,目 前已经出现了一些优秀的颇具特色的报表工具软件。 1 2 1 国外研究动态 i 日外的报表工具都具有各自的原创技术,又经过了多年的发展和完善,其技术 相对都比较成熟。国外典型报表工具有:c r y s t a l r e p o r t 、s t y l e r e p o r t 、f o r m u l a o n e 、 j a s p e r r e p o r t 、q u i c k r e p o r t 等等。 c r y s t a l r e p o r t ( 水晶报表) 是目前知名度最高的报表产品。它采用带状分布设 计模型,通过在不同带状区域中放置控件的方式进行报表绘制,具有非常好的扩展 性和适应能力,可以从各种数据来源创建丰富、交互式的内容,并可集成到应用程 序【6 】;它通过图形化界面和v bs c r i p t 脚本的结合,在西式报表制作方面,已经走 到极致:它在服务器效率优化方面一直做得非常优秀。但由于c r y s t a lr e p o r t 采用 传统的带状分布设计模型使得它存在一定的局限性,一般只能处理一个数据源( 多 个数据源要最终转换成一个数据源) ,因此难以处理复杂的报表格式变化;条带式 的方式,使得它只能纵向展开,无法横向展开;有限的计算能力,使得它只能进行 横向计算和简单的纵向跨行计算,而无法处理更加复杂但又非常常见的计算( 如跨 f j 计算、名次计算等) 。这就造成了用c r y s t a lr e p o r t 做复杂的中国式报表很困难【j 。 2 华北电力大学硕士学位论文 s t y l er e p o r t 是最早出现的纯j a v a 报表工具,也是目前国际市场上知名度最高 的纯j a v a 报表工具。它采用表格设计模型,类似e x c e l ,采用j 2 e e 的开放标准, 可以无缝地集成到一个企业的应用系统架构中;它采用先进的面向对象的架构,可 以很方便地进行扩展,非常容易地和任何j a v a 应用或者j a v a 服务器整合;它基 于j a 、,a 的跨平台特性,可移植性很强,能做到一次开发,多处受益【引。但s t y l e r e p o r t 的设计模式使得它很难做复杂格式的报表,甚至连一些像c r y s t a lr e p o r t 那 样的产品,为了应付一些复杂需求以补丁方式打上的一些功能都没有,这样就大大 限制了s t y l er e p o r t 的报表设计能力和设计报表的效率,一方面往往需要做大量的 数据预处理工作甚至预先写程序,另一方面很可能有一些报表很难做出来。 1 2 2 国内研究动态 最近几年国内报表工具市场也异常火爆,先后出现了多家国内报表工具开发 商,如数巨报表、用友华表的c e l l 、杰表、中创i n f o r r e p o r t 、和勤、如意等等。 数巨报表是一款经历多年市场锤炼的国产报表产品,是国内报表工具市场上主 要产品之一。其设计端采用c + + 开发,服务器采用j a v a 开发;它采用带状分布+ 表 格的设计模型,充分发挥了带状模型的扩展性和表格模型的快速设计能力它支持 w e b 方式下的应用,并成功地解决了b s 架构软件中报表制作、预览、打印及导出 文件等难题,使用或集成数巨报表,可以高效率地进行w e b 报表的制作、打印( 包 括表格和票据等的套打) ;它支持图形化的s q l 设计环境及面向集成的强大功能, 用户在设计过程中可以通过一系列图形化方式,无须写任何代码,即可轻松完成报 表的设计与集成;它具备强大的报表链接功能,利用该功能,可以自如地实现在同 一张或者是不同报表之间的链接,还可以将报表链接到w e b 页面【9 】。 杰表是为j 2 e e 应用开发商提供的w e b 报表快速集成开发工具。该报表工具采 用纯j a v a 技术实现,可以跨平台,可与任何一款j 2 e e 应用服务器集成;是真正的 b s 架构,浏览报表无须下载插件,使浏览报表更高效更安全;为用户提供了集成 的可视化设计环境,可以进行所见即所得的报表设计;支持多种数据源;提供了丰 富的报表元素和报表类型;支持强大的脚本( s c r i p t ) ;具有高速报表处理能力和强 大的扩展能力;杰表s d k 支持二次开发,可以与其它项目紧密集成;支持多种语 言等特点【l 。但是杰表缺少各种应用环境下的成功案例,尤其是缺少大型应用的成 功案例;杰表的可视化设计界面不能缩放,对于特大报表和特小报表的设计不方便; 杰表只能做常规的线性报表,不支持复杂的非线性报表。 目前国内外大多数的报表工具仍然采用s q l o l a p 理论设计的数学模型,这 种数据模型严重的影响了复杂报表的制作,因此必须研究全新的报表数学模型。 1 3 研究内容 传统报表工具处理复杂报表最大的难点在于其数学模型的不适应。落后的模型 导致了其低下的制表能力【5 1 。因此,报表工具要想能够设计出复杂的中国式报表,就 必须完全的放弃s q l o l a p 理论的数学模型,从中国复杂报表的实际应用和需求出 发,设计出全新的数学模型。本课题旨在分析目前国内外各种主流报表工具及其中 国复杂报表特点的基础上,结合数学知识,抽象出一个非线性模型,用于设计报表 工具,从根本上改变报表的设计与实施方法,使报表制作由复杂变简单,避免编写 大量代码、编写复杂的存储过程和s q l 语句来制作复杂报表。 本课题主要涉及以下几方面的研究内容: 1 、研究线性报表模型( 即传统模型下报表工具) 的实现原理,分析线性报表 模型存在的问题。 2 、研究多张复杂报表,总结报表的形成规律。 3 、学习相关的数学知识,根据复杂报表的规律及已有的非线性模型的研究成 果建立非线性模型。 4 、编程实现非线性模型中的算法。 5 、实现报表工具的模拟环境,展现在报表工具中非线性模型的应用。 6 、深入学习x m l 技术,利用x m l 规范报表数据。 1 4 论文的组织结构 第一章介绍了本课题的研究背景及意义、国内外研究现状、以及本文的研究内 容和论文的组织结构。 第二章介绍了报表工具的概念及报表工具的两个核心内容。 第三章首先介绍了非线性报表模型的概念,然后介绍了非线性报表模型研究的 主要内容,最后介绍了非线性报表模型的设计。 第四章为本文的重点,详细介绍了报表工具的整体结构及各部分的设计与实 现。 第五章介绍了基于非线性报表工具的应用实例。 第六章是本文的总结。 4 一 华北电力大学硕士学位论文 2 1 报表工具的概念 第二章报表工具的概述 报表工具是用来制作报表的软件,是帮助用户进行制作和生成报表的计算机程 序。 报表是企业数据信息进行直观展示的方式。报表= 数据+ 格式【1 1 】,“数据” 是报表要展示的数据内容,即各种各样有用的数据;“格式 是报表展示的形式, 报表内容要按照一定的格式进行组织。报表工具要代替人完成报表的编制,就必须 解决这两个主要问题:一是报表的内容,即报表数据;二是报表的样式,即报表格 式【1 2 】。 2 2 报表数据 数据是报表的核心内容。报表中的数据来源复杂,可能来自于数据库,也可能 来自于数据文件【l3 】( t e x t 文件、x m l 文件等) 。数据库种类繁多,有o r a c l e 、s q l s e r v e r 、a c c e s s 、d b 2 、s y b a s e 等。通常情况下并不是直接从数据源中取出数据在 报表中展示,而是需要对数据源中的数据进行计算处理后再在报表中展示,比如对 数据进行分组、汇总、求平均、求最大值、求最小值等计算。这就要求报表工具不 仅能够从各种数据源中取数,而且要有数据的计算能力【i 引。 2 3 报表格式 格式在报表数据的展示中非常重要,是报表制作的又一核心内容。只有按照一 定的格式组织的数据,才能直观的展示信息。报表的格式分为报表的布局和报表的 展示格式【15 1 。 2 3 1 报表布局 通常情况下报表是分区的【l6 1 ,特别是中国式报表更是分区之多,本文通过对多 张报表进行分析,把报表分成八个区:页眉区、头标题区、报表头区、分组头区、 数据区、报表尾区、尾标题区、页脚区。一张报表可能不分区、可能只含有其中的 几个区。 1 、页眉区p a g e h e a d e r 页眉区位于页面的最上面,一般用于放置与页面有关的信息,例如报表制作单 位名称 2 、 头 期、报 3 、 报 4 、分组头区g r o u p h e a d e r 报表中分组列所在行区。 5 、数据区r e p o r t d a t a 数据区一般放置报表从数据集中取到的数据。 6 、报表尾区r e p o r t f o o t e r 报表尾区一般用于放置报表的一些汇总统计信息,以及常在报表表尾显示的一 些信息。 7 、尾标题区t i t l e f o o t e r 尾标题区用于放置报表尾标题,以及一些报表结尾要显示的注脚信息。 8 、页脚区p a g e f o o t e r 页脚区位于页面的最下面,一般用于放置和页面有关的信息,如分页页码。 2 3 2 报表展示格式 1 、报表尺寸定义:报表尺寸主要定义报表行高和列宽,定义合并格等。 2 、单元格风格定义:单元格风格是指单元格内容的显示形式。例如单元格上、 下、左、右边框样式定义;单元格内容的字体、字号、字体颜色、加粗、下划线、 对齐方式设置;单元格数字内容的小数位数、货币符号、日期格式等的设置。 设置报表的展示格式可以使报表更符合阅读习惯,更加美观清晰【1 7 1 。 2 4 本章小结 本章对报表工具进行了阐述,介绍了报表工具的概念、报表工具的功能。报表 工具主要完成报表数据定义和报表格式的定义。本章的内容为后继章节介绍报表工 具的设计奠定了理论基础。 6 学硕士学位论文 第三章非线性报表模型 3 1 非线性报表模型的概念 非线性报表模型是充分利用表格本身的固有特征,把单元格作为整个理论体系 的核心。数据集则作为某种提供数据来源的从属属性,几乎所有的变换和计算都以 表格为主体进行,从而可以方便地设计出具有复杂样式和灵活计算的报表【3 1 。 3 2 非线性报表模型的研究内容 非线性报表模型从中国的复杂报表进行研究,发现中国的复杂报表具有多源分 片、不规则分组、动态格间运算和行列对称等特征,这些报表的制作是非线性报表 模型的主要研究内容。 3 2 1 多源分片报表 多源是指同一张报表中的数据可能来自不同的数据表,也可能来自不同的数据 库,这些数据库可能是相同类型的数据库,也可能是不同类型的异构数据库。 分片是指报表的纵向或横向或双向同时被分成了多个区域,每个区域独立扩展 或者其中一个扩展区域为另一个扩展区域的子扩展区域,也可能是扩展区域和静态 区域的混合。 3 2 2 不规则分组报表 规则分组是指分组按照某个字段或有规律的表达式进行,数据集中的数据全部 出现在分组结果中,且所有的数据在分组结果中只出现一次。 不规则分组是指分组不能按照有规律的表达式进行,每个组的分组表达式都不 相同,需要一一列举,数据集中的所有数据可能并不全部出现在分组结果中,个别 数据可能在不同组中多次出现。 3 2 3 动态格间运算报表 动态格问运算是指同一个源格扩展出来的多个单元格之间的运算。这种运算的 复杂性在于:设计报表的时候,源格只有一个,而扩展后形成了多个,设计时不知 道报表计算时能扩展出几个单元格,扩展后的每个单元格如何在表达式中命名定 位。 7 华北电力人学硕十学位论文 3 2 4 行列对称报表 中国式报表对于垂直方向上实现的扩展、分组、分片、格间运算等能力,在水 平方向上要求同样能够实现。 3 3 非线性报表模型的设计 以中国式复杂报表为研究内容,抽象的非线性报表模型由展现模型、数据模型、 扩展模型、主格模型、设计坐标和格集等子模型组成。 3 3 1 展现模型 展现模型是指报表的显示方式。 行:由水平排列的一组单元格构成了行,行从上到下依次编号为l ,2 ,3 ,4 , 列:由垂直排列的一组单元格构成了列,列从左到右依次编号为a ,b ,c ,d , 单元格由行和列交叉点构成,通过“列号+ 行号”来命名,例如:第a 列第1 行的单元格命名为“a l ”。 合并格:如果选中一片连续的单元格区域( 这片连续区域只能是矩形区域) , 把这片区域内的单元格全部合并成一个大的单元格,这个合并后的大单元格称为合 并单元格。合并单元格以左上角的单元格编号作为合并格的编号。 由单元格、合并格、行、列组成了一个二维矩形的表格,在表格中增加数据以 及数据间的运算逻辑,就构成了报表。 3 3 2 数据模型 数据是报表的基础,报表的计算依赖于数据模型中的数据。 3 3 2 1 数据集 数据集是一个由数据数组构成的二维数据表,其同列的元素数据类型都相同, 数据集行的成员数据称为数据集的数据。分别称数据集的行和列为记录和字段。 数据集d s 的第i 行记作d s r ( i ) ,第j 列记作d s 柳,列名为c o l 的列记作d s c o l 。 3 3 2 2 行集 数据集的行集是由数据集的行按某种顺序构成的数组,数据集本身也是一个行 集。从组成元素上看,行集是数据集的子集,但排列次序未必与数据集的行序相同。 数据集相关的表达式计算一般必须依赖于某个行集才能进行。 硕士学位论文 划分成n 个行集的过程称为分组,分组后 的每个行集称为一个组,多个组构成了组集。 3 3 2 4 数据集函数 能够对数据集的记录进行操作( 取数、分组、运算等) 的函数称为数据集函数, 其书写规则为:d s f ( ) ,其中,d s 为数据集的名字,f 为函数名。 3 3 3 扩展模型 3 3 3 1 扩展单元格 当单元格的数据值表达式为集合表达式时,该单元格默认为可扩展单元格。扩 展方向有横向扩展和纵向扩展两种,但一个扩展格只能有一个扩展方向。 3 3 3 2 横向扩展 当可扩展单元格的扩展方向为横向时,该单元格进行的扩展称为横向扩展。此 时该单元格会横向进行复制,复制出的单元格的数据值依次为表达式的结果数据 值,表达式返回几个值,单元格就复制几个。 3 3 3 3 纵向扩展 当可扩展单元格的扩展方向为纵向时,该单元格进行的扩展称为纵向扩展。此 时该单元格会纵向进行复制,复制出的单元格的数据值依次为表达式的结果数据 值,表达式返回几个值,单元格就复制几个。 3 3 4 主格模型 3 3 4 1 根格 报表左上角的灰色单元格称为报表首格,也称为根格。它用于存储描述整个报 表的属性,如图3 1 所示: 一甚# 华北电力大学硕士学位论文 根格( 报表首格) 的书写规则为:0 3 3 4 2 主格和附属格 在单元格进行扩展的过程中,缺省情况下,相对于其右( 下) 边的单元格而言, 扩展格是主动复制的,被称为其它格( 其右下的格) 的主格,而其右( 下) 的单元 格是被动跟随复制的,被称为扩展格的附属格或子格。主格和附属格是相对的概念, 即某格是另一格的主格或附属格,不存在单独的主格和附属格。 只有扩展格才能是其它格的主格,在缺省情况下,扩展格左( 上) 的格并不是 其附属格,只有右( 下) 的格才是其附属格。单元格的主格属性可以人为改变。 3 3 4 3 左主格和上主格 单元格进行纵向扩展时,称其为其它格( 其右下的格) 的左主格,而横向扩展 时则称为上主格。一个单元格可以既有左主格又有上主格。 某个单元格的左主格或者上主格属性可以人为的改变,可以把某个纵向扩展格 右边的单元格设为它的左主格,或者把某个横向扩展格下方的单元格设为它的上主 格。 单元格横向扩展时,上方横向扩展单元格缺省为它的上主格,下方单元格缺省 为它的附属格;如果上方没有横向扩展格,则上主格缺省为、0 格。 单元格纵向扩展时,左边纵向扩展单元格缺省为它的左主格,右边单元格缺省 为它的附属格;如果左边没有纵向扩展格,则左主格缺省为o 格。 3 3 5 坐标设计 3 3 5 1 层次坐标 在进行报表设计时,单元格尚未进行扩展,但是其它某些单元格的表达式往往 需要对这个单元格扩展后的单元格进行精确定位并运算。然而扩展格能扩展出几个 格子以及每个格子在什么位置,在扩展前很难描述,为了避免混淆,这里对扩展后 的每个单元格进行唯一性定义,就是单元格的层次坐标。 层次坐标是用于唯一描述( 精确定位) 扩展后的每一个单元格的表达式。 层次坐标的运算结果返回目标单元格。如果层次坐标能够定位到一个单元格, 那么返回该单元格的值;如果定位到多个单元格,那么返回这些单元格中的第一个 单元格的值。 表达式规则如图3 2 所示: l o 华北电力大学硕+ 学位论文 垄建鱼一= l 兰耋遵 。 i ,- i ,“、 :k k l l :l l :黾:沁讯:t k a 。t l :t l 】 分缱荤元格碉扩震荤元格扩攫矮的次序即扩晨瑟的第死个单元格 分组革元络,霹扩展摹元格 爨标摹元络,疫缓为k ,k 如l l 鳃辫属蘼元捂 图3 2 层次坐标表达式规则 说明: 1 、l k 为c e l l x 的左主格,l k 为左主格扩展后的次序,即扩展后的第几个单元格, 如果不指定l k 或者l k 为0 ,则表示为当前表达式所在单元格所属的当前左主格,c e l l x 为目标单元格,应该为l k ,l k 1 ,l l 的附属单元格。与之类似,t k 为c e l l x 的上主格, t k 为上主格扩展后的次序; 2 、如果只有上主格,没有左主格,分号不能省略,应该写成: c e l l x ;t k :t k ,t k i :t k 1 ,t l :t l 】 如果只有左主格,没有上主格,分号可以省略,可以写成: c e l l x l k :l k ,l k 1 :l k i ,l i :l l 】 3 、l k 与t k 的次序是从远到近的,也就是说越上级的主格越靠前。而找到层次 坐标所表示单元格的次序是从最上级的主格开始; 举例:c l 【a l :2 ,b l :1 】找c 1 的次序是:先找单元格a 1 展开后的第2 格,再找 第二个a l 下属的b l 单元格扩展出来的第一个b 1 ,然后找到和该b l 对应的c 1 。 4 、完整的层次坐标表达式应该包括c e l l x 的所有主格,层次坐标与写在哪个单 元格中无关。 3 3 5 2 位移坐标 大部分时候报表设计者并不知道目标单元格的具体位置,仅仅知道目标单元格 相对于当前单元格的位置,基于这种考虑,这罩给出了位移坐标,从而层次坐标更 多时候成了模型上的意义,而非应用上的意义。 位移坐标是用来描述目标单元格和当前格之问的位置关系的表达式。 表达式规则如图3 3 所示: 图3 3 位移坐标表达式规则 说明: 1 、l k 为c d l x 的左主格,l k 为单元格的偏移量,即当前格所属的l k 主格和目 标格所属的l k 主格之间的偏移量,如果不指定l k ,则表示为当前所在的左主格l k , c e l l x 为目标单元格,一般为l k ,l k 1 ,l l 的附属单元格; 2 、如果没有左主格,只有上主格的话,分号不能省略,应该写成: c e l l x ;t k :+ t k ,t k i :士t k 1 ,t i :士t i 】 3 、如果没有上主格,只有左主格的话,分号可以省略,可以写成: c e l l x l k :+ l k ,l k 1 :士l k 1 ,l i :士l l 】 3 3 5 3 根坐标 报表有个首格( 根格) ,报表中的扩展单元格是逐级扩展的,有主格、附属格 的概念,呈树状的结构,而根格则是这棵树的根。如图3 - 4 所示: 图3 - 4 根格扩展示意图 1 2 华北电力大学硕士学位论文 由图3 4 可以看出,单元格逐级扩展后实际形成了以根格( 报表首格) 为根的 一棵树,报表中存在多片独立扩展,那么根上就长出多棵树,每一个可主动扩展的 格子都是树上的一个结点,最末一级的不可扩展格则是结点上的叶子。而层次坐标 相当于描述任意一个结点或者叶子到达根的路径。 由于根格是客观存在的,而树上的所有结点都是由根格发展而来,因此前面介 绍的层次坐标忽略了根结点的描述,如果加上根坐标的描述,层次坐标的表达式规 则为:c e l l x 0 ,l k :l k ,l k i i k i ,l l :i l ;0 ,t k :t k ,t k q :t k i ,t l :t i 】。 从上面的层次坐标可以看出,完整的层次坐标是从根上开始的。 3 3 6 格集 在实际应用中,往往需要对一组单元格进行运算,而不是单个单元格。这些单 元格有可能是固定格,也有可能是主动扩展、被动复制格,为了能在表达式中描述 确定的一组单元格,这里引入格集的概念。 3 3 6 1 格集 格集是满足某种条件的一组单元格的集合。特别的,单个单元格可当作仅含 个单元格的格集。 3 3 6 2 固定格的格集表示法 对于固定单元格的格集,可以用l i s t ( ) 函数操作符来表示。 表达式规则为:l i s t ( c e l l l ,c e l l 2 ,c e l l 3 ,c e l l n ) ,表示由c e l l l ,c e l l 2 , c e l l 3 ,c e l l n 组成的单元格的集合。 也可表示成:l i s t ( c e l l x :c e l l y ) ,其中c e l l x 与c e l l y 均为单元格,该表达式表 示以c e l l x 与c e l l y 为对角点圈起的矩形区域,c e l l x 在左上角,c e l l y 在右下角。 3 3 6 3 扩展格的格集表示法 扩展格的格集一般与层次坐标或位移坐标结合起来,由坐标来界定一个范围, 在这个范围内的所有单元格的集合。 其书写规则为:c e l l x 层次坐标或者位移坐标 ) 格集相当于在层次坐标或者位移坐标的基础上增加了 ,。如果没有 ) ,当坐标 界定的范围内的单元格不止一个时,该坐标返回的足该范围内的第一个单元格,有 了 ) ,就返回该范围内单元格的集合。 华北电力入学硕士学位论文 3 4 本章小结 本章从理论的角度介绍了非线性报表模型,包括非线性报表模型的概念、非线 性报表模型的研究内容、非线性报表模型的设计等。非线性报表模型以单元格作为 整个理论的核心,针对多源分片报表、不规则分组报表、动态格间运算报表和行列 对称报表而设计。非线性报表模型由展现模型、数据模型、扩展模型、主格模型和 坐标模型组成。 1 4 华北电力人学硕士学位论文 第四章报表工具的设计与实现 本文的报表工具是基于非线性报表模型设计的,用户要求报表工具能够提供友 好的报表模板定义界面、报表数据定义能力、快速的报表计算能力和报表输出能力。 4 1 报表工具的整体设计 基于非线性模型的报表工具的整体结构如图4 1 所示: 图4 1 报表t 具整体结构图 从图4 1 可以看出基于非线性模型的报表工具由数据层、中间层( 语义层和不 规则分组层) 、报表设计器、报表引擎、报表输出五大部分组成。其中: 数据层为报表提供数据来源; 中i 、日j 层定义语义规则和不规则分组表达式,生成语义层x m l 文件和分组 规则x m l 文件; 华北电力大学硕士学位论文 报表设计器用来设计报表模板,可以基于语义层文件或分组规则x m l 文 件定义报表模板,也可以直接基于数据源定义报表模板; 报表引擎对报表模板进行解析、计算和生成报表; 报表输出把报表引擎计算出的报表按用户指定的格式输出。 4 2 数据层的设计与实现 4 2 1 数据层的设计 数据层负责从数据源中获得数据,传给报表设计器设计报表模板。报表中的数 据可能是多数据集的,基于s q l o l a p 理论设计的报表工具只能处理单个数据集, 如果遇到多数据集的情况,需要编写代码把多数据集转化成单数据集【捕1 ,如图4 2 所示: 回吕口 图4 2 传统报表工具多数据集处理示意图 图4 2 所示的多数据集处理方式需要把多个数据集连接成一个数据集,连接运 算极大的占用了c p u 资源,很多时候会导致数据量大大增加,对内存的占用也随之 增加。如果报表的数据源非常复杂,把多个数据集转化为单数据集实现起来相当困 难,有时可能无法实现。 本文基于非线性模型的报表工具中处理多数据集的报表时并不把多数据集转 化成单数据集,而是直接基于多数据集制作报表,如图4 3 所示: 1 6 - 司 口口曰曰 华北电力大学硕士学位论文 曰昌口 曰昌口 亩墨口 图4 - 3 非线性模型报表工具多数据集处理示意图 4 2 2 数据层的实现 报表中的数据可能来自于复杂的数据源。那么如何从结构各异的数据源中获得 数据结构统一的数据呢? 本文在数据层设计了如图4 4 所示的数据源模型: 图4 - 4 数据源模型结构图 图4 - 4 数据源模型的核心思想是在编制数据源复杂的报表时,忽略各种数据源 之问的差异 1 9 1 。对于数据文件作为数据源的情况采用文件流的形式来处理;对于关 1 7 华北电力大学硕 系型数据库作为数据源的情况采用j d b c 来 外提供统一的数据访问接口,采用统一的数 差异。 4 3 语义层的设计与实现 4 3 1 语义层的概述 利用传统的报表工具设计报表时,用户直接操作数据源,一方面用户需要学习 数据源的专业知识,编写复杂的表达式,书写复杂的s q l 语句;另一方面直接操 作企业数据,给企业的数据信息带来了安全隐患。为此在基于非线性模型的报表工 具中引入了语义层。 在语义层中定义数据模型,此模型封装了数据源中的技术细节,例如:数据库、 表、视图、s q l 、存储过程以及它们之间的关联等等。语义层并不包含数据,是一 层建立在数据源之上的业务逻辑层。语义层数据模型由专业的技术人员设计制作, 完成其中的各种表、视图、关系等的设定,把复杂的数据库结构描述成易于理解的 业务术语。用户在报表设计器中基于语义层设计报表,只需简单的拖拽语义层元素 即可,不需要书写复杂的s q l 和编写复杂的表达式。语义层的结构如图4 5 所示: 、 报表设计器f , 报表模板定义 彳、 弋夕 厂、 语义层f视图定义编辑风格定义变量定义 、 彳 弋夕 ( 圄国田吲 图4 - 5 语义层结构图 从图4 5 可以看出,语义层位于报表设计器和数据层之间,数据层为语义层建 立的数据模型提供数据来源;在语义层中建立数据模型,模型中包含视图的定义、 编辑风格的定义、变量的定义;在报表设计器中基于语义层数据模型定义报表模板。 4 3 2 语义层的实现 语义层数掘模型对底层数据源进行封装,屏蔽数据源的技术细节,以通俗易用 元组: s d m = ( s e m
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 涂料调配工综合考核试卷及答案
- 电机定子防氧化工艺考核试卷及答案
- 森林树种改良与土壤改良工艺考核试卷及答案
- 租赁业务员基础考核试卷及答案
- 2024-2025学年广东省深圳市育才三中七年级(下)开学英语试卷
- 新医科视域下口腔医学继续教育课程思政建设:现实困境与路径策略
- 药物制剂技术期末试题及答案
- 特种设备安全法及场厂内专用机动车辆使用规定知识试卷
- 绿化专业考试试题及答案
- 机械专业钳工试题及答案
- 2025年全国企业员工全面质量管理知识竞赛题库及答案(共90题)
- 2025年度融资租赁居间服务合同
- 《隐私保护技术》课件
- 花坛景观设计59课件讲解
- 大一开学新生的安全教育
- 2024天津市非全日制用工劳动合同书(官方范本)范文
- 浙江财经大学《统计学》2023-2024学年第一学期期末试卷
- 2023年度新增学位授权审核分析报告
- 医疗机构信息系统安全防护预案
- 汽车维修质量管理及质量保证期制度
- 广州数控GSK 980TDc车床CNC使用手册
评论
0/150
提交评论