2009-07-20 46 views
4

我有一個命令行實用程序可以生成一個簡單的水晶報告。我最近使用Visual Studio 2008遷移器將項目從.NET 1.1更新到了.NET 3.5,現在我收到了一個我從未收到過的錯誤。Crystal Reports - 「這裏需要一個字符串」公式錯誤

的問題是work_order公式,比如下:

stringVar nvl_ship_wrk_id := "0"; 
stringVar nvl_ship_wrk_seq := "0"; 

If Not IsNull({FeedBOLInput.ShipWrkId}) Then 
    nvl_ship_wrk_id := {FeedBOLInput.ShipWrkId}; 

If Not IsNull({FeedBOLInput.ShipWrkSeq}) Then 
    nvl_ship_wrk_seq := {FeedBOLInput.ShipWrkSeq}; 

nvl_ship_wrk_id & " - " & nvl_ship_wrk_seq; 

和錯誤是:

- InnerException {"A string is required here. 
Error in File C:\\...\\temp_88c50533-02c6-4973-ae06-ed0ab1a603ac {0D5E96FB-038A-41C5-93A7-A9D199961377}.rpt: 
Error in formula <work_order>. 
'stringVar nvl_ship_wrk_id := \"0\"; 
' 
A string is required here."} System.Exception {System.Runtime.InteropServices.COMException} 

沒有人有任何想法是什麼這個可以嗎?我沒有線索。數據集進入正確 - 錯誤似乎指向只是初始化一個變量的行。

回答

7

您可以嘗試將{FeedBOLInput.ShipWrkId}和{FeedBOLInput.ShipWrkSeq}轉換爲字符串以確保它以字符串形式出現。

我不知道你爲什麼不能工作,但看看下面是否適合你。

stringVar nvl_ship_wrk_id := "0"; 
stringVar nvl_ship_wrk_seq := "0"; 

If Not IsNull({FeedBOLInput.ShipWrkId}) Then 
    nvl_ship_wrk_id := CStr({FeedBOLInput.ShipWrkId}); 

If Not IsNull({FeedBOLInput.ShipWrkSeq}) Then 
    nvl_ship_wrk_seq := CStr({FeedBOLInput.ShipWrkSeq}); 

nvl_ship_wrk_id & " - " & nvl_ship_wrk_seq; 
+1

謝謝,這工作 – 2009-07-21 18:57:49