根据报告服务中的子组内容过滤主要组成员

Filter main group members based on subgroup content in reporting services

在 Reporting Services 2008 中,我遇到了过滤器分组问题。

我想根据子组值的某些组合删除主组中的一些条目。

我可以创建一个表达式,当组合在组内或相反时显示 true,但如果我将此表达式应用于组,它只是 returns false,因此所有组都被删除。

=IIF((Fields!Group2.Value Like "String1") AND (Fields!Group3.Value Like "String2"), 
1, 
IIF(Not(Fields!Group2.Value Like "String1"), 1, 0))

如果第 2 组的所有成员和第 3 组的所有成员都符合上述条件,则应该显示第 2 组和第 3 组的其中一个成员 returns false 组中的条目1 应删除。

如果我将上述表达式添加到第 1 组过滤器,它总是 return 1.

问题是第一组中的成员是否由 1,1,1,1 或 1,1,0,1 组成 - 在第一组中总是 returns 1。

我能做什么?

听起来您需要逐个检查一组值,如果其中任何一个未通过测试,则产生错误结果。它可能会帮助您使用这样的表达式:

=count("your_group") <= sum(iif(Fields!your_field.Value = yourCondition, 1, 0), "your_group")

这会获取您组中的总行数,然后与某行满足您设置的条件的次数总和进行比较。因此,如果一行未通过测试,表达式将为 return false。此表达式的重要部分之一是 "your_group" 部分 - 这称为指定范围,如果您想在表达式中引用不同的组或级别,这很重要。更多详细信息 here。您可能需要做一些工作才能使它适合您。