>Hi all
>
>I've got a situation. Inherited code, BTW. A formset - which seems really superfluous in this case, has a form. The form dimensions an array in the load. That's a private array, almost public.
>
>DIMENSION SomeArray[10]
>
>A button on the form calls a PRG which contains the line:
>
>EXTERNAL ARRAY SomeArray
>
>The array is not passed to the PRG as a parameter.
>
>The PRG calls a UDF, passing the array like this.
>
>DO UDF WITH SomeArray
>
>The programmer attempted to receive the array in a UDF.
>PARAMETERS SomeArray
>
>Technically, the array wasn't passed, just the first element's value.
>
>Subsequent references prove that the array is virtually public. The name is consistent throughout the set of code.
>
>x=SomeArray[5]
>
>DISPLAY MEMO shows SomeArray as Hidden in the UDF,
>
>It's confusing but it works. I could dispense with passing and receiving the array, which would make it clearer, or re-engineer it to make it properly encapsulated, which means changing the UDFs.
>
>Or just document the existing situation.
>
>What would you do?
My first simple take would be to change the call from
DO User Defined Function WITH SomeArray
to
=UserDefinedFunction(@SomeArray)
Then I would probably get rid of formsets, make other changes, etc. You may use FoxUnit to test, how your changes affect this form.
If it's not broken, fix it until it is.
My Blog