过滤SSRS

时间:2012-10-12 12:03:56

标签: ssrs-2008

我试图在我选择多选ListBox时选择记录的情况下过滤我的参数。如果某人未选择记录,则默认选择“未选择”选项。问题是:

=IIF(
     InStr(Join(Parameters!ProvinceID.Value,”,”),0),
     True,
     IIF(
         InStr(Join(Parameters!ProvinceID.Value,”,”),
               Fields!ProvinceID.Value
         )<>0,
         True,
     False)
 )

结果不允许使用正确的过滤器。

3 个答案:

答案 0 :(得分:0)

InStr(Join(Parameters!ProvinceID.Value,”,”),0)

不应该0为“0”

答案 1 :(得分:0)

尝试:

=IIf(
         InStr(Join(Parameters!ProvinceID.Value, ", "), "0") > 0
         ,True
         ,IIf(
                InStr(Join(Parameters!ProvinceID.Value, ", "), Fields!ProvinceID.Value) > 0,
                ,True
                ,False
             )
     )

InStr将返回搜索字符串的位置的整数值(如果找到)。因此,您的布尔测试(IIf()函数的第一个参数)需要确定是否已返回等于或大于1的数字。

  • 在搜索字符串时,字符串中搜索的0必须编码为"0"
  • 如果Fields!ProvinceID.Value返回一个整数,那么它也必须使用CStr()函数转换为字符串,如下所示:

=IIf(
         InStr(Join(Parameters!ProvinceID.Value, ", "), "0") > 0
         ,True
         ,IIf(
                InStr(Join(Parameters!ProvinceID.Value, ", "), CStr(Fields!ProvinceID.Value)) > 0,
                ,True
                ,False
             )
     )

答案 2 :(得分:0)

你在比较什么?通常IIF需要类似= IIF(Fields!ListBox1.Value =“value”,“option1”,“option2”)

= IIF(Fields!Eyes.Value =“Green”,“Green”,“Other Color”)