我在SSRS报告上有一个Tablix,它从存储过程中获取数据。
我试图在没有数据时向用户显示一个meesage说“**此报告没有数据* ”。我可以通过在Tablix的** NoRowsMessage 属性中指定此消息来轻松完成此操作。但我想显示Tablix的标题以及此消息。
如果我没有设置 NoRowsMessage 属性,我会收到标题但没有消息,但是如果我这样做,我会得到消息但没有标题。
我需要一些帮助。
注意:我使用的是SSRS 2008。
编辑:
我还可以在Tablix下面放置一个带有相关文本消息的文本框,并且只有在tablix不包含任何行时才将其设置为可见。但我无法弄清楚如何从文本框的Visibility表达式中找出Tablix是否包含任何行。
答案 0 :(得分:5)
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)