4

我在 SSRS 报告上有一个 tablix,它从存储过程中获取数据。

当没有数据存在时,我试图向用户显示消息,例如“**此报告没有数据* ”。我可以通过在 tablix 的 **NoRowsMessage 属性中指定此消息来轻松完成此操作。但我想与这条消息一起显示 tablix 的标题。

如果我不设置NoRowsMessage属性,我会得到标题但没有消息,但如果我这样做了,我会得到消息但没有标题。

我需要一些帮助。

注意:我使用的是 SSRS 2008。

编辑:

我还可以在 tablix 下方放置一个带有相关文本消息的文本框,并仅在 tablix 不包含行时将其设置为可见。但我无法弄清楚如何从文本框的可见性表达式中找出 tablix 是否包含任何行。

4

1 回答 1

6

Tablix 对象与基础数据集相关,因此如果没有数据,则输出中没有表。

除了使用NowRowsMessage属性之外,我能想到的唯一其他方法是确保您的查询在现在返回行时返回一个空值占位符。这样,您本质上将拥有一个数据行。

然后,您可以尝试在表格上添加一个条件表达式(即在详细信息行的 Visibility 属性上),以防止任何包含占位符的行出现。

因此,在您的查询中,您可以:

IF (@@ROWCOUNT= 0)
BEGIN

SELECT 
'[IAMEMPTY]' as [Col1]
,'[IAMEMPTY]' as [Col2]
,'[IAMEMPTY]' as [Col3]

END

然后在表的详细信息行的 Visibility 属性中:

=Iif(Fields!Col1.Value = "[IAMEMPTY]",True,False)

编辑:或者,要检查 SSRS 中的 DataSet 是否为空并显示包含您的消息/标题的矩形(如 TooSik 的评论中所述),您可以在 Visibility 表达式中设置一个矩形:

=Iif(Rownumber("Dataset_Name")=0, False,True)
于 2012-04-25T15:59:09.330 回答