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

Try:

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

InStr will return an integer value of the position where the string searched for starts (if found). Therefore your boolean tests (1st argument of the IIf() function) need to determine if a number equal to or greater than 1 has been returned.

  • As you are searching for a string, the 0 being searched for in the string must be coded as "0".
  • If Fields!ProvinceID.Value returns an integer, then it too must be converted to a string using the CStr() function like so:

=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 に答える