我正在查看 2005 年的报告生成器。我知道我可以提示过滤器,以便用户可以自己过滤数据。但是,如果他们不想这样呢?如何设置过滤器可选。所以他们要么看到一切,要么使用过滤器。
现在我只能有一个过滤的报告。
我正在查看 2005 年的报告生成器。我知道我可以提示过滤器,以便用户可以自己过滤数据。但是,如果他们不想这样呢?如何设置过滤器可选。所以他们要么看到一切,要么使用过滤器。
现在我只能有一个过滤的报告。
首先,您必须为所有参数设置默认值。对于数字参数,它可能是 0,对于 varchar - NULL 或空字符串。对于多值参数,我想说只包括所有可用值。所以假设您有报告参数:
UserIDParam, int, default value 0
UserNameParam, varchar, default value NULL
UserRelatedIDList, multivalue int, default value (0, 1, 2, 3, 4)
然后在查询中您只需在过滤器中使用 thouse 参数:
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 的报告服务 Sleazy Hacks 博客 - “全部”参数值
Chris Hays 的报告服务 Sleazy Hacks 博客 - “全部”参数值 Redux
SQLCenral 论坛 - 报告服务中的默认参数值
现在默认情况下过滤器不会过滤掉任何数据。
您还可以做的是在报表查看器中隐藏报表参数区域。如果您使用 ReportViewer 或使用 URL 提供对报告的访问权限,则可以配置Toolbar、Parameters和其他报告设置:
http://servername/reportserver?/YourReportName&rs:Command=Render&rs:Format=HTML4.0&rc:Parameters=false
将参数设置为:
true - 将显示参数面板,
false - 将隐藏参数面板,
Collapsed - 将隐藏参数面板,但最终用户可以切换。
请参阅使用 URL 访问参数