基于组件的报表自动生成系统的研究与实现

时间:2022-10-01 07:41:42

基于组件的报表自动生成系统的研究与实现

[摘 要]近年来,基于组件的报表自动生成系统的研究与实现得到了业内的广泛关注,研究其相关课题有着重要意义。针对传统信息管理系统(MIS)中的报表处理系统缺少灵活性、不能自动生成等不足,提出了一种基于组件技术的开发思想,并在此基础上研究和开发出一个报表自动生成系统,在实际应用中收到了较好的效果。

[关键词]基于组件;报表自动生成;系统;实现

中图分类号:TP311.52 文献标识码:A 文章编号:1009-914X(2017)13-0161-01

1 前言

现有的大多数企业信息管理系统中的报表系统大多存有以下局限和不足:不能实现报表的自动生成,报表格式和数据内容都需要人工输入、校正;只能满足单一类型或格式的报表生成、处理功能,一旦要增加其它的报表类型(如增加一个财务报表、统计报表等)则必须重新改写系统代码,带来系统扩充困难、成本大等问题;报表定义的工作非常繁琐,且不直观;缺少灵活性,不能很好地实现报表重用。为解决上述问题,研究设计一种应用于企业信息化管理系统集成环境下的报表自动生成系统具有十分重要的理论和实际意义。

2 报表自动生成系统的设计

2.1 报表自动生成的流程

根据以往设计开发ERP系统中报表处理系统的经验和对各种不同类型报表的分析结果,我们归纳出报表自动生成流程基本上是这样的:①用户提出需要生成的报表需求(包括报表类型、样式、属性特征和数据源等);②描述用户需求使其成为报表系统能够识别的语言格式(图形或文本);③根据用户需求,系统定义好表头和报表格式等参数;④根据用户需求,系统自动从应用数据库取出相关报表数据源并自动填充到报表中的相应位置;⑤系统自动生成报表并输出(包括打印输出和集成输出到常见办公软件如Word等)。

2.2 对报表的划分处理

通过对各种不同的报表进行分析,我们发现无论什么类型的报表,无非是由文字、图片、数据、线段和表格等元素组成。因此,为便于系统处理报表,我们将一张报表的各部分元素进行划分处理,使其成为数据格式存在数据库中。

2.2.1 表头区:任何一张报表都包含表头和表底端部分,其内容主要是报表标题、制表部门、日期、备注等报表相关的文字或图片说明信息。我们统一把这些相应内容划分为表头区。

2.2.2 表格线区:即线段区,报表中的表格可以拆分为一条条的线段,可以是横线、竖线或者斜线等。一条条线段组合起来构成了报表的框架。

2.2.3 域区:我们把横线段和竖线段的交点及边界连线围起来的区域称作“域”(即我们常说的表格中的单元格)。域中所包含的内容可以是多种格式,如文本、图片和从数据库中取出的数据,甚至可以是子表。域和域的数据之间还可以互相关联,可以有着计算或者平衡等相互关系。

2.2.4 报表数据区:是从相应用户数据库中取出的自动填充到相对应的域中的报表数据。通过这样的划分处理,任何一张报表都可以由这样几个区域来表示,只需要分别定义描述这几个区域的各种属性,就可以达到对整个报表进行处理、自动生成的目的。

2.3 基于组件技术的系统开发设计思想

在分析报表自动生成的流程特点和对具体报表进行划分处理的基础上,我们觉得,采用基于组件技术的开发模式来设计实现报表自动生成系统,是一个比较方便可行而且符合系统集成需要的途径。组件技术不但能够简单实现不同组件之间的互相调用,而且能够在最大程度上实现组件重用,提高系统的效率和代码利用率。利用组件技术,需要实现的报表自动生成系统的功能,则可以通过调用报表定义、报表生成、报表数据运算、报表输出等组件从而轻松完成。

3 基于组件的报表自动生成系统的实现框架

3.1 数据库

数据库用来存储整个系统需要用到的各种数据,其中包括:应用数据库:主要用来存储应用系统有关的各种数据,如库存数据库、销售数据库等,是各种报表的直接和间接数据源。

报表数据库:通过对报表的划分处理将报表存成数据库格式,报表各部分属性特征存入相应的各种数据库,如表头特征库、运算公式库、线段特征库等。

报表模板库:对于一些格式固定或者变化很小的报表,系统可以将其报表格式做成报表模板存入模板库中,已备下次直接调用。

3.2 底层组件

报表自动生成系统的底层组件是封装实现报表自动生成功能的最基本的功能组件,报表的定义、生成、修改以及相应的公式运算都是通过高层组件调用这些基本底层组件来实现的。主要包括报表格式、表头定义组件:用以实现报表格式和报表表头的用户定义,做成一个可视化图形界面,以方便用户任意定义报表格式和报表表头的样式,包括表头字体大小、颜色、粗细等属性。

报表属性特征定义组件:主要用来定义描述报表划分后域的相关属性以及线段的相关属性。域的相关属性特征包括域中的字体特征、对齐方式、域中内容的起点和终点坐标(x,y)、数据类型等属性;线段的相关属性特征包括线段的起点和终点坐标(x,y)、线段的粗细、颜色、虚实等属性。

3.3 高层组件

用户通过用户端向系统发出报表需求,用户端组件再进一步调用高层组件,而高层组件则通过集成底层组件所提供的各N功能来满足用户的需求,从而达到报表自动生成的目的。由于高层组件可以根据用户的需求来修改和定制,并且又可以随意调用基本的底层组件,所以在最大限度上实现了代码重用,保证了系统的灵活性和重构功能。高层组件主要包括报表定义组件、报表生成组件、数据运算组件和异常处理组件。

4 结束语

无论是在报表系统还是在其它企业信息管理系统、ERP系统的设计开发中,如何降低重复编码的工作量、尽量实现系统重构和再生功能无疑都是一个倍受关注的问题,而基于组件技术的开发模式则为我们解决这一难题提供了一个新思路。组件技术的灵活性、重用性和可集成性都为其使用前景提供了有利的条件。如何将组件技术更广泛地应用到各种集成系统中,从而提高整个系统的扩展性和可维护性,值得进一步的研究。

参考文献

[1] 刘艳平,俞海英,戎沁.Python模拟登录网站并抓取网页的方法[J].微电脑应用.2015(1):58-60.

[2] 李东来,宛玲,金武刚.公共图书馆信息技术应用[M].北京:北京师范大学出版社,2013(1).

[3] 梁勇.Python语言程序设计(英文版)[M].北京:机械工业出版社,2013.

上一篇:SMA型水密封连接器的研制 下一篇:袋式除尘器反吹清灰系统结构优化设计