我對你所有的SQL Server 2008報告大師有一個腦筋急轉彎:-)Reporting Services - 動態選擇正確的數據源/動態更改WHERE子句?
我有一個報告顯示一堆數據,包括用戶的UserID和OrgUnitID。這是一個服務器報告,我在ASP.NET應用程序中在服務器上呈現。
我的要求是,
「正常」用戶只能看到自己的數據行(基本上
SELECT (fields) FROM dbo.DataView WHERE UserID = @UserID
)特權用戶可以看到他的所有下屬;我有一個表值函數,提供該功能(基本上
SELECT (fields) FROM dbo.DataView
)
INNER JOIN dbo.OrgHierarchy ON DataView.OrgUnitID = OrgHierarchy.OrgUnitID
本身這兩種情況都工作得很好 - 問題是:我應該結合這些成一個單一的報告。
我該怎麼做?如何根據我傳入的報表參數(@UserLevel
; 0 =正常用戶,1 =特權)動態地生成報表,而使用一個查詢或另一個查詢?
我真的不想進入動態重寫SQL查詢....任何其他的想法?
我在想有兩個獨立的不同的數據集,然後就在激活基礎上的UserLevel參數「正確」的一個 - 但我似乎無法找出如何定義子報表上的數據集或一個文本框......
然後,我希望我能夠在我的服務器報告中動態地從我的客戶端應用程序添加一個過濾器到我的數據集 - 但這似乎不可能, .....我可以創建一個「UserID = @UserID」設置的過濾器,並根據需要以某種方式啓用/禁用它,在報表本身的嵌入式VB代碼中?
任何接受者?野外的想法?讓我知道!
有趣的想法 - 我將不得不認爲通過 - 謝謝! – 2010-02-17 16:31:07
你給我的啓發:-)我沒有使用這種確切的語法,但你的迴應讓我走上了正確的軌道 - 謝謝! – 2010-02-25 11:52:52