我正在 SSRS 2008 中创建一个“主”报告,它与其他关于一个人的报告协作。有时并非所有其他报告都是相关的,因此不会返回任何内容。我希望能够从主报告中排除它,这样它就不会留下空白页。
我知道'no-rows-message' 功能,但一个简单的“不适用于此人”的页面并不是最好的解决方案!
本质上,我正在寻找一种方法来确定子报表是否为“空”并在可见性表达式中使用它。
非常感谢任何帮助
我正在 SSRS 2008 中创建一个“主”报告,它与其他关于一个人的报告协作。有时并非所有其他报告都是相关的,因此不会返回任何内容。我希望能够从主报告中排除它,这样它就不会留下空白页。
我知道'no-rows-message' 功能,但一个简单的“不适用于此人”的页面并不是最好的解决方案!
本质上,我正在寻找一种方法来确定子报表是否为“空”并在可见性表达式中使用它。
非常感谢任何帮助
好的,所以我现在想通了。答案是将子报表放入一个矩形中。然后将矩形的可见性设置为如下所示:
=IIF(First(Fields![SOMEFEILD].Value, "[SOMEDATASET]") IS NOTHING, TRUE, FALSE)
[SOMEDATASET]
以与填充子报表相同的方式填充数据集的位置在哪里。那么如果子报表为空,那么[SOMEDATASET]
也将为空,更重要的是,该字段[SOMEFEILD]
将等于NOTHING
。
八大兵!一份没有浪费纸张的空白页面的报告。
注意:这种方法有一个不好的副作用,即 SQL 服务器将发送相同的信息两次,一次填充子报表的数据集,另一次填充报表中的重复数据集。对我来说,这是可以接受的,其他人可能想知道这一点。
该解决方案按预期对我有用,消除了子报告的超链接。在您指定子报告名称的部分的 «Action» 菜单中:
=iif(fields!SomfieldName.Value <> Nothing, "YourSubReportName",Nothing)
简单易行的解决方案!