>I have a form that passes an entire array by reference as follows:
>THISFORM.PrintReport(@laNewInvoices)
>
>Then inside of the PrintReport() method I call a .prg and again pass the entire array as follows:
>DO (oapp.csyspath+'reports\rpsojour.prg') WITH laNewInvoices
>
>It took me awhile to figure out that I had to pass the array in the DO command without the @ (i.e. DO whatever.prg WITH @laNewInvoices results in syntax error).
>
>I receive the array in my rpsojour.prg just fine as follows:
>LPARAMETERS aNewInvoices
>
>I don't understand how I'm recieving the entire array without the @, and having UDFPARMS set to VALUE, but it works. The problem is, whenever I compile my .exe I get the following error:
>
>Program c:\majdata\reports\rpsojour.prg has the following errors:
> Unknown ANEWINVOICES - Undefined
>
You need to add an EXTERNAL ARRAY statement, to tell VFP that the array definition is external to the procedure or function. Add the line:
EXTERNAL ARRAY aNewInvoices
right after the LPARAMETERS statement. The message is a warning only; VFP can resolve the array reference properly at runtime, so no runtime error occurs. The EXTERNAL statement is applicable only at compile time.
>why is anewinvoices undefined and how do I get around it? I've been ignoring the compile error until I've had a chance to figure this out. My code is working as desired.