在SQL报表(RDL)中隐藏子报表
时间:2020-03-06 14:33:21 来源:igfitidea点击:
我有一堆打印报告并邮寄给客户的报告。报告的顶部是寄信人地址,左对齐。我被要求在报告中添加一个可选徽标。此徽标应保留在寄信人地址的左边。 (徽标和所有其他信息都存储在数据库中)。因此,如果徽标存在,则我们应该看到:
<someimage> <返回地址>
如果没有徽标,我们应该看到:
<寄信人地址>
在许多不同的报表中可以放置许多不同的徽标,因此为了简化工作,将徽标实施为子报表。子报表仅获取正确的徽标图像,然后自动显示在报表中。
我遇到的问题是这个。如果日志不存在,则我们希望返回地址保持对齐,如上所示。但是发生的是,尽管子报表什么也没显示,但它仍然占用徽标将要占用的空间,并且返回地址浮动在页面左侧的右侧。
<Return Address>
因此...是否有一个设置,我可以使用/设置该子报表以使其不显示,或者如果没有要显示的徽标,则不占用任何空间?
抱歉,希望我说得足够清楚。我对RDL完全陌生。
解决方案
我们应该能够在子报表的可见性上设置一个表达式,以便在没有徽标的情况下不显示该表达式。
这是我方便使用的RDL中的XML:
<Subreport Name="SubReport"> <ReportName>SubReport</ReportName> <Visibility> <Hidden>=Not Parameters!ShowLogo.Value</Hidden> </Visibility> </Subreport>
这将针对名为ShowLogo的布尔参数进行测试,但我们可以轻松地测试另一个参数的值(也许是URL的长度?)。
为了清楚起见,在为"隐藏"属性指定表达式时,希望在要显示元素时将其评估为False。如果表达式的计算结果为True,则表示该元素将被隐藏。