2009-07-20 15 views
4

J'ai un utilitaire de ligne de commande qui génère un rapport de cristal simple. J'ai récemment mis à jour le projet de .NET 1.1 à .NET 3.5 en utilisant le migrateur de Visual Studio 2008 et je reçois maintenant une erreur que je n'avais jamais reçue auparavant.Crystal Reports - Erreur de formule "Une chaîne est requise ici"

Le problème est dans la formule work_order qui est la suivante:

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; 

Et l'erreur est:

- 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} 

Est-ce que quelqu'un a une idée ce que cela peut être? Je n'ai plus d'indices. L'ensemble de données arrive correctement - et l'erreur semble pointer vers une ligne qui initialise simplement une variable.

Répondre

7

Vous pouvez essayer de transformer {FeedBOLInput.ShipWrkId} et {FeedBOLInput.ShipWrkSeq} en une chaîne afin de vous assurer qu'elle apparaît comme une chaîne.

Je ne sais pas pourquoi ce que vous avez ne fonctionnerait pas, mais voyez si ce qui suit fonctionne pour vous.

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

Merci, cela a fonctionné –