我的报告包含ReportHeader,PageHeader,GroupHeader1,GroupHeader2,Detail等,以及详细信息部分中的SubReport和ReportFooter中的SubReport。我不知道在详细信息部分调用SubReport之后是否需要显示ReportHeader中的文本框和行。
如果详细信息部分中的SubReport确定它需要显示任何数据,则会更改父报表上PageHeader中的TextBox。 ReportFooter中的SubReport能够读取PageHeader上的TextBox,看它是否也应该显示任何数据。
如果PageHeader中的TextBox指示我应该呈现详细信息,则需要在ReportHeader部分中隐藏TextBox和Line。我怎样才能做到这一点?
这是我正在尝试的代码。我只显示颜色,所以我可以看到有什么可以改变我正在尝试的特定部分。
string display = "Do not display Info";
try
{
display = ((TextBox)rpt.Sections["PageHeader"].Controls["TextBox80"]).Value.ToString().Trim();
}
catch { }
if (display == "Display Info" )
{
((TextBox)rpt.Sections["ReportHeader"].Controls["TextBox20"]).Value = "";
((TextBox)rpt.Sections["ReportHeader"].Controls["TextBox20"]).BackColor = System.Drawing.Color.Red;
rpt.Sections["Detail"].BackColor = System.Drawing.Color.Green;
rpt.Sections["PageHeader"].BackColor = System.Drawing.Color.Blue;
rpt.Sections["GroupHeader2"].BackColor = System.Drawing.Color.Purple;
rpt.Sections["ReportFooter"].BackColor = System.Drawing.Color.Orange;
}
else
{
rpt.Sections["ReportFooter"].BackColor = System.Drawing.Color.Yellow;
}
答案 0 :(得分:0)
这不可能像你这样做。当AR呈现详细信息时,报表头已经呈现并且无法修改,将其视为已经打印过的纸张,我们无法将其退出。
正确的方法是在执行报表之前运行您在子报表中使用的逻辑,并使用该信息在reportheader中正确设置文本框的可见性。