Crystal 报告中缺少参数
Missing Parameters in Crystal Reports
像许多其他人一样,我也遇到了 Crystal 报告中缺少参数的问题。我已经检查了有关此问题的其他答复,但到目前为止还没有提出解决方案。任何帮助表示赞赏。这是我到目前为止所拥有的。我正在尝试导出到 ASP.NET MVC 控制器操作中的流。
public ActionResult ExportCustomers(int workNum)
{
RequestListViewModel requestListViewModel = new RequestListViewModel();
var x = (stored procedure results).ToList();
var z = ToDataTable(x);
ReportDocument rd = new ReportDocument();
rd.Load(Path.Combine(Server.MapPath("/Reports"), "ReportFormWorkRequest.rpt"));
rd.SetParameterValue("@WorkReqNum", workNum);
rd.SetDataSource(z);
Response.Buffer = false;
Response.ClearContent();
Response.ClearHeaders();
Stream stream = rd.ExportToStream(CrystalDecisions.Shared.ExportFormatType.PortableDocFormat);
stream.Seek(0, SeekOrigin.Begin);
return File(stream, "application/pdf", "WorkRequests.pdf");
}
在包含 "rd.ExportToStream" 的行上我收到错误:缺少参数值。因为我没有尝试从 ASP.NET MVC 生成 Crystal 报告,所以它可能是我缺少的基本内容。
皮特
仔细检查后,我发现主报表上有 1 个参数,子报表上有 7 个附加参数。以下代码显示了缺少参数的整个操作。虽然它确实回答了 post 中提出的问题,但它目前没有向浏览器正确返回数据。这可能会在另一个 post 中处理。感谢那些回答我问题的人。
皮特
RequestListViewModel requestListViewModel = new RequestListViewModel();
var x = (stored procedure results).ToList();
var z = ToDataTable(x);
ReportDocument rd = new ReportDocument();
rd.Load(Path.Combine(Server.MapPath("/Reports"), "ReportFormWorkRequest.rpt"));
rd.SetDataSource(z);
rd.SetParameterValue("@WorkReqNum", workNum);
rd.SetParameterValue("@Subparam1", 0, rd.Subreports[0].Name.ToString());
rd.SetParameterValue("@Subparam2", 0, rd.Subreports[1].Name.ToString());
rd.SetParameterValue("@Subparam3", 0, rd.Subreports[2].Name.ToString());
rd.SetParameterValue("@Subparam4", 0, rd.Subreports[3].Name.ToString());
rd.SetParameterValue("@Subparam5", 0, rd.Subreports[3].Name.ToString());
rd.SetParameterValue("@Subparam6", 0, rd.Subreports[3].Name.ToString());
rd.SetParameterValue("@Subparam7", 0, rd.Subreports[4].Name.ToString());
Response.Buffer = false;
Response.ClearContent();
Response.ClearHeaders();
Stream stream = rd.ExportToStream(CrystalDecisions.Shared.ExportFormatType.PortableDocFormat);
stream.Seek(0, SeekOrigin.Begin);
return File(stream, "application/pdf");
像许多其他人一样,我也遇到了 Crystal 报告中缺少参数的问题。我已经检查了有关此问题的其他答复,但到目前为止还没有提出解决方案。任何帮助表示赞赏。这是我到目前为止所拥有的。我正在尝试导出到 ASP.NET MVC 控制器操作中的流。
public ActionResult ExportCustomers(int workNum)
{
RequestListViewModel requestListViewModel = new RequestListViewModel();
var x = (stored procedure results).ToList();
var z = ToDataTable(x);
ReportDocument rd = new ReportDocument();
rd.Load(Path.Combine(Server.MapPath("/Reports"), "ReportFormWorkRequest.rpt"));
rd.SetParameterValue("@WorkReqNum", workNum);
rd.SetDataSource(z);
Response.Buffer = false;
Response.ClearContent();
Response.ClearHeaders();
Stream stream = rd.ExportToStream(CrystalDecisions.Shared.ExportFormatType.PortableDocFormat);
stream.Seek(0, SeekOrigin.Begin);
return File(stream, "application/pdf", "WorkRequests.pdf");
}
在包含 "rd.ExportToStream" 的行上我收到错误:缺少参数值。因为我没有尝试从 ASP.NET MVC 生成 Crystal 报告,所以它可能是我缺少的基本内容。
皮特
仔细检查后,我发现主报表上有 1 个参数,子报表上有 7 个附加参数。以下代码显示了缺少参数的整个操作。虽然它确实回答了 post 中提出的问题,但它目前没有向浏览器正确返回数据。这可能会在另一个 post 中处理。感谢那些回答我问题的人。
皮特
RequestListViewModel requestListViewModel = new RequestListViewModel();
var x = (stored procedure results).ToList();
var z = ToDataTable(x);
ReportDocument rd = new ReportDocument();
rd.Load(Path.Combine(Server.MapPath("/Reports"), "ReportFormWorkRequest.rpt"));
rd.SetDataSource(z);
rd.SetParameterValue("@WorkReqNum", workNum);
rd.SetParameterValue("@Subparam1", 0, rd.Subreports[0].Name.ToString());
rd.SetParameterValue("@Subparam2", 0, rd.Subreports[1].Name.ToString());
rd.SetParameterValue("@Subparam3", 0, rd.Subreports[2].Name.ToString());
rd.SetParameterValue("@Subparam4", 0, rd.Subreports[3].Name.ToString());
rd.SetParameterValue("@Subparam5", 0, rd.Subreports[3].Name.ToString());
rd.SetParameterValue("@Subparam6", 0, rd.Subreports[3].Name.ToString());
rd.SetParameterValue("@Subparam7", 0, rd.Subreports[4].Name.ToString());
Response.Buffer = false;
Response.ClearContent();
Response.ClearHeaders();
Stream stream = rd.ExportToStream(CrystalDecisions.Shared.ExportFormatType.PortableDocFormat);
stream.Seek(0, SeekOrigin.Begin);
return File(stream, "application/pdf");