2013年5月7日 星期二

報表設計 - 查無資料時顯示特定文字與表頭資訊

        相信很多有設計報表的人都會遇到一件事,就是當此次的查詢條件查無資料時,在預設的情況下,並不會顯示任何的資訊,只會顯示標題而已,常有客戶困惑的問到,這樣到底是否有正常的執行,所以往往希望我們可以在沒有任何資料顯示的情況下,至少顯示 "查無資料" 等訊息。

        其實在2008之後,在Tablix上已有內建一個屬性,那就是NoRowsMessage(感謝Ray Yen大師的提點),只需在此屬性上設定後,即可顯示一段特定的文字,但問題來了,這樣的文字有點太過於簡單,而且重點是原本的表頭也不見了,所以客戶希望我們可以也同時秀出表頭的資訊。

        在以往的情況下,其實我們可以透過SQL語法的部份進行判斷,然後增加這個方式,但這個方法有點麻煩,而且每張報表都要這個功能時,都要再額外寫SQL進行處理,真是費時費工,還好貼心的Reporting Service也有一個方式可以作到,本篇我們就來介紹如何進行。

設定方式:
1、首先我們還是利用北風資料庫作了一張階層式的報表,然後透過屬性值來過濾資料。

2、接著請在此Tablix 1上的 NoRowsMessage 屬性中加入您想要顯示的值,比如說 "查無資料" 等,此時請再次進行查詢,然後您就可以看到顯示的情況。

3、請將原本的Tablix 1再複制一個複本出來,名稱暫訂為Tablix 2,然後放置在原本的Tablix 1的下方,如下圖。

4、請將原本的Tablix 1中的NoRowsMessage值清除,只保留下方Tablix 2中的值。
5、點選Tablix 2的Properties -> Visibility -> Show or hide based on an Expression

6、在運算式中輸入下方的語法,其中Fields!OrderID.Value就是你查詢的欄位名稱,輸入完成後再點選ok即可。

7、再次預覽,此時你就可以同時呈現表頭與特定文字。


參考連結:
Set a No Data Message for a Data Region (Report Builder and SSRS)
http://msdn.microsoft.com/zh-tw/library/dd220407.aspx


關鍵字:Reporting ServiceNoRowsMessageNo Data Available

沒有留言:

張貼留言