天天看點

基于MVC4+EasyUI的Web開發架構經驗總結(15)--在MVC項目中使用RDLC報表

RDLC的報表設計,是使用VS直接進行編輯的,是以它不管是在Web上,還是在Winform上,設計的方式都差不多,好像綁定資料源的方式有一點不同,WInform的可以選擇基于,而Web的隻能基于資料庫連接配接方式建構資料綁定對象。

它們兩者之間在建立資料源的時候,彈出的對話框選擇界面如下所示,看起來Winform的方式選擇資料源的方式很多樣化。

基于MVC4+EasyUI的Web開發架構經驗總結(15)--在MVC項目中使用RDLC報表
基于MVC4+EasyUI的Web開發架構經驗總結(15)--在MVC項目中使用RDLC報表

最終,通過Web方式建構了一個資料集,并在設計視圖裡面設計一個使用者的報表界面,并綁定它們對應的字段,具體如下所示。

基于MVC4+EasyUI的Web開發架構經驗總結(15)--在MVC項目中使用RDLC報表

在RDLC的設計界面上,它們的操作内容好像是一樣的,沒有什麼差異,可以使用各種數學函數SUM、COUNT等,也可以使用對字段的表達式,格式樣式等方式,進而友善建構出一些準确、美觀的報表,這部分可以參考文中開始的那兩篇引用文章,這裡就不再進行細節上的贅述,因為它們是一樣的。

我們在MVC項目裡面,建立并儲存好RDLC報表檔案到對應的Report目錄上,如下所示。

基于MVC4+EasyUI的Web開發架構經驗總結(15)--在MVC項目中使用RDLC報表

然後建立一個視圖,并在視圖裡面建構一些按鈕,友善建構查詢不同的報表格式功能,具體效果如下所示。

基于MVC4+EasyUI的Web開發架構經驗總結(15)--在MVC項目中使用RDLC報表

HTML代碼如下所示

完成這些布局後,我們還需要在對應的控制器裡面,對RDLC的報表進行資料綁定并呈現出來。

綁定RDLC報表,并指派對應的資料源操作如下所示。

呈現的操作代碼如下所示,預設我們以圖檔進行展現。

最終預設可以看到圖檔的報表展現效果。

基于MVC4+EasyUI的Web開發架構經驗總結(15)--在MVC項目中使用RDLC報表

當然,我們上面還有其他功能的操作,如PDF功能的展現,這個是一個不錯的格式展現,每頁分的很好,如果在IE裡面,會獨立打開PDF檔案;如果是Chrome浏覽器,則會在浏覽器裡面直接打開,比較好。

基于MVC4+EasyUI的Web開發架構經驗總結(15)--在MVC項目中使用RDLC報表

當然,Excel和Word就隻能下載下傳進行檢視了,因為浏覽器并不支援直接在上面進行預覽檢視的了,除非借助其他控件或者做法。

我們了解RDLC的話,應該知道,一般RDLC報表,它都是通過一個DeviceInfo的資訊進行展現的,如下所示是一個标準的DeviceInfo對象。

但是這樣的内容,如果展現圖檔的話,就隻會展示一頁的内容,一般是800的高度這樣子,但是我的報表裡面可能有很多記錄,如何能夠讓它全部展現出來呢?

方法是有的,不過不是很完美,就是需要計算大概的尺寸,然後修改PageHeight的數值,讓它動态的删除最大的記錄,達到全部内容都可以輸出看到。

為了達到這個目的,我對圖檔格式輸出的報表,對它的高度進行了一個簡單的計算,然後換成它的标準高度,這樣代碼如下所示。

最後界面代碼如下所示。

基于MVC4+EasyUI的Web開發架構經驗總結(15)--在MVC項目中使用RDLC報表
基于MVC4+EasyUI的Web開發架構經驗總結(15)--在MVC項目中使用RDLC報表

繼續閱讀