TA的每日心情 | 慵懒 2015-1-8 08:46 |
---|
签到天数: 2 天 连续签到: 1 天 [LV.1]测试小兵
|
报表是成功的MIS系统中的一个不可或缺的部分。对于用户而言,他们为了数据分析的需要而希望能够对报表格式进行一定程度上的定制并且能够对报表中的一些统计数据进行多角度的追踪分析。而对于开发商而言则希望报表能够易于开发、维护与修改。但报表本身存在着形式多变以及数量庞大等问题,使用传统的开发工具(如PB、DELPHI等)编制出来的报表基本上都是静态的、不可修改的,故很难满足以上几方面的要求。因此报表就成了MIS系统的开发与推广过程中的一个一直很令人头痛的问题。笔者从事MIS系统的研发工作多年,在开发湖南省电信本地网计费系统过程中,经过反复思索,最终找到了一个此问题的比较完善的解决方法。具体实施分如下三个步骤进行:
1、构建专用于报表统计分析的数据仓库
2、利用BO进行具体报表的开发
3、对报表进行灵活权限控制
一、构建专用于报表统计分析的数据仓库
由于本地网计费系统中主表的数据量非常庞大(一个月就有几千万条数据),所以我们如果直接从主表统计数据形成报表,就会使某些报表的统计速度令人难以忍受,有时一个复杂报表的统计会耗时数小时才能显示出统计结果。为了解决这个矛盾,我们通过与用户调研,发现用户所需报表的指标总集基本上是不变的。通过精心设计,我们将所有指标分类形成几个中间表,从而构建成专用于报表统计分析的数据仓库。由于数据仓库中的指标数据已经经过了一些复杂汇总计算,所以数据量相对于主表而言呈指数级减少,从而很大程度地提高了报表的统计速度。当然,将数据倒入数据仓库时也将会有比较大的时间开销,但与原来比较,这种时间开销是很小的。这是因为原来每次统计每张报表都需要很长时间,而现在只需一次比较长的时间将数据倒入数据仓库,以后统计各张报表时都会很快显示出统计结果。
二、利用BO进行具体报表的开发
我们构建了数据仓库之后,主要解决了报表统计的速度问题,接下来需要解决的问题就是如何开发出一套比较灵活的报表,能在满足用户各种要求的基础上尽量减少我们以后对报表进行维护的工作量。经过反复比较,我们选择了BO(Business Objects)来作为我们的报表开发工具。这主要是因为利用BO编制的报表与用传统工具(如PB、DELPHI等)编制出来的报表比较,具有以下优点:
1.用户可以对报表进行一定程度上的定制与修改。
2.报表与统计图之间可以互相任意转换。
3.报表可以对疑问数据进行一定层次内的追踪分析。
4.报表可以存为多种格式,可以被用户在WORD文档中引用。
5.用户是使用日常术语来访问数据,从而可以取代开发商自行进行一些日常维护。
6.报表可以方便地自动进行各类汇总计算与分组排序。
基于以上几点,我们开发出来的报表基本上能够完全满足用户对报表提出来的各种要求。
三、对报表进行灵活权限控制
开发完所有的报表后,用户提出了对报表进行权限控制的要求,要求不同的用户只能统计分析自己权限范围内的报表。由于BO本身不具有这种细化的权限控制功能,我们必须想其他方法来对报表进行权限控制。为此,我们经过反复思索,最终提出了“动态菜单权限控制”的思路。我们利用PB或DELPHI开发一个权限控制界面,将所有报表上载到数据库中,并将报表名称设置成菜单项,每个菜单项对应一张报表,根据用户的登陆信息动态设置该用户的报表菜单项,这样每个用户都只能看到属于他自己权限范围内的报表。在用户点击报表菜单项时自动下载并打开对应报表,在用户退出系统时再将用户所下载的报表从本机删除,这样就实现了对报表的严格权限控制,满足了用户的需求。
通过以上步骤,我们最终比较完美地解决了MIS系统中灵活报表的开发问题。笔者在湖南省电信本地网计费系统的开发过程中使用该方案设计完成的报表系统在湖南省郴州市本地网开局时受到了用户的一致好评。 |
|