在 Crystal Report 和 ASP.NET C# 中使用子报表
Posted
技术标签:
【中文标题】在 Crystal Report 和 ASP.NET C# 中使用子报表【英文标题】:Using Subreport in Crystal Report and ASP.NET C# 【发布时间】:2015-06-04 06:57:43 【问题描述】:我的主报表和子报表非常相似,使用相同的参数和公式,唯一的区别是它们在脱轨部分的顺序。现在,当我在报表中加载子报表并运行它时,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]);
但我没有数据表或数据集,它直接来自存储过程
【问题讨论】:
您是否已经尝试将设置参数的部分移到设置 CrystalReportViewer1 属性的部分之前? 移动到?我应该把那部分移到哪里? 类似pastebin.com/derbNDJg 我明白了。刚才试了一下还是一样。不工作 子报表的参数是否与主报表的参数相关联? codeproject.com/Questions/774764/…(见解决方案一) 【参考方案1】:您是否尝试过将子报表的参数链接到主报表?
(子报表上下文菜单中的Change subreport links
)
你也可以试试:
report.Subreports[0].SetParameterValue(0, MonthLastYear);
【讨论】:
嗨,现在尝试第 2 条建议 关于 1 号建议,目前子报告有自己的参数,与主报告相同。可以改链接吗?以上是关于在 Crystal Report 和 ASP.NET C# 中使用子报表的主要内容,如果未能解决你的问题,请参考以下文章
在 Crystal Report 和 ASP.NET C# 中使用子报表
Crystal Report - vs 2003 项目的加载报告失败
如何在 C# 中使用特定的 INNER JOIN 查询和条件制作 Crystal Report