Asp MVC加载报告失败

时间:2013-01-12 16:44:25

标签: c# asp.net-mvc crystal-reports

我第一次尝试使用asp mvc的水晶报告,但是加载报告时遇到了一些问题:

ReportClass rptH = new ReportClass();
            rptH.FileName = Server.MapPath("Reports/TestReport.rpt");
            rptH.Load();

这是rptH.FileName的值

"rassdk://D:\\ProjectDir\\Pro\\Pro.WebUI\\Reports\\TestReport.rpt"

但在Load()我得到例外:

  

加载报告失败。

报告没有任何数据源,只是带有一些文字的空白报告 也许这很重要。我将项目设置为在本地IIS (不在VS中)上运行。



更新

我已经改变了一点代码,现在我得到了一些其他错误(我也在inetpub / wwwroot中复制了项目)。这是错误:

  

值不能为空。参数名称:path2

现在路径是:

"C:\\inetpub\\wwwroot\\MyProject\\Pro\\Pro.WebUI\\Reports\\TestReport.rpt"

新代码是:

ReportClass rptH = new ReportClass();
            var path = Server.MapPath("Reports/TestReport.rpt");

            rptH.Load(path);

2 个答案:

答案 0 :(得分:0)

如果定义了参数,请检查rpt文件。 如果有,你不需要它们然后删除它。 如果您需要它们,那么在代码中提供它们的值和描述。 EXP:

rep = new ReportDocument();
string reportPath = Server.MapPath("Reports/TestReport.rpt");
rep.Load(reportPath);
rep.SetParameterValue(0, "SomeValue");
crViewer.ReportSource = rep;
crViewer.ParameterFieldInfo[0].CurrentValues[0].Description = "ParameterName";
crViewer.DataBind();

答案 1 :(得分:0)

试试这个

  ReportDocument rd = new ReportDocument();
  string FileName = Server.MapPath("~/Report") + "//YourReportName.rpt";
  rd.Load(FileName);
  rd.SetDataSource(dt);