0

我正在查看2005年的報告生成器。我知道我可以提示過濾器,以便用戶可以自行過濾數據。但是如果他們不想要那樣呢? 如何設置可選的過濾器。所以無論他們看到了一切還是他們使用了過濾器。Report Builder,提示過濾器,如何忽略過濾器?

現在我只能有一個過濾的報告。

回答

1

冷杉,你必須設置所有參數的默認值。對於數字參數,它可以是0,對於varchar - NULL或空字符串。對於多值參數,我會說只包含所有可用的值。 因此,可以說你有報告PARAMS:
UserIDParam,INT,默認值爲0
UserNameParam,VARCHAR,默認值爲NULL
UserRelatedIDList,多值INT,默認值(0,1,2,3,4)
然後在查詢您只需要使用thouse PARAMS濾鏡:

SELECT U.ID, U.Name, U.Phone, U.Adress, RU.ID, RU.Name, RU.Phone, RU.Adress 
FROM Users U 
LEFT JOIN RelatedUsers RU ON U.ID = R.UserID 
LEFT JOIN Users ON R R.RelatedUserID = ON RU.ID 
WHERE ((ISNULL(@UserIDParam, 0) = 0) OR (U.ID = @UserIDParam)) AND 
    ((ISNULL(@UserNameParam, '') = '') OR (U.Name = @UserNameParam)) AND 
    ((0 IN (@UserRelatedIDList) AND R.UserID IS NULL) OR 
     (R.UserID IN (@UserRelatedIDList))) 

Chris Hays's Reporting Services Sleazy Hacks Weblog - "All" Parameter Value
Chris Hays's Reporting Services Sleazy Hacks Weblog - "All" Parameter Value Redux
SQLCenral Forum - Default Parameter Value in the Reporting Services

現在默認過濾器不會過濾掉任何數據。
您還可以做的是在報告查看器中隱藏報告參數區域。如果您提供訪問與的ReportViewer,或使用URL您的報告,您可以配置工具欄參數和其他報告設置:

http://servername/reportserver?/YourReportName&rs:Command=Render&rs:Format=HTML4.0&rc:Parameters=false 

設置參數到:
真 - 將顯示參數面板,
false - 將隱藏參數面板,
摺疊 - 將隱藏參數面板,但可以由最終用戶切換。
請參閱Using URL Access Parameters