2009-12-15 71 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評估爲負數,我敢打賭是造成您的問題。