我使用c#.net 2.0在Windows应用程序中使用Crystal Report(10.2.3600.0)。
我已在许多客户机中部署了该应用程序。直到最近才发现,在其中一台机器中,报告无效。
显示以下错误的日志文件 -
StackTrace:at CrystalDecisions.ReportAppServer.ReportClientDocumentWrapper.EnsureDocumentIsOpened() 在 CrystalDecisions.CrystalReports.Engine.ReportDocument.Load(字符串 filename,OpenReportMethod openMethod, Int16 parentJob)at CrystalDecisions.CrystalReports.Engine.ReportDocument.Load(字符串 filename,OpenReportMethod openMethod) 在 FlexiPackOfficeAutomation.frmJobCardViewer.PopulateReportFields() InnerException:系统不能 找到指定的路径。
我在那台机器上注意到的一件重要事情是没有C盘。窗口安装在H:Drive中。我不确定这是否会导致这个问题。
我用来加载报告的代码如下,
CrystalDecisions.CrystalReports.Engine.ReportDocument JobCard1 = new CrystalDecisions.CrystalReports.Engine.ReportDocument();
cFPWebService objWS = new cFPWebService();
//Get the Job Details from the Webservice
DataSet mDsJobDetails = objWS.ObjWebService.GetJobDetails_ForCrystalReport(this._JobID);
string FileName = "rassdk://" + Directory.GetCurrentDirectory() + @"\reports\JobCard.rpt";
//Load the Crystal Report File
JobCard1.Load(FileName, CrystalDecisions.Shared.OpenReportMethod.OpenReportByTempCopy);
//Set the reportsource of the Crystal Report Viewer as this JobCard
crvJobCard.ReportSource = JobCard1;
我在客户端计算机上尝试了以下内容
谢谢,
答案 0 :(得分:1)
在整个注册表中搜索“Crystal”。您将找到指向C驱动器上的v10 DLL可能不正确的一两个键。
如果您将注册表项更新到正确的H驱动器位置,它应该可以正常工作。
答案 1 :(得分:0)
在SAP发现此问题排查document。看起来有一节关于没有C:驱动器的安装。相关部分:
缺少“C:\”驱动器 该应用程序部署到没有“C:”驱动器的计算机上。通过msm或msi文件安装Crystal Reports运行时时,某些注册表值将设置为指向C:驱动器。要解决此问题,请在注册表编辑器中修改注册表值。 ...
至少需要修改以下字符串值:
- CommonFiles
- 路径
- ConnectionDirectoryPath
- ChartSupportpath
- ReportDirectoryPath
这些字符串值的位置因使用的Crystal Reports版本而异。在开发计算机上搜索注册表并研究相应的密钥。在运行时计算机上根据需要进行修改。
要解决这些问题,Process Monitor等实用程序将非常有用。
这不是我的问题,但也许这会有所帮助。