控制具有过滤器的SSRS 2008中图表的隐藏属性

时间:2012-10-03 14:36:10

标签: reporting-services filter charts hidden

我在矩阵中有一组图表。每个图表都根据特定的过滤器集显示数据。在当前方案中,如果图表中没有数据,则显示为空白。我已经验证了“NoDataMessage”,但没有运气。

为了解决这个问题,我在文本框中添加了“No Data available”文本,并根据特定图表中的数据控制其显示。

每张图表都有三个过滤器。任何人都可以帮我制定文本框隐藏属性的表达式吗?三个过滤器中的每一个都会检查特定数据。

3 个答案:

答案 0 :(得分:1)

我发布此解决方案,以便将来可以帮助某人。

  1. 在单元格中,添加一个矩形。
  2. 在矩形内部,添加所需的图表和带有“无数据可用”文本的TextBox。
  3. 设置图表的隐藏属性以及文本框以切换可见性,如下所示。
  4. 下面的示例公式可用于在检查数据时考虑所需的行。 隐藏财产:

    =IIF( 
    IsNothing( SUM( IIF(Fields!TypeOfSection.Value = "Win",Fields!USD_EXT_PRICE1.Value,Nothing ))) 
    AND IsNothing( SUM( IIF(Fields!TypeOfSection.Value = "Win",Fields!USD_EXT_PRICE2.Value,Nothing ) ))
    AND IsNothing( SUM( IIF(Fields!TypeOfSection.Value = "Win",Fields!USD_EXT_PRICE3.Value,Nothing )))
    ,**false,true**
    )
    

    我在这里检查列TypeOfSection的值,以便只考虑SUM所需的行值。

    因此,通过交换false,true值,上面的公式可以用于Chart和Text框。

答案 1 :(得分:0)

只是为了帮助其他有类似问题的人......

如果您使用子报表来显示图表,那么您看不到任何消息的原因是,如果子报表的每个数据集都没有返回任何内容,则SSRS会隐藏子报表。

为了显示子报告并看到“无数据可用”消息,您必须添加一个虚拟数据集(到子报告),返回至少一个元素(即SELECT 1 AS DUMMY)。

答案 2 :(得分:0)

如果您使用子报表在表格或矩阵中显示图表并希望显示“无数据”消息,请转到父报表,单击子报表,然后打开子报表的属性窗口并将NoRowsMessage设置为您的想要的消息。您还可以将某些样式应用于消息,如颜色和字体。

对于一篇非常好的教程,请看这篇博文: SQL Server Reporting Services Tips and Tricks by Dattatrey Sindol