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");