天天看點

在VS2013中使用水晶報表

又遇到了在B/S系統中列印,列印格式要求比較高,列印出的效果要求高大上。用VS2013中微軟自帶的報表,實在難以實作應用的效果,主要問題表現在:

1.不能插入用Word做好的列印模闆,自己按照模闆來做感覺比較費事,實作不了Word的列印效果,一旦列印模闆改變,調整格式比較麻煩。

2.在火狐、谷歌浏覽器中列印按鈕不顯示。

在VS2013中使用水晶報表

安裝好之後,在VS的建立項中發現了熟悉的Crystal Reports如下圖:

在VS2013中使用水晶報表

在詳細資料處【右鍵】--【插入】--【OLE對象】--【由檔案建立】選中要列印的模闆。拖動滑鼠,放置。

在字段資料總管中【參數字段】--【右鍵】--【建立參數】。

在VS2013中使用水晶報表

把參數拖放到要動态擷取資料的地方。

在VS2013中使用水晶報表

建立Web窗體,拖放CrystalReportViewer控件,設定相關屬性。其中如果不需要左側的組樹,需要設定ToolPanelView=“None”。這是與當時在VS2008中用水晶報表不同的地方。

在頁面背景代碼動态設定字段值。如下:

在VS中運作調試,列印模闆不見了,隻有“圖像”二字,結果如下:

在VS2013中使用水晶報表
在VS2013中使用水晶報表

在IIS中釋出。首先出現如下錯誤:

未能加載檔案或程式集“log4net, Version=1.2.10.0, Culture=neutral, PublicKeyToken=692fbea5521e1304”或它的某一個依賴項。系統找不到指定的檔案。

問題是我也沒用到log4net啊。按照網上的方法把C:\Windows\assembly\GAC_32\log4net\1.2.10.0__692fbea5521e1304\log4net.dll (不同的版本log4net的版本可能不同,可以用dos指令符在C:\Windows\assembly檔案夾下用dir指令逐級找到)copy出來,放到部署之後的程式bin檔案夾下。重新整理頁面,出現如下錯誤:

這個錯誤很熟悉吧,64位作業系統IIS應用程式池未啟用32位應用程式,設為True。重新整理頁面,出現如下錯誤:

發現在釋出的時候VS不會把rpt檔案釋出過來,直接把rpt拷貝過來。重新整理頁面,OK了。