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