在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,则表示该元素将被隐藏。