在 Crystal 报表和 ASP.NET C# 中使用子报表

Using Subreport in Crystal Report and ASP.NET C#

我的主报表和子报表彼此非常相似,使用相同的参数和公式,唯一的区别是它们在脱轨部分的顺序。现在,当我在报表中加载子报表并 运行 它时,ASP.NET 不断要求输入所用参数的值。

我想我需要一个加载子报表的代码。

 protected void Page_Load(object sender, EventArgs e)
    {        

       report.Load(Server.MapPath("MonthlySalesReportP.rpt"));


        report.SetDatabaseLogon
          ("sa", "pw", @"databasename, "servername");  

        CrystalReportViewer1.ReportSource = report;
        CrystalReportViewer1.ReuseParameterValuesOnRefresh = true;
        CrystalReportViewer1.DataBind();
        CrystalReportViewer1.SeparatePages = false;



        report.SetParameterValue(0, MonthLastYear);
        report.SetParameterValue(1, MonthCurrent);
        report.SetParameterValue(2, MonthPrevious);
        report.SetParameterValue(3, RP);
        report.SetParameterValue(4, Loc);
        report.SetParameterValue(5, cms);
        report.SetParameterValue(6, YearCurrent);
        report.SetParameterValue(7, YearPrevious);
        report.SetParameterValue(8, YearLastYear);
        report.SetParameterValue(9, FullName);


}

我应该包含读取子报表所需的代码吗?

我看到这个建议

report.SetDataSource(dtproductview);
report.Subreports[0].SetDataSource(dsHeader.Tables[0]);
report.Subreports[1].SetDataSource(dsFooter.Tables[0]);

但我没有数据表或数据集,它直接来自存储过程

  1. 您尝试过将子报表的参数链接到主报表吗?

    (子报表上下文菜单中的Change subreport links

  2. 你可以试试,还有:

    report.Subreports[0].SetParameterValue(0, MonthLastYear);