s-s-rS 中的自定义 tablix 过滤器

Posted

技术标签:

【中文标题】s-s-rS 中的自定义 tablix 过滤器【英文标题】:Custom tablix filters in s-s-rS 【发布时间】:2013-02-28 12:43:12 【问题描述】:

我有一份报告,其中显示了一个完整的原始数据表。 在输入此报告之前,父报告会要求您选择“服务”和“部门” 根据您从父报告中选择的服务/部门,此 RAW 数据将被过滤以显示相关数据。

直截了当,而且效果很好。

我现在有一个新要求。 如果选择的服务等于“服务 X”,我需要在该服务、部门再次过滤数据,还需要在他们的“团队”上添加额外的过滤器。

以便在团队与运行报告团队的用户匹配的地方也将过滤数据。

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

新的要求是,如果是Service = X,那么过滤该部门的数据,还要过滤THAT用户“团队”的数据,如果Service不等于X,什么都不做。

我想我需要更改 Tablix 属性的过滤器部分,但不确定我需要在表达式、运算符、值中添加什么

到目前为止,我已经在表达式中尝试了=IIf(Fields!Service.Value = "Service X", Fields!Team.Value, nothing),将运算符设置为In,并尝试从存储当前用户“团队”的新数据集中过滤“团队”,但它不起作用。

有人有什么建议吗?

【问题讨论】:

【参考方案1】:

对于这些类型的条件过滤器,我使用IIf 语句(或其他)返回一个字符串并基于它进行过滤,例如类似:

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

然后您可以将运算符设置为=,将过滤器值设置为Include。根据我的经验,它似乎更强大。

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

【讨论】:

以上是关于s-s-rS 中的自定义 tablix 过滤器的主要内容,如果未能解决你的问题,请参考以下文章

s-s-rS 2008:如何在不使用向导的情况下定义 Table/Tablix 样式?

如何在 s-s-rS 中使用 OR 关键字在 tablix 过滤中使用 LIKE

s-s-rS 2008:子报表中的 Tablix 标题不重复

s-s-rS 2014 的自定义代码

s-s-rS 报告不解析多个 xml 元素

在 s-s-rS 2008 R2 中计算 Tablix 中的加权平均值