1.首先下載Crystal Reports13對於Visual Studio 2015支持的2個文件。
CRforVS_13_0_17
CRforVS_redist_install_64bit_13_0_17
如果你使用的是其它版本的Visual Studio,請查看官方給出的文檔,下載相應的版本,具體請參考次地址:http://scn.sap.com/docs/DOC-7824
注意:版本號后邊的13_0_17為小版本號,下載時2個文件的小版本號要相同。
2.重啟VS,在項目上新建項,此時多了一個Repoting的項目模板,模板里邊包含一個Crystal Report的選項,選中即可創建報表模板的.rpt文件。
3.在使用水晶報表的網站項目上,添加如下4個引用,引用在項目的Nuget包管理里邊進行搜索。
CrystalDecisions.CrystalReports.Engine
CrystalDecisions.ReportSource
CrystalDecisions.Shared
CrystalDecisions.Web
如果你的項目是C/S的程序,也可以引用CrystalDecisions.Windows.Forms來替換CrystalDecisions.Web
4.打開電腦的如下文件夾:C:\inetpub\wwwroot,在文件里邊找到一個 aspnet_client,文件夾,將此文件夾拷貝到網站項目的根目錄。
這個文件夾里邊的文件,是水晶報表打印頁面的所需UI樣式文件,如果不拷貝這個文件夾,打印頁面看不到任何東西,包括水晶報表打印的工具欄。
以上4步完成后,即可調用模板文件進行打印了!
服務器部署:
首先在服務器上安裝CrystalReports的運行時,我安裝的版本是CRforVS_redist_install_32bit_13_0_17,這個地方最好是下載32位的版本,我原來安裝的64位版本就出現了問題2的錯誤,網站正常部署就可以,把IIS網站的應用程序池,高級設置選項里邊的啟用32位應程序選項設置為true,還有就是把報表的rpt文件拷貝服務器,因為發布的時候這個文件不能發布出來,否則也會報錯!
以下是開發完成后再服務器部署時遇到的一些問題:
問題1.未能加載文件或程序集“log4net, Version=1.2.10.0, Culture=neutral, PublicKeyToken=692fbea5521e1304”或它的某一個依賴項。系統找不到指定的文件。
問題是我也沒用到log4net啊,按照網上的方法把你開發機器上的C:\Windows\assembly\GAC_32\log4net\1.2.10.0__692fbea5521e1304\log4net.dll,這個dll拷貝到服務器網站bin的文件夾即可,不要從其途徑引用log4net.dll文件,我試了即使是相同版本的也不行。
問題2.嘗試加載 Crystal Reports 運行時時出錯。可能是因為 Crystal Reports 注冊表項權限不足,或未正確安裝 Crystal Reports 運行時。請安裝包含所需的正確 Crystal Reports 運行時版本(x86、x64 或 Itanium)的相應 Crystal Reports 再分發文件(CRRedist*.msi)。有關更多信息,請訪問 http://www.businessobjects.com/support。
這個問題我花了好長的時間,原因是因為Crystal Reports得運行時版本必須要安裝32位的,我原來安裝的是CRforVS_redist_install_64bit_13_0_17,換成CRforVS_redist_install_32bit_13_0_17就可以顯示報表的控件了,如果還是不好用就把IIS網站的應用程序池,高級設置選項里邊的啟用32位應程序選項設置為true
問題3.不支持的操作。無法在 C++ 堆棧中打開由 JRC 引擎處理的文檔
這個問題是因為,沒有找到報表文件,在發布網站的時候,VS忽略.rpt這種格式文件的發布,所有需要你手動把報表文件,或者包含報表文件的文件夾放到網站相應位置!
