采用Informaker和pbl中dw相结合的方式实现强大的自定义报表功能

    做过大型系统的人应该都有这个体会,就是客户对报表的要求各异,而且中国式报表统计的要求都很高,不是一般的自定义报表软件能够实现的.一般大项目的报表工作量,往往占用了整个项目时间的50%以上,对报表的高要求,往往导致了两个结果:

    一个结果是做一个功能强大的自定义报表系统,可以让用户自己定义,OK!真是好想法啊,不过有疑问了,这个和pb的数据库画板有什么区别呢?而且需要花费很大精力,肯定做不了pb那么好.

    另外一个相反的结果就是应客户的要求不断的做报表,不断的编译程序,更新程序.当然随着项目做多了,可以推荐用户使用某些报表模版,但是也只能解决部分问题.

    我考虑了一下,为什么不利用pb的强大的报表功能呢?pb不是有informaker吗?

    大家看我的分析:

  自定义报表可行性分析

       做一个有强大功能的自定义报表很不容易,其必备的一些要求如下:

1.       功能足够强大,能够满足用户的绝大部分需求;

2.       操作方便性,为了实现某个目的,能够比较方便快捷的操作;

3.       能够比较方便的结合目标系统,使系统不需要大改动就可以使用;

4.       用户学习方便;

5.       开发工作量小,能够利用现有报表和查询资源;

        

       根据以上的要求,有4种方法备选:
     (评分为每点一分)

1.       用pb写datawindow,这种方法还不如用informaker,因为informaker功能简单,同时可以满足查询和打印格式配置的要求。

2.       直接用informaker做需要的datawindw和form,然后编译为exe,直接执行。
优点:功能强大;目的系统不需要修改;操作还是比较方便的;开发工作量小;能够利用现有的报表和dw(尤其是复合式报表)
缺点:英文开发界面;英文运行界面;学习开发有难度;用户权限不好控制;
评分:5-4=1

3.       用自己开发的自定义报表
优点:权限比较容易控制;用户学习使用应该比较容易;任何目标系统结合的相对比较好;
缺点:功能上不可能很强大;操作方便性有欠缺;开发工作量大;无法完全利用现有报表,尤其是非grid,freeform报表,比较突出的是复合报表和价签打印的label报表,有一些复杂功能不能使用,比如分组,合并等。
评分:3-4=-1

4.       用汉化后的informaker写的pbl结合系统配置
优点:功能强大;操作方便;开发工作量小;目的系统相对改动也小;权限也可以控制;能够完全利用现有的报表和数据窗口;
缺点:用户学习开发有一定难度;版权问题;
评分:6-2=4

 

  从以上可以看出,用informmaker实现写datawindow应该是可以的,比较方便的。因为

  informmaker功能相对于pb来说还是简单的,删除了很多功能。只要能够在系统内比较方

  便的做一些配置工作,甚至是对informaker的功能进行部分屏蔽和简化,汉化informaker

  帮助,应该可以简化用户的学习,能够实现上述提出的所有要求。
 

 

  调用问题:

pbl中写好的报表如何被程序调用?首先利用getlibrary,setlibrary,可以将pbl包含到程序中,那么其中的对象就可以调用了.

 

    那么怎么调用新建报表的新取的名字呢,这个就需要定义一个表(其中包含模块名和pbl中报表对象名的一对多的关系),通过另外做的一个配置窗口,应用程序中可以将程序模块和pbl中的报表名联系起来,从而可以随配随改.

 informaker汉化:

    汉化工具我推荐ML,我花了不到3天时间曾经将informaker汉化好了,不过后来硬盘格式化,忘了备份出来了.其实没有什么难度,主要是细心,多试.

    希望我的想法对大家有所帮助.

猜你喜欢

转载自blog.csdn.net/daixf_csdn/article/details/173195