2010-02-24 162 views
1

我有一些基於服務器的報告(* .rdl),它從SQL Server 2008視圖返回數據。 用戶希望能夠動態地添加濾波,例如報告服務:動態添加過濾器到服務器報告

  • 告訴我只用語言數據=英語,
  • 告訴我唯一的數據對於一個給定的組織單位

或類似的東西。過濾標準的數量相當小(四個或五個)。

但是我怎麼做到這一點?我有我的服務器上的RDL,與報表數據集內的基本查詢(SELECT (fields) FROM MyView WHERE ......) - 我怎麼可以動態地添加過濾到?

我希望我能夠定義數據集過濾器,但這些數據集過濾器似乎也必須在位(例如,它們成爲報表RDL本身的一部分)。

爲每個標準過於龐雜,我可以簡單地將其添加爲列表,並定義一個IN (list of values)一種過濾器的可能值.....

任何想法?思考?我錯過了什麼嗎?


解決方案:我解決它通過對上報數據集,這是我設置爲在報告後面都開始了「虛擬」過濾器的過濾選項,然後我更新,以實際過濾列和用戶在UI中指定的值。迄今爲止效果很好!

回答

1

它不是動態的(在用戶不得不重新運行報告的意義上),但是如果只有四個或五個具有多個值的參數,簡單的解決方案是添加一個多選參數他們每個人的報告都默認爲「全部」。

是否有原因導致用戶無法使用不同參數重新運行報表?

還是我誤解了你的意思是動態的?

+0

@Ed:對於其中的一個或兩個人來說,這將起作用 - 他們只有少數可能的值。然而,一些有潛在的可能值數百或數千,所以這不是真的可行。 – 2010-02-24 08:53:24

+0

@marc_s:你是否擔心由於可用性,性能或其他因素而導致值列表的大小?如果可用性問題,有可能以子分類列表成層次結構? – 2010-02-24 09:19:13

+0

@Ed:兩個,真的 - 一個有四到五個條目的列表是可以的,但是如果它有數百個或更多,它對於用戶來說既不是真正可管理的,也不是真正的性能好.... – 2010-02-25 05:54:56

0

如果我理解您的問題:

您可以使用參數進行過濾。如果你有使用ReportViewer控件用於顯示報告的應用程序,通過這個條件作爲參數傳遞給您的報告。您可以通過此參數管理可見性或數據過濾。