从ActiveReports 1.0版中的另一个部分隐藏ReportHeader中的Textbox

时间:2016-10-07 15:16:39

标签: c# activereports

我的报告包含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;
}

1 个答案:

答案 0 :(得分:0)

这不可能像你这样做。当AR呈现详细信息时,报表头已经呈现并且无法修改,将其视为已经打印过的纸张,我们无法将其退出。

正确的方法是在执行报表之前运行您在子报表中使用的逻辑,并使用该信息在reportheader中正确设置文本框的可见性。