我第一次尝试使用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);
答案 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);