轉帖|使用教程|編輯:龔雪|2017-01-20 14:58:57.000|閱讀 242 次
概述:
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
在開發程序時,不可避免會涉及一些報表內容。如果是Winform的報表, DevExpress控件組的XtraReport和微軟的RDLC報表使用頻率都相對較高。本文主要介紹這兩種不同類型報表的使用,以及對比它們的差異性,僅供參考。
一、 DevExpress XtraReport使用體驗
1. 報表界面展示
2. 創建新報表 為了實現這個報表模塊,先使用VS的工具創建一個報表組件對象。
在使用前,需要設置好報表組件的各個顯示模塊,報表上下空間部分(TopMargin/BottomMargin),這兩個部分用來調整上下的邊線的;
然后每個報表有頭部內容和底部內容的區分,ReportHeader一般用來放置表格頭部字段顯示的,明細的內容包括展示列表的明細信息。
3. 設計報表控件和數據源管理
在VS左邊的工具箱里面有響應的XtraReport控件,拖動到報表界面里面就可以進行繪制設計了。
4. 特殊字段的處理
在報表的設計過程中,我們一般會碰到各種不同的字段,它不是簡單的文本信息,可能是日期,也可以是統計值,計算值等。打印時間,只需要增加一個XRPageInfo,然后設置里面的值就可以了,這個有點類似RDLC的參數值。而記錄數的統計設計如下所示,主要是通過千制的方式顯示,調用Count函數處理。
同樣,總公里數,是統計整個報表里面記錄的公里數操作,調用SUM函數處理。
設計好Xtra報表后,我們就可以程序里面,直接調用進行加載處理即可,代碼如下所示。
private void PrintReport() { string where = GetConditionSql(); List<CarApplyInfo> list = BLLFactory<CarApply>.Instance.Find(where); FrmHistoryReport report = new FrmHistoryReport();
我們主要獲取數據源,并綁定數據源到對應的報表組件上,然后調用ReportPrintTool 進行展現即可,代碼非常簡潔,只是設計過程麻煩一些。
二、 RDLC報表使用體驗
1. 報表界面展示
2. RDLC的設計效果
由于RDLC它是一個獨立的XML文件,它的描述全部在一個XML里面,因此在設計時,只是對XML文件進行處理,VS給我們提供了一個設計器及進行設計而已。 在RDLC的設計視圖里面,我們可以看到報表數據里面,包括一些預定義的數據,以及我們添加進去的數據源。
3. 報表特殊元素的處理
RDLC報表,也有一些如打印時間,分頁數據等,是需要特殊的處理了,打印時間是使用報表數據里面的【內置字段】項目。可以通過自定義的格式內容對記錄總數和統計值進行處理。對于一些特殊的顯示格式,需要額外正確設置,例如日期的格式設置。
4. 報表的調用處理
對于報表的加載只需要簡單的設置屬性,然后調用即可,代碼如下:
private void PrintRDLCReport() { string where = GetConditionSql(); List<CarApplyInfo> list = BLLFactory<CarApply>.Instance.Find(where); foreach (CarApplyInfo info in list) { info.Data1 = info.Status.ToString();//轉換枚舉類型描述
三、 XtraReport報表&RDLC報表差異對比
1. 報表最終實現效果相似,但DevExpress XtraReport是把它集成到DLL里面,類似編譯的窗體文件一樣了;而RDLC報表本身是一個獨立的文件,在發布時需要注意要把它帶上,但是又有較好的通用性。
2. 對于XtraReport的字段內容展示,默認就是調用了ToString()的函數處理,因此類似日期、枚舉類型,都不需要怎么樣設置,就可以正常顯示,但是RDLC報表設計里面,我們需要為每種字段設置好對應的格式,枚舉類型好像解析還是會轉換為整形,因此需要在數據源級別進行轉換,否則顯示不出來。
3. 對于自定義函數方面,XtraReport提供了較好的設計界面,能夠很大程度減少出錯的機會;RDLC則提供了彈性化的操作,提供了很多函數進行參考,需要自己添加表達式,不過在編譯的時候,能夠檢查出現的錯誤。
(測評內容參考自:伍華聰 //www.iqidi.com)
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn