部署水晶報表時的常見問題及解決
摘自CSDN
------------------------------------------------
目錄:
1、載入報表時報錯
2、部署到 Windows 98 / ME 時,出錯:"Load Report Failed"
3、在Win98的客戶端運行提示"該字段名未知"
4、分發(fā)到客戶機時“查詢引擎出錯”
5、load crpe32.dll failed
6、在 ASP.NET 程序中加載報表時,出錯:"Load Report Failed"
7、部署 .NET 9.1 程序到 Windows 98 時,出錯:"Load Report Failed"
------------------------------------------------
1、載入報表時報錯
問題出在報表發(fā)布上。
發(fā)布使用水晶報表的項目需要包含三種組件:報表(*.rpt)、模塊(*.msm)、運行庫(*.msm),這些模塊文件是在 C:\Program Files\Common Files\Merge Modules\ 目錄里面。
(1)報表(*.rpt)
用戶編程時創(chuàng)建的水晶報表文件。
(2)模塊(*.msm)
Managed.msm 該模塊包含了CR for VS .NET 的管理模塊,如 CrystalDecisions、CrystalReports.Engine.DLL、CrystalDecisions.Web.DLL, 和 CrystalDecisions.Windows.Forms.DLL……
Managed_chs.msm 是該模塊的中文版語言支持。
Database_Access.msm 該模塊包含了數(shù)據(jù)庫的驅(qū)動、與不同數(shù)據(jù)庫的聯(lián)結(jié)、報表導(dǎo)出為 RTF 和 HTML 格式的文檔和圖表組件。
Database_Access_chs.msm 是此模塊的中文版語言支持。
Regwiz.msm 注冊信息模塊,非常重要,必需在這個模塊輸入水晶報表的注冊序列號,如果不填,編譯的時候就無法通過
(3)運行庫(*.msm)
如果報表文件使用了 ADO.NET 的 dataset 數(shù)據(jù)集對象,那么 VC_CRT.msm 和 VC_STL.msm 模塊也必須包含在安裝工程中。而且這兩個模塊的文件安裝屬性的"Module Retargetable Folder"項必須修改成為系統(tǒng)目錄
在VS.NET安裝工程中,系統(tǒng)檢測出來的依賴項只有 dotNETFXRedist_x86_chs.msm 和 Managed.msm這兩個模塊,其他的模塊我們需要手動加入。
(1)在解決方案資源管理器里,右鍵單擊安裝項目選擇"添加"-〉"合并模塊(M)"
(2)在"添加模塊"對話窗體,選擇 Managed_chs.msm 、Database_Access, Database_Access_chs, regwiz、VC_CRT.msm 和 VC_STL.msm 模塊
(3)重新生成安裝項目,沒問題,只是生成的安裝程序一下子大了七、八兆。
-------------------------
2、部署到 Windows 98 / ME 時,出錯:"Load Report Failed"
是因為查詢引擎 DLL(CRQE.dll)在客戶計算機上沒有正確注冊。
要解決這個問題,可以在客戶計算機上手動注冊 CRQE.dll,使用下面的命令:
regsvr32 "C:\program files\common files\Crystal Decisions\1.0\bin\CRQE.dll"
如果 CRQE.dll 沒有成功注冊,并且問題繼續(xù)存在,在客戶計算機上檢查 ATL.dll 的版本。ATL.dll for Windows 98/ME 正確的版本是 3.0.8449。
通過使用下面三種方法中的任意一種方法,可以找到并注冊正確版本的 ATL.dll。
(1)在客戶計算機上裝 IE6.0。
(2)在客戶計算機上,手動復(fù)制和注冊 ATL.dll,然后運行用于 Crystal Reports 分發(fā)的安裝包。
(2)將 ATL.msm 合并模塊添加到安裝工程,ATL.msm 是 Visual Studio installer 1.1 的一部分,可以去微軟的網(wǎng)站http://msdn.microsoft.com/vstudio/downloads/tools/vsi11/download.aspx下載, 添加辦法同上。
-------------------------
3、在Win98的客戶端運行提示"該字段名未知"
報表在Win2000的客戶端一切正常,在Win98的客戶端運行提示"該字段名未知"?
是因為報表使用到的 sql server 數(shù)據(jù)庫中的字段名為中文的緣故,將其字段名改名為英文字段名。
-------------------------
4、分發(fā)到客戶機時“查詢引擎出錯”
答:那是因為沒有安裝VC的運行庫:VC_CRT.msm、VC_STL.msm
-------------------------
5、load crpe32.dll failed
下面是cr9net_deployment.pdf說明中的部署Crystal Report 9的步驟:
打開 Windows 應(yīng)用程序。
在解決方案資源管理器中,右擊 Windows 應(yīng)用程序解決方案,指向“添加”,然后單擊“新建項目”。
在“添加新項目”對話框中,選擇“項目類型”窗格中的“安裝和部署項目”,然后選擇“模板”窗格中的“安裝項目”。單擊“確定”按鈕。
在解決方案資源管理中,右擊安裝項目,指向“添加”,然后單擊“項目輸出”。
在“添加項目輸出組”中,選擇“主輸出”,然后單擊“確定”。
將自動添加所有依賴項,如 dotnetfxredist_x86_enu.msm和dotnetcrystalreports.msm。
需要將dotnetcrystalreports.msm排除在項目之外,在解決方案資源管理器中右擊這個模塊的右鍵,選擇“排除”。
在解決方案資源管理器中,右擊安裝項目,指向“添加”,然后單擊“合并模塊”。
在“添加模塊”對話框中,選擇下列要添加到安裝項目的合并模塊,然后單擊“打開”:
reportengine.msm, crnetruntime.msm, license.msm
mapping.msm (可選,當(dāng)在報表中使用了geographic maps時)
VC_CRT.msm、VC_STL.msm( 如果您部署的 Windows 應(yīng)用程序使用 ADO.NET 數(shù)據(jù)集,則還需要包括 VC_CRT 和 VC_STL 合并模塊)
在解決方案資源管理器中,右擊 license.msm 文件,然后選擇“屬性”。
在“屬性”窗口中,展開 MergeModuleProperties,然后在“許可證密鑰”屬性框中輸入一個有效的許可證密鑰。
注意 每當(dāng)部署 Crystal Reports 應(yīng)用程序時,必須提供許可證密鑰。
從“生成”菜單中,選擇“生成解決方案”以生成應(yīng)用程序。
-------------------------
6、在 ASP.NET 程序中加載報表時,出錯:"Load Report Failed"
確保 ASPNET 本地用戶對報表所在的文件夾有“完全控制”的權(quán)限。
-------------------------
7、部署 .NET 9.1 程序到 Windows 98 時,出錯:"Load Report Failed"
是因為查詢引擎 DLL(CRQE.dll)在客戶計算機上沒有正確注冊。
要解決這個問題,從開發(fā)計算機復(fù)制 Dbghelp.dll 到客戶計算機的"C:Windows\system32" 文件夾。
Crystal Support 之最高閱覽量文章:怎樣部署使用 Crystal Reports 和 VS.NET 的程序?(翻譯:海波.NET)
大綱
怎樣部署使用 Crystal Reports 和 VS.NET 的程序?
====================
注意:
在部署使用 Crystal Reports 和 Visual Studio .NET 的程序之前,你必須確認下列信息:
與 Visual Studio .NET 一起使用的 Crystal Reports 版本。可能的版本為:
- Crystal Reports for Visual Studio .NET 2002
- Crystal Reports for Visual Studio .NET 2003
- Crystal Reports 9
- Crystal Reports 9.2
Crystal Reports 管理組件的“程序集版本”。
要檢查 Crystal Reports 管理組件的“程序集版本”,查看 Visual Studio .NET 里的 “項目” > “引用”。
Crystal Reports 管理組件包括:
- CrystalDecisions.CrystalReports.Engine
- CrystalDecisions.Shared
- CrystalDecisions.Reportsource
- CrystalDecisions.Web
- CrystalDecisions.Windows.Forms.
所有 Crystal Reports 管理組件的“程序集版本”必須相同。
====================
解決方案:
要部署使用 Crystal Reports for Visual Studio .NET 2002 的程序
------------------------------------------------
1. 確保 Crystal Reports 管理組件的“程序集版本”為 9.1.3300。
2. 下載完整的 crnet 部署指南:
http://support.crystaldecisions.com/communityCS/TechnicalPapers/crnet_deployment.pdf.asp?recDnlReq=Record&dnlPath=crnet_deployment.pdf
要部署使用 Crystal Reports for Visual Studio .NET 2003 的程序
------------------------------------------------
1. 確保 Crystal Reports 管理組件的“程序集版本”為 9.1.5000.0。
2. 下載完整的 crnet 部署指南:
http://support.crystaldecisions.com/communityCS/TechnicalPapers/crnet_deployment.pdf.asp?recDnlReq=Record&dnlPath=crnet_deployment.pdf
3. 使用下列合并模塊替換'crnet_deployment.pdf'里的合并模塊:
Crystal_Database_Access2003.msm
Crystal_Database_Access2003_enu.msm
Crystal_Managed2003.msm
Crystal_regwiz2003.msm
VC_User_CRT71_RTL_X86_---.msm (被基于 ADO.NET 的報表使用)
VC_User_STL71_RTL_X86_---.msm (被基于 ADO.NET 的報表使用)