能否在Report Builder 3.0中结合IsNothing与Lookup函数使用?
解决Report Builder 3.0中IsNothing与Lookup结合的表达式错误
当然可以把IsNothing和Lookup函数结合使用!你遇到的错误完全是语法括号不匹配导致的,不是这两个函数不能联用。
先看你写的表达式问题出在哪:
=IIF(IsNothing(Lookup(Fields!Activity.Value,Fields!Activity.Value,Fields!Pred_Activity.Value,"ds_Pred"),True,False)
你会发现,Lookup函数的右括号漏掉了,导致IsNothing被传入了两个参数(Lookup的未闭合调用 + 后面的True),这就触发了"Too many arguments to Public Function isNothing"的错误——毕竟IsNothing只接受一个参数,用来判断该值是否为Null。
修正后的正确表达式
把Lookup的括号补全,让IsNothing只接收Lookup的返回值作为参数就可以了:
=IIF(IsNothing(Lookup(Fields!Activity.Value, Fields!Activity.Value, Fields!Pred_Activity.Value, "ds_Pred")), True, False)
甚至可以更简化,因为IsNothing本身返回布尔值,不需要额外套IIF:
=IsNothing(Lookup(Fields!Activity.Value, Fields!Activity.Value, Fields!Pred_Activity.Value, "ds_Pred"))
这个简化后的表达式直接返回True/False,完全符合行可见性的需求(True隐藏行,False显示行,你可以根据实际需求调整逻辑)。
补充说明
Lookup函数在找不到匹配值时会返回Null,所以用IsNothing来判断这个结果是完全合理的场景,只要保证语法正确,这两个函数搭配使用没有任何问题。
内容的提问来源于stack exchange,提问作者Lisa Rose
相关产品推荐
相关产品推荐

