2012-09-19 59 views
0

我正在使用SSRS 2008 R2。我的RDL有幾個子報表,它們都只從這個父RDL獲取一個字段值作爲它們的輸入。這一個字段值被稱爲「people_id」。雖然有些情況下,從父RDL返回0個記錄。發生這種情況時,我收到以下錯誤,當我運行從父RDL此報告:如何將子參數替換爲NULL參數?

An error occurred during local report processing. Object reference not set to an instance of an object. 

即使我嘗試了我的子報表paremeter值設置爲兩種:

people_id 

=iif(isnothing(Fields!people_id.Value),"",Fields!people_id.Value) 

如何在沒有記錄時成功避免此錯誤?

回答

0

而不是= iif(isnothing(Fields!people_id.Value),「」,Fields!people_id.Value),你可以嘗試= iif(isnothing(Fields!people_id.Value),NOTHING,Fields!people_id.Value )?

1

我想這太遲了,但在幫助其他人的情況下。

表達式中的某些值可以在報告處理時評估爲null或未定義。這可能會創建運行時錯誤,導致在文本框中顯示#Error而不是評估的表達式。 IIF函數對此行爲特別敏感,因爲與If-Then-Else語句不同,IIF語句的每個部分在被傳遞到測試true或false的例程之前被評估(包括函數調用)。如果Fields!Sales.Value是NOTHING,則語句= IIF(Fields!Sales.Value是NOTHING,0,Fields!Sales.Value)將在呈現的報表中生成#Error。

http://msdn.microsoft.com/en-us/library/ms157328.aspx

我有一個類似的問題,並編寫自定義功能ened起來。