报告表达帮助

时间:2009-12-15 19:16:27

标签: c# winforms reporting-services expression

我在WinForms应用程序的本地报表中使用以下表达式,但是当字段值为null时,我收到“#Error”:

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

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

我假设空值(或ZLS)不是问题,因为我在评估表达式的后半部分之前将它们拉出来。

任何可能导致此问题的想法?非常感谢帮助!

1 个答案:

答案 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评估为负数,我打赌这会导致您的问题。