2012-04-25 124 views
4

我在SSRS報告上有一個從存儲過程中獲取數據的tablix。SSRS在報告中沒有數據

我試圖向用戶顯示一個錯誤,當沒有數據存在時說:「**這個報告沒有數據* 」。我可以通過在Tablix的** NoRowsMessage屬性中指定此消息輕鬆完成此操作。但我想顯示Tablix的標題以及此消息。

如果我沒有設置NoRowsMessage屬性,我得到標題但沒有消息,但是如果我這樣做,我會得到消息但沒有標題。

我需要一些幫助。

注:我使用SSRS 2008

編輯:

我也可以把一個文本框與相關文字信息的表矩陣的下方,設置僅在表矩陣中沒有行,它是可見的。但我無法弄清楚如何從文本框的可見性表達中找出tablix是否包含任何行。

回答

5

tablix對象與底層數據集有關,因此如果沒有數據,則輸出中沒有表。

除了使用NowRowsMessage屬性以外,我唯一能想到的另一種方式是強制執行此操作,以確保查詢在返回行時返回空值佔位符。這種方式本質上是一個單一的數據行。

然後,您可以嘗試在表上添加條件表達式(即在詳細信息行的Visibility屬性中),以防止包含佔位符的任何行顯示出來。

因此,在您的查詢,你可以有:

IF (@@ROWCOUNT= 0) 
BEGIN 

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

END 

,然後在表的詳細信息行的可見性屬性:

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

編輯:另外,要檢查如果DataSet是空的SSRS並顯示一個包含您的消息/標題的矩形(如TooSik的評論中所述),則可以在可見性表達式中對此設置一個矩形:

=Iif(Rownumber("Dataset_Name")=0, False,True) 
+2

或者你可能有一堆Textfields按照一個包含你的標題的矩形分組......這個矩形應該有一個「可見性」規則,該規則僅在沒有數據時顯示該區域,當有數據時,正常的Tablix將顯示,否則,其容器中的Textfields將顯示(基本上是一個可見性切換)...只是一個想法! – ToOsIK 2012-04-25 16:08:00

+0

好吧,我正在考慮添加一個帶有相關信息的文本框,並在tablix中沒有行時顯示可見性。但我沒有理解如何從文本框的可見性表達式中檢查Tablix中的行數。 。 :( – 2012-04-25 16:19:56

+0

你會檢查數據集中的行數,而不是Tablix做到這一點。我已經添加了上面的語法。 – GShenanigan 2012-04-25 16:42:52