Lenka.Guo 发表于 2017-4-7 11:43:21

Left 内为什么要为空呢? 只要判断首字符为中文或英文就行了,为什么要判断“”,判断空格

sjsm 发表于 2017-4-7 12:03:57

郭老师不是的,我的实际代码是:

=IIF(len(Ltrim(Fields!programer_name.Value))>0,IIF(asc(Left(Ltrim(Fields!programer_name.Value),1))>=65 AND asc(Left(Ltrim(Fields!programer_name.Value),1))<=122,Arial,宋体),宋体)
就是说,当Fields!programer_name.Value是空的情况下,这个表达式就是错的。
而我说的=iif( " "=" ", "1222", IIF(ASC(Left("",1))>=65,"英文","汉语"))这个表达式,意思就是考虑的当我想要的值是空的情况下,不应该再报错了,结果还是报错。

Lenka.Guo 发表于 2017-4-7 15:50:34

本帖最后由 Lenka.Guo 于 2017-4-7 15:52 编辑

我觉得您的这个表达式这么嵌套多层,涉及多层判断,1影响报表加载性能。 2 不好排查错误,所以建议用脚本来编写函数来实现
脚本用法参考:http://blog.gcpowertools.com.cn/post/ConvertToRMB.aspx
页: 1 [2]
查看完整版本: asc()函数必须是非空的,我先提前判断下是否长度大于零,然后再执行有asc的判断,...