1

我正在尝试在选择多项选择 ListBox 时选择一条记录的条件下过滤我的参数。如果一个人没有选择记录,它默认选择“未选择”选项。问题是:

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

结果不允许使用适当的过滤器。

4

3 回答 3

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
             )
     )
于 2012-10-16T06:18:45.177 回答
0
InStr(Join(Parameters!ProvinceID.Value,”,”),0)

0不应该是“0”吗

于 2012-10-12T12:09:48.117 回答
0

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

=IIF(字段!Eyes.Value =“绿色”,“绿色”,“其他颜色”)

于 2013-10-22T16:29:44.090 回答