2009-12-15 48 views
0

我使用下面的表达式在一个WinForms应用本地报表,但我收到“#错误”当字段值为null:报告表达帮助

=IIf(Fields!MyField.Value = "", "NULL", Left(Fields!MyField.Value, Len(Fields!MyField.Value) - 2)) 

我这样做是为了去掉一个尾随逗号和空格的价值。 IIf()的作品,Left()作品和Len()的作品......但不是当我在表达的“ - 2”部分添加时。

我认为空值(或ZLS)将是一个非问题,因为我将它们拉出来,然后评估表达式的后半部分。

任何想法可能导致这种情况?非常感谢援助!

回答

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评估为负数,我敢打赌是造成您的问题。