0

我正在阅读位于此处的 Telerik Reporting 分步教程:

http://www.telerik.com/documents/TelerikReporting-LearningGuide.pdf

我完全按照实验室中的步骤:子报告部分(第 111-115 页)。所以这个实验是显示一个主从报告。运行报告时,UI 上有一个布尔编辑器(用户选择 True 或 False)。它应该工作的方式是,当加载报表时,主报表和详细子报表都会显示。如果用户选择 False,则应该隐藏子报表。

我得到了正确显示的主从报告。但是,在我添加了隐藏子报表的功能后,当我预览报表时,我收到以下错误消息:“处理子报表'subReport1'时发生错误:指定的转换无效”。问题在于以下声明:

(sender as Telerik.Reporting.Processing.SubReport).Visible = (bool)this.ReportParameters["ShowEmployees"].Value;

因此,据我所知,本教程是错误的。所以我在上面这个赋值语句的右侧尝试的转换是无效的。我也尝试了以下失败(仍然得到异常):

(sender as Telerik.Reporting.Processing.SubReport).Visible = Convert.ToBoolean(this.ReportParameters["ShowEmployees"].Value;

几天来,我一直在尝试一切以找到实现目标的替代解决方案,即在用户在布尔编辑器中选择 False 时隐藏子报表。有没有人知道

  1. 如何解决上述赋值语句中的演员表问题,或
  2. 如果用户在布尔编辑器中选择 False,隐藏子报表的替代解决方案?
4

1 回答 1

1

该教程从 Telerik Reporting 的 v.3 开始就出现了,我认为从那以后它就没有更新了。

您可以参考主报告并使用处理报告参数而不是定义,尝试以下代码基于报告参数隐藏子报告(虚拟代码,未经测试,所以你知道):

private void subReport1_ItemDataBound(object sender, System.EventArgs e)
{
    Processing.SubReport subReport = (Processing.SubReport)sender;
    Processing.Report mainRep = (Processing.Report)subReport.Parent;
    subReport.Visible = (bool)mainRep.Parameters["ShowEmployees"].Value;
}

有关更多信息,请参见此处:http ://www.telerik.com/help/reporting/designing-reports-parameters-programmatic-control.html

于 2013-06-11T09:11:46.337 回答