Crystal Report - 加载报告失败

时间:2011-03-23 08:27:46

标签: c# crystal-reports .net-2.0 reporting windows-applications

我使用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;

我在客户端计算机上尝试了以下内容

  1. 重新安装了水晶报告Runtime
  2. 重新安装软件
  3. 谢谢,

2 个答案:

答案 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等实用程序将非常有用。

这不是我的问题,但也许这会有所帮助。