1. 程式人生 > >採用Informaker和pbl中dw相結合的方式實現強大的自定義報表功能

採用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漢化好了,不過後來硬碟格式化,忘了備份出來了.其實沒有什麼難度,主要是細心,多試.

    希望我的想法對大家有所幫助.