代码之家  ›  专栏  ›  技术社区  ›  Brian

如何在SSRS 2008中抑制空子报表

  •  7
  • Brian  · 技术社区  · 17 年前

    我在2008年的SSRs中创建了一个“主”报告,它与关于一个人的其他报告协作。有时,并非所有其他报告都是相关的,因此没有任何回报。我希望能够将它从主报告中排除,这样它就不会留下空白页。

    我知道“无行消息”功能,但是一整页简单的“不适用于此人”并不是最好的解决方案!

    实际上,我正在寻找一种方法来确定子报表是否为“空”,并在可见性表达式中使用它。

    任何帮助都是最感激的

    2 回复  |  直到 8 年前
        1
  •  13
  •   ypercubeᵀᴹ    11 年前

    好吧,我现在就知道了。答案是将子报表放置到一个矩形中。然后将矩形的可见性设置为如下所示:

    =IIF(First(Fields![SOMEFEILD].Value, "[SOMEDATASET]") IS NOTHING, TRUE, FALSE)
    

    在哪里? [SOMEDATASET] 数据集的填充方式与子报表的填充方式相同。如果子报表为空,则 [索马达塔塞特] 也将是空的,更多的指向点,字段 [SOMEFEILD] 将等于 NOTHING .

    八达兵!一份没有浪费纸张的空白页的报告。

    注意:这种方法有一个不良的副作用,即SQL Server将发送相同的信息两次,一次用于填充子报表的数据集,另一次用于填充报表中的重复数据集。对我来说,这是可以接受的,其他人可能想知道这一点。

        2
  •  0
  •   Amazigh.Ca    8 年前

    这个解决方案如预期的那样为我工作,消除了到子报表的超链接。在指定子报表名称的部分的“操作”菜单中:

    =iif(fields!SomfieldName.Value <> Nothing, "YourSubReportName",Nothing)
    

    简单易行的解决方案!

    推荐文章