我的主报告和子报告彼此非常相似,使用相同的参数和公式,唯一的区别是他们在脱轨部分的顺序。现在当我在报表中加载子报表并运行它时,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]);
但我没有数据表或数据集,它直接来自存储过程
答案 0 :(得分:1)
您是否尝试将子报表的参数链接到主报表?
(子报告上下文菜单中的Change subreport links
)
您也可以尝试:
report.Subreports[0].SetParameterValue(0, MonthLastYear);