0

我正在查看 2005 年的报告生成器。我知道我可以提示过滤器,以便用户可以自己过滤数据。但是,如果他们不想这样呢?如何设置过滤器可选。所以他们要么看到一切,要么使用过滤器。

现在我只能有一个过滤的报告。

4

1 回答 1

1

首先,您必须为所有参数设置默认值。对于数字参数,它可能是 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 提供对报告的访问权限,则可以配置ToolbarParameters和其他报告设置:

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

参数设置为:
true - 将显示参数面板,
false - 将隐藏参数面板,
Collapsed - 将隐藏参数面板,但最终用户可以切换。
请参阅使用 URL 访问参数

于 2009-03-11T10:52:04.107 回答