我在WinForms应用程序的本地报表中使用以下表达式,但是当字段值为null时,我收到“#Error”:
=IIf(Fields!MyField.Value = "", "NULL", Left(Fields!MyField.Value, Len(Fields!MyField.Value) - 2))
我这样做是为了去除值的尾随逗号和空格。 IIf()工作,Left()工作,Len()工作...但不是当我添加表达式的“ - 2”部分时。
我假设空值(或ZLS)不是问题,因为我在评估表达式的后半部分之前将它们拉出来。
任何可能导致此问题的想法?非常感谢帮助!
答案 0 :(得分:0)
它看起来像你的内联,如果只筛选空字符串,然后将值赋值为null。空值(实际上是长度为1的字符串)将破坏此代码。
尝试使用:
=IIf(IsNull(Fields!MyField.Value), "NULL",
(IIf (Len(Fields!MyField.Value) < 2, "SHORT",
Left(Fields!MyField.Value, Len(Fields!MyField.Value) - 2)))
为了便于阅读,我添加了换行符。显然,您可以使用任何字符串代替“SHORT”。这可以防止Len(Fields!MyField.Value) - 2
评估为负数,我打赌这会导致您的问题。