SSRS中的自定义Tablix过滤器

时间:2013-02-28 12:43:13

标签: sql-server-2008 reporting-services ssrs-2008

我有一个报告,显示一个充满原始数据的表格。 在输入此报告之前,父报告会要求您选择“服务”& '部门' 根据您从父报告中选择的服务/部门,将过滤此RAW数据以显示相关数据。

直接向前,它很有效。

我现在有了新的要求。 如果所选服务等于“服务X”,我需要在该服务,部门上再次过滤数据,还要在其“团队”上添加附加过滤器。

这样,当团队与运行报告团队的用户匹配时,也会过滤数据。

我已经创建了一个数据集,它返回运行报告“团队”的用户 还有一个名为“team”的新参数,默认为运行报告AD号'

的用户

新要求是,如果Service = X,则过滤部门上的数据,同时过滤用户团队中的数据,如果服务不等于X,则不执行任何操作。

我想我需要更改Tablix属性的Filters部分,但我不确定我需要在Expression,Operator,Value中放入什么

到目前为止,我在Expression中尝试了=IIf(Fields!Service.Value = "Service X", Fields!Team.Value, nothing),将运算符设置为In并尝试从我的新数据集中对“团队”进行过滤,该数据集存储当前用户的“团队”,但不是工作

有人有任何建议吗?

1 个答案:

答案 0 :(得分:0)

对于这些类型的条件过滤器,我使用IIf语句(或其他)返回字符串并根据该字符串进行过滤得到了最好的结果,例如:类似的东西:

=IIf(Parameters!Service.Value <> "Service X" or Parameters!Team.Value = Fields!Team.Value
    , "Include"
    , "Exclude")

然后,您可以将运算符设置为=,将过滤器值设置为Include。在我的经历中似乎更加强大。

阅读此内容,您甚至可以将IIf语句设置为数据集中的计算列,并对其进行过滤。