我试图在我选择多选ListBox时选择记录的情况下过滤我的参数。如果某人未选择记录,则默认选择“未选择”选项。问题是:
=IIF(
InStr(Join(Parameters!ProvinceID.Value,”,”),0),
True,
IIF(
InStr(Join(Parameters!ProvinceID.Value,”,”),
Fields!ProvinceID.Value
)<>0,
True,
False)
)
结果不允许使用正确的过滤器。
答案 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”)