报告服务表达式 #Error with "mid"

Reporting services expression #Error with "mid"

我对 Reporting Services 2012 中的表达式有疑问。表达式是:

iif(IsNothing(Fields!CHEGADA_LUME.Value)," ",mid(Fields!CHEGADA_LUME.Value,12,instr(Fields!CHEGADA_LUME.Value,":00")-12))

当,值为空(第一个条件为真)时,表达式returns“#Error”。但是,如果该值不为空,则表达式运行良好。

Iif 计算两个表达式而不管哪个 returns.

Mid 不能接受 null 作为值(它需要整数),所以当你的字符串为 null 时,你必须 return 0 作为 mid 的第三个参数,进行额外的检查。

=iif(
IsNothing(Fields!CHEGADA_LUME.Value),
" ",
mid(Fields!CHEGADA_LUME.Value,12,iif(
IsNothing(Fields!CHEGADA_LUME.Value),0,instr(Fields!CHEGADA_LUME.Value,":00")-12)
))