前提介紹:服務器上網站IIS發佈,服務器上安裝了VS2008(親,自帶水晶報表的喲)。服務器版本2003。本地用VS2010採用push模式作的報表。
從開始到結束,尼瑪,不知道犧牲了咱多少腦細胞。好吧,很少說了,就簡單的說下遇到的問題及解決方案吧!
Question 1:將水晶報表放到服務器上,發現出現報表加載不出來
eg:先在服務器上安裝CRRedist2005_x86_chs.msi 和CRRedist2005_x86.msi這幾個文件,由於咱們的服務器是Win2003,因此我選擇了CRRedist2005_x86_chs.msi和CRRedist2005_x86.msi 這兩個文件進行安裝。用於本身的水晶報表爲VS2010的,而服務器上市VS2008,因此須要在服務器上找到安裝目錄下的水晶報表DLL,分別爲
還須要修改引用報表的頁面的CrystalReportView 的版本,我這是version=10.5.3700.0web
<%@ Register Assembly="CrystalDecisions.Web, Version=10.5.3700.0, Culture=neutral, PublicKeyToken=692fbea5521e1304"服務器
Namespace="CrystalDecisions.Web" TagPrefix="CR" %> OK, 經過一步一步的出現新問題,找尋新的解決方法,最終經過上述修改,得以加載出報表。
Quesion2: 水晶報表的按鈕圖片顯示爲紅叉叉 eg: 1.直接將IIS中的aspnet_client文件夾複製到網站的根目錄下網絡
2.在c盤下找到aspnet_client文件夾將文件複製到網站的根目錄下app
OK,按鈕圖片出來了,但是呢,新的問題又出來了 哎 ,心寒呀
Question3:報表中的列表啥的都正常,惟獨圖表就顯示爲紅叉叉
eg:在網絡上尋求了多種方法,最終經過在web.config文件中添加以下代碼解決了(我經過2中的代碼解決了)學習
1:網站
<appSettings>spa
<add key="CrystalImageCleaner-AutoStart" value="true"/>orm
<add key="CrystalImageCleaner-Sleep" value="60000"/>對象
<add key="CrystalImageCleaner-Age" value="120000"/>圖片
</appSettings>
2:
<httpHandlers>
<add verb="GET" path="CrystalImageHandler.aspx" type="CrystalDecisions.Web.CrystalImageHandler, CrystalDecisions.Web, Version=13.0.2000.0, Culture=neutral, PublicKeyToken=692fbea5521e1304"/>
<add path="Reserved.ReportViewerWebControl.axd" verb="*" type="Microsoft.Reporting.WebForms.HttpHandler, Microsoft.ReportViewer.WebForms, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" validate="false"/>
</httpHandlers>
3:
<handlers>
<add name="CrystalImageHandler.aspx_GET" verb="GET" path="CrystalImageHandler.aspx" type="CrystalDecisions.Web.CrystalImageHandler, CrystalDecisions.Web, Version=13.0.2000.0, Culture=neutral, PublicKeyToken=692fbea5521e1304" preCondition="integratedMode"/>
<add name="ReportViewerWebControlHandler" preCondition="integratedMode" verb="*" path="Reserved.ReportViewerWebControl.axd" type="Microsoft.Reporting.WebForms.HttpHandler, Microsoft.ReportViewer.WebForms, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
</handlers>
OK,水晶報表的加載和現實都正常咯 但是,你覺得就此玩完了嗎?嘿。嘿。嘿 Question 4:我是作了一個頁面統計列表功能,使用了iframe切入相應的報表進來,但是當我重複點擊多個列表以後,問題出現了。因爲每次引用報表,沒有釋放掉,致使數量達到系統設置後,就出現系統提示。 eg:網上提供的解決方案有多種,一種是經過進入cmd,修改參數,把電腦默認加載的報表次數調大,以後重啓 另外一種呢,也就是我選擇用的,在頁面寫個方法,在你引用rpt文件以後不用了,釋放掉。
private void Un_pageLoad(object sender,eventArgs e){
rptDoc.DisPose(); // rptDoc爲ReportDocuemnt對象
} 結束語----水晶報表看着簡單,但是開始着手以後,遇到的問題是咱沒法想到的,還有就是想作好一個好看的水晶報表,還得好好努力學習,反正我就目前來講只能作點簡單的東西。