基于OWC的柔性动态报表生成器的设计与实现_第1页
基于OWC的柔性动态报表生成器的设计与实现_第2页
基于OWC的柔性动态报表生成器的设计与实现_第3页
基于OWC的柔性动态报表生成器的设计与实现_第4页
基于OWC的柔性动态报表生成器的设计与实现_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第26卷第12期 2009年12月 计算机应用与软件ComputerApplicationsandSoftwareVol 26No.12Dec.2009基于OWC的柔性动态报表生成器的设计与实现郁 云 魏 瑾 杨 波 邵定宏21112(南京信息职业技术学院 江苏南京210046)(南京工业大学电子与信息工程学院 江苏南京210009)摘 要 针对当前大部分固定格式报表灵活性差、不能满足实际应用需求的不足,提出了基于OWC(OfficeWebComponent)的柔性动态报表生成器解决方案。首先根据报表中数据的变化情况将其归纳为静态报表和动态报表并抽象出两类报表基模板;然后以柔性软件的思想建立报

2、表模板知识库,使得用户可以自行依据报表基模板建立所需的报表而无需对代码进行调整;最后采用OWC设计了柔性动态报表生成器。基于OWC丰富的数据表达能力和编辑功能,极大提高了报表软件的易用性和柔性。关键词 柔性化 动态报表生成器 报表模板 OWCDESIGNANDIMPLEMENTATIONOFFLEXIBLEDYNAMICREPORTGENERATORBASEDONOWCYuYun WeiJin YangBo ShaoDinghong21112(NanjingCollegeofInformationTechnology,Nanjing210046,Jiangsu,China)(Collegeof

3、ElectronicsandInformationEngineering,NanjingUniversityofTechnology,Nanjing210009,Jiangsu,China)Abstract Becauseofthepoorflexibilityofthefixedformatreportformswhichcouldnotmeetthepracticaldemand,asolutionofflexibledynamicreportformsgeneratorbasedonOWC(OfficeWebComponent)isputforward.First,thereportfo

4、rmsareclassifiedtostaticanddy namictypesaccordingtothedatachangesinthereportandareabstractedintotwobasereporttemplates.Then,thereporttemplateknowledgedatabaseisestablishedbasedontheideaoftheflexiblesoftware,andthenewreportscanbegeneratedbasedonbasereporttemplatesbytheuserswithoutanyextracodingadjust

5、ing.Atlast,aflexibledynamicreportgeneratorisbuiltwiththeOWC.OnaccountoftherichexpressionabilityandeditingfunctionoftheOWC,theease of useandtheflexibilityofthereportgeneratoraregreatlyincreased.Keywords Flexible Dynamicreportgenerator Reporttemplate OWC性和易用性。0 引 言1 常见报表类型及实现方法随着数据库技术的日益发展,企业资源计划ERP(E

6、nter priseResourcePlanning)的应用越来越普及,这其中报表是ERP的重要组成部分。因为报表不仅是信息的重要表达形式,更是企业决策者了解企业运营情况并制定未来发展战略的主要依据,因此报表的方便性和灵活性成为评价ERP成功与否的重要标志之一1根据报表中数据的变化情况,ERP中常用的有静态和动态两类报表。静态报表直接从数据源表中选取特定的列按照一定的查询条件生成报表的内容,静态报表所涉及数据库中表的个数大于等于1,且通常当表的个数大于1时,各表之间存在主外键的约束关系;而动态报表往往报表格式(如报表头以及报表中的数据)同数据源表相比发生了变化。静态和动态报表最大的区别在于静态

7、报表可以直接用编程语言中的报表控件与数据源表做数据绑定即可,而动态报表通常需对数据源表进行处理和计算动态生成报表头以及报表内容。下面以一个简化的ERP中库存管理模块为例说明静态报表和动态报表的区别,该模块中包含物料报表、进货报表、领料报表和领料统计报表,各报表的内容如下:1)物料报表 数据源为物料表,包括物料名称、单位、库存收稿日期:2008-03-22。江苏省教育厅基金项目(04KJB520042。郁云,:CIMS。目前,常用的数据库开发工具如VisualBasic、PowerBuilder等都提供了多种多样的报表控件以满足用户对不同报表格式的需要,但当用户的需求如报表内容或统计要求发生变化

8、时,由这些报表控件生成的固定报表则无法满足需要,这无疑降低了系统的可用性,同时也增加了用户的使用难度和软件开发者的工作量。本文首先分析了ERP中常用报表的基本类型,根据报表中数据的变化情况将其归纳为静态报表和动态报表;而后根据这两种报表的各自特点,以VisualBasic为开发工具,结合Mi crosoftOffice中包含的OWC(OfficeWebComponent)控件集,设计了通用报表生成器模块并成功应用于某ERP软件中,克服了94数量等字段;计算机应用与软件2009年法构造统一的报表模板。为解决报表系统中不同类型报表模板上的差异性,本文提出报表模板知识库的概念。在该知识库中存放的是各

9、种不同类型的报表基模板,当用户产生新的报表需求而现有的基模板不能满足时,系统开发者可以通过报表开发平台设计新的报表基模板从而丰富报表模板知识库的内容,这体现了针对系统开发者的柔性。因此,本文报表生成器的设计思路和工作流程如图2所示。2)进货报表 数据源为进货表,包括进货日期、物料名称、进货数量等字段;3)领料报表 数据源为领料表,包括领料日期、物料名称、领料部门、领料数量等字段;4)领料统计报表 数据源为领料表,报表内容为各部门在某个时间段领取各种物料的统计。以上四张报表中前三张为静态报表,可以直接将数据源表与报表控件做数据绑定即可,之后从数据源表中按日期或其它限制因素筛选出数据纪录,最后按照

10、一定的分类或排序条件输出到报表容器中,这一类报表实现相对简单,用 数据库查询+显示 的方式即可生成相应报表;而领料统计报表为动态报表,其数据源表为领料表,报表头为部门名称,第一纵列为物料代码,而报表内容为某时间段内不同部门领料数量统计。针对这一类复杂报表,采用简单的 查询+显示 的方式很难实现,其报表格式如图1所示。图2 报表生成器工作流程2.2 报表基模板的构建报表基模板是对不同类型报表的抽象,实现报表的通用性和动态性。用户可以通过界面,针对各种类型应用,选择不同报表基模板生成相应报表。以本文所列举的简化库存管理系统为例可以从中提取出两类报表基模板,即简单报表基模板(针对制作静态报表)和复杂

11、报表基模板(针对制作动态统计报表)。针对静态报表可以由用户动态选择数据库和数据表,并提供若干限制因素选项,如时间条件、筛选条件以及分类排序条件、报表的输出字段等等;而针对动态报表除了可以由用户动态选择数据库和数据表外,用户可以根据需要选择统计报表的报表头和纵列字段以及统计类型,系统提供了求和、求平均和个数统计等三种统计类型,系统还提供报表预览功能,可以让用户大致了解所创建报表的大致格式和统计内容,此外系统内还添加了一些必要的检查机制,滤除掉一些没有意义的统计报表,保证系统的健壮性,系统运行界面如图3所示。图1 领料统计报表格式为此,本文设计了如下的领料统计报表生成方案:首先,从领料表中选出所有

12、的物料代码,去掉重复项,将其填入表格容器中的最左边的纵列;其次,从领料表中筛选出该月所有领料的部门名称,去掉重复项,将其填入表格容器的横轴;最后,根据纵列的物料代码和横轴的部门名称,用一个二重循环从领料表中计算出该月各个部门领用每种物料的数量并填入领料统计报表中。2 柔性动态报表生成器的设计2.1 设计思路文献2将软件的柔性定义为软件在保持基本特征不变的条件下,在外界的作用、刺激和驱动下,其形态能够进行平稳和协调变化的性质。在此基础上,该文将柔性报表的特征概括为针对用户和针对系统开发者的柔性,其中针对用户的柔性是指根据需要,用户可以依据系统提供的报表制作平台,自行设计报表格式及内容而无需修改软

13、件系统本身;而针对系统开发者的柔性是指系统开发者可以通过报表开发平台重新调整和组装可重用资源形成新报表系统以满足用户变化的需求。在这一指导思想下,本文进一步引入报表模板知识库和报表模板的概念,以丰富柔性报表生成器的内涵。报表模板的引入是由于用户定义的动态报表格式往往不只使用一次,因此用户可以将报表的字段信息、查询条件、格式等保存为模板以供下次使用,下次使用时可以直接使用,也可以稍作修改后使用,这样既能减少制作报表的工作量,又能保持报表格式的统一,这实际上体现了针对用户的动态报表柔性。由于用户所需报表类型,(a)静态报表 (b)动态报表图3 柔性动态报表生成器系统主界面2.3 关键技术(1)多表

14、组合查询 由于用户所需报表的数据有可能来源于多个数据表,为简化用户操作,本系统事先依据用户可能的需求,将多个表按照各表之间的联系(如主外键约束)合并生成为一个视图,而后用户将基于该视图动态选择所需数据生成相应报表。此外,使用视图作为报表数据源还有以下优点:a)由于视图是连接多张数据表的虚表,因而不占用物理存储空间;b)对第12期郁云等:基于OWC的柔性动态报表生成器的设计与实现 95不同级别的用户设定不同的视图以实现对机密数据的安全保护功能;c)当用户产生新的需求时,系统开发者只需按需生成相关的视图而无需对系统做任何代码修改,既减轻了开发者对系统的维护成本又强化了用户对报表系统的认同度。(2)

15、SQL查询语法处理 由于数据库中表名及字段名通常采用英文定义,为此本系统采用数据字典技术将数据库中的表名及字段名与一个中文名称作对应以方便系统用户在报表生成器中的操作;此外,由于动态报表的格式以及查询条件等均由用户自定义,而SQL对不同类型的数据又具有不同的语法格式,为此本系统定义了一个函数DataType用于对不同类型数据添加不同的连接字符串,其中针对文本型和备注型记录,数据项两边加引号,而对于日期时间型则加 # 号,对于数值型不作处理。图4 OWC动态报表显示界面3 基于OWC的通用报表生成器的设计3.1 OWC的特点VB平台下报表控件大致可分为VB自带报表控件和第三方应用软件两类3,4。

16、VB自带报表控件如DataReport一般采用数据绑定的报表模式,缺少灵活性,当用户报表格式发生变动时往往报表维护工作量巨大;第三方报表软件如CrystalReport er、Flexcell等虽然功能强大,但存在着与现有系统的集成以及操作相对复杂等缺点,并且第三方软件多数需要购买,大大增加了用户的负担。MicrosoftOffice中的Excel具有强大的表格处理能力,适合制作各类报表且使用方便,一般企业管理人员均接受过相关培训,同时Excel也是目前绝大多数企业制作报表的首选工具。鉴于此,本系统采用MicrosoftOffice中的OWC(OfficeWebComponent)控件集作为报

17、表控件。OWC具有丰富的数据表达能力,用于为多种控件容器提供交互式的电子数据表模型、数据库报表与数据可视化服务,OWC控件集包括图表控件(Chart)、透视表控件(PivotTable)和工作表控件(SpreadSheet),具有各种强大的数据展示和分析功能5。系统用户既可以像在Excel里一样编辑由OWC控件生成的报表,如插入行列、排序、设置单元格格式、属性等等,又可以将整张报表输出到Excel中进行后期制作。除此以外,OWC还能在内存中作为不可见对象使用,从而可以支持在服务器内存中往OWC控件中填写数据而仅在客户端显示具体的报表内容,而大多数其它报表控件只能作为可视控件使用。工作表控件(S

18、preadSheet),之后就可以利用其属性和方法编程。Spreadsheet将报表中的每个数据项称为数据单元(Cell),从数据表读出的数据可以很方便地放入这些数据单元中,图4所示为采用SpreadSheet生成的一个动态报表实例,其报表内容为各部门月度领料统计。3.3 系统特点(1)柔性动态报表生成器提供了友好的操作界面,通过将分散在各个模块中的报表进行分析其数据组成,抽象出几个不同的报表基模板,而后用户可以根据不同的需求在这几个报表基模板上派生出所需报表,同原有固定格式报表系统相比,大大降低了系统的开发强度,同时统一的报表生成器界面也提高了系统的易用性和灵活性。(2)采用OWC报表组件实现了应用软件和用户办公软件的集成,借助Excel软件的强大格式编辑功能,可实现任意复杂的数据报表,而无需对报表软件做任何修改,增强了用户对系统的认同度,同时也降低了软件的维护成本。4 结束语报表作为ERP的一个重要应用贯穿整个系统的各个组成部分。本文依据动/静态报表各自特点,给出了构造柔性动态报表生成器的方法,所开发的报表生成器目前已经与国内某机械制造公司ERP软件集成一并交付使用,解决了传统ERP系统中固定数据报表的缺点,在不增加额外开发和维护升级的前提下,用户可以根

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论