rave report的使用感想

上個禮拜,公司簽了一個新客戶,他們要求在我們在summary報表假如更多的交易類型。我們的系統采用的是rave4.0,報表的layout(rave文件)存放在數據庫中,使用時,用存儲過程獲取數據,然後填充到報表文件中,用戶就可以浏覽打印。整個過程很簡單,可沒想到,這就是我惡夢的開始。

首要的問題,是這個報表原始設計一塌糊塗,有大量的運算不是在存儲過程中完成,而是在report裏完成,而rave4.0提供的運算符功能極其簡單,只能支持二元運算,稍微複雜一點的運算表達式都會牽連出一大堆的中間運算符和臨時參數。當初的設計者把所有的參數都設成爲project parameters,而且命名毫無規則可言,使得整個運算邏輯表達得像一鍋粥。打個比方,我在報表的底部看到一個AdjustdeValue的顯示字段,一看屬性,是來自一個叫做AdjustedValuePG1的參數,但是這個參數是怎麽算出來的呢?你不知道,你只知道它是一個project parameter,好,這就是說,我得浏覽項目中的所有運算符的destination parameter,運氣好的話,找個十幾二十次就能找到,找到以後才是第一步,因爲這個運算符的兩個運算元素又是兩個參數,好,繼續重複第一步,就這樣,重複在整個報表項目裏scroll了半個小時,你發現原來這個adjustedValue是來自于一個5個變量的四則混合運算表達式。這算是運氣好的,但是rave還提供了在程序裏設置這些參數值的函數,比方說,我發現一個temp1的參數,我遍曆了大大小小100多個運算符不止一次以後,終于發現原來這個參數是在程序裏面設定的。雖然說這個設計問題主要責任在當初的設計人員身上,但是rave4.0小兒科的運算功能和及其簡易的內部結構也是一個重要誘因。

其次,rave4.0的界面非常不好用,最簡單的例子就是,在對象屬性框裏居然不支持Ctrl+C和Ctrl+P,簡直荒謬。而且,整個界面無法體現出個個元素之間的關系,也沒有提供能夠快速訪問相關元素的功能,所有的浏覽只能手動在整個項目結構書中一點一點尋找。

在花了3天時間搞清楚了大部分運算邏輯以後,我決定把整個report推倒重來。這是我第一次從頭設計報表,但是經過這段時間的琢磨,我覺得報表設計需要遵循幾個原則。

1. 我認爲rave只適合做純粹的格式控制,所有的數據都必須在調用報表之前准備好。(事實上,我認爲所有的報表設計都應該這麽做,必須用某種方式把運算邏輯和格式控制分離,否則,一旦需要更換報表組件或者調整運算邏輯,後繼人員將會花費大量的時間來pick up)

2. 元素命名一定要遵循某個統一規範,這個更是軟件開發各個環節需要遵循的一大基本規則,基本上,在這一條上屢教不改者,就可以考慮直接fire了。因爲這種人在團隊中待的時間越長,給整個團隊開發帶來的危害就越大。

3. 報表要具備一定的擴充能力,像我對付的那個報表,因爲當初只支持兩個類型,竟然在所有求和的運算中都用加法運算符代替了求和運算符,結果,一旦要增加一個新類型,就必須重做所有的求和運算。而事實上,如果能很好地做到第1部分,第3部分的是現實不費吹灰之力的,與在rave中相比,在程序代碼或者存儲過程中修改一下計算邏輯簡直就是天堂裏的工作。

我承認,這幾天我遇到的問題不完全是rave的問題,裏面有大量的原始設計問題,但是,rave仍然給我留下了很差的印象,我想,如果以後我有選擇,我是不會再碰rave了。

 
Rave Report中文版插件 V0.1
Rave Report中文版插件 V0.1 downto 說明:這個控件因爲自己做了一個項目,需要用到報表,由于是用Delphi7開發的,所以就想到用Rave做,但是Rave打印設置及預覽窗口是e文,所以就寫了一個Rave的中文插件。或許功能還...查看完整版>>Rave Report中文版插件 V0.1
 
Delphi 7 中使用RAVE報表(六)
Delphi 7 中使用RAVE報表(六) ——和數據庫連接的報表(2) 在Delphi 7 中使用RAVE報表(五)中講解了和數據庫連接的報表,有朋友提出了問題,所以在用一篇文章講解使用Query動...查看完整版>>Delphi 7 中使用RAVE報表(六)
 
Delphi 7 中使用RAVE報表(四)
Delphi 7 中使用RAVE報表(四) ——利用程序設計一張報表 上一篇向大...查看完整版>>Delphi 7 中使用RAVE報表(四)
 
使用Data Report打印查詢結果
如果我們想把查詢結果打印出來,那麽我們經常用到Data Report,在這裏我說的是直接用記錄集rs給Data Report設數據源。爲了快速將查詢結果中的字段加入到Data Report,我們先來建一個DataEnvironment1,設置好DataEnv...查看完整版>>使用Data Report打印查詢結果
 
使用 Crystal Report 9.2 制作報表模板
使用 Crystal Report 9.2 制作報表模板李經通 日期版本描述備注2004-3-170.1使用 Crystal Report 9.2 制作報表模板等新建 一、 Crystal Report 9.2 的安裝 ·Crystal Report 9.2 簡體中文版·打開光盤,進...查看完整版>>使用 Crystal Report 9.2 制作報表模板