报表生成器,提示过滤器,如何忽略过滤器?

时间:2009-02-27 10:04:51

标签: reporting-services reportingservices-2005 reportbuilder

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

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

1 个答案:

答案 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