在报告服务2008中,我有一个过滤器分组问题。
我想根据子组值的某些组合删除主组中的一些条目。
我可以创建一个表达式,当组合在组中或反向时显示为true,但如果我将此表达式应用于组,则它只返回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组的所有成员,则应显示第1组成员,如果第2组和第3组中的某个成员返回false,则应删除第1组中的条目。
如果我将上述表达式添加到第1组过滤器,它总是返回1.
问题在于,第一组中的成员是否由1,1,1,1或1,1,0,1组成 - 它总是在组一级返回1。
我该怎么办?
答案 0 :(得分:0)
听起来你需要逐个检查一个组的值,如果其中任何一个未通过测试,就会产生错误的结果。它可能会帮助您使用这样的表达式:
=count("your_group") <= sum(iif(Fields!your_field.Value = yourCondition, 1, 0), "your_group")
这将获取组中的总行数,然后与行符合您设置的条件的次数之和进行比较。因此,如果一行未通过测试,则表达式将返回false。此表达式的一个重要部分是“your_group”部分 - 称为指定范围,如果要在表达式中引用不同的组或级别,则该部分非常重要。更多细节here。你可能需要做一些工作才能使它适合你。