在activeports 1.0版本中隐藏ReportHeader中的文本框
本文关键字:ReportHeader 文本 隐藏 版本 activeports | 更新日期: 2023-09-27 18:11:59
我有一个报告,它有ReportHeader, PageHeader, GroupHeader1, GroupHeader2, Detail等,在Detail部分有一个子报告,在ReportFooter中有一个子报告。我不知道如果一个文本框和行在报告头需要显示,直到细节部分调用子报告。
如果Detail部分中的SubReport确定它需要显示任何数据,它将对父报告的PageHeader中的TextBox进行更改。ReportFooter中的SubReport能够读取PageHeader上的TextBox,以查看它是否也应该显示任何数据。
如果PageHeader中的TextBox指示我应该隐藏详细信息后,我需要隐藏一个TextBox和ReportHeader部分中的一行。我该怎么做呢?
这是我正在尝试的代码。我只显示颜色,这样我就可以看到从我正在尝试的特定部分可以改变什么。
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;
}
你这样做是不可能的。当AR渲染细节的时候,报告标题已经渲染出来了,不能修改,把它想象成一张已经打印出来的纸,我们不能把它倒出来。
正确的方法是在执行报表之前运行子报表中使用的逻辑,并使用该信息正确设置reportheader中文本框的可见性。