2011年12月29日 星期四

CrystalReport On Winform

最近在公司做了一個產生報表的功能,要使用CrystalReport來產出報表,累積了一些心得,在此做記錄

1.多張Table間的Join最好提前完成,不要交給CrystalReport來做,在大量資料下,產生報表時所需的時間會有顯著差別。
2.CrystalReport在產生預覽報表時,會佔住WinForm本身在繪制畫面的Thread,把畫面鎖住,這是一個很不好的地方;如果是大量資料的情況下,會需要等很長一段時間,目前還沒找到辦法把它產生預覽報表的行為拉到別的Thread去做,所以暫時把產生預覽報表的功能拿掉,直接出報表檔

2011年11月18日 星期五

RDLC VS CrystalReport

最近因為工作的關係,使用了這兩種報表,有一點小心得,來做一個簡單的比較

檔案格式
1.RDLC的報表檔是XML格式
2.CrystalReport的報表檔為Binary檔案

在開發時,在同一張報表檔,測試使用不同資料集的欄位,有可能會發生把報表檔給"玩壞"的情況,這時RDLC XML格式的設計就比較有優勢了,因為可以直接用文字編輯器打開它的報表檔,把內容裡多餘的資料集引用Tag拿掉,就可以恢復正常,但CrystalReport因為是Binary檔案,所以只能重開一個重新設計,這是比較麻煩的地方。

設計方式
1.RDLC有現成的表格物件可以使用
2.CrystalReport只有提供框線物件跟線條物件,要自已組合出表格的樣式

設計報表的時侯,通常都會要使用到表格,RDLC有提供現成的表格物件,比較方便一些。

以上述兩點來看,似乎RDLC是比較好的選擇? 但是如果要設計複雜性比較高的報表時,因為CrystalReport已經推出有一段時間,功能比較多元,較能應對複雜性較高的報表。

在Visual Studio 2010已不內建CrystalReport,應該是有意要全力發展自家的RDLC報表,擴充它的功能,不過以現在來說,還是CrystalReport比較強大。