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