我正在查看2005年的报告生成器。我知道我可以提示过滤器,以便用户可以自己过滤数据。但如果他们不想那样呢? 如何设置过滤器可选。所以要么他们看到了所有东西,要么他们使用过滤器。
现在我只能有一个过滤的报告。
答案 0 :(得分:1)
首先,您必须为所有参数设置默认值。对于数字参数,它可以是0,对于varchar - NULL或空字符串。对于多值参数,我会说只包括所有可用的值。
所以,让我们说你有报告参数:
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或使用网址提供对报告的访问权限,则可以配置工具栏,参数和其他报告设置:
http://servername/reportserver?/YourReportName&rs:Command=Render&rs:Format=HTML4.0&rc:Parameters=false
将参数设置为:
true - 将显示参数面板,
false - 将隐藏参数面板,
折叠 - 将隐藏参数面板,但最终用户可以切换
见Using URL Access Parameters