Concuerdo con Fidel. La mejor forma (la unica forma, creo), es pasar un objeto y almacenar el array en una propiedad de dicho objeto. Ya que los objetos siempre son pasados por referencia, puedes manipular el array directamente en el form y los cambios regresaran al punto de llamada sin necesidad de usar el DO FORM TO.
Para crear el objeto parametro, puedes hacer:
LOCAL oParam
oParam = CREATE("Custom")
oParam.addPropertyt"aDatos[1,1]", NULL)
para copiar los datos del array origen a esa propiedad:
ACOPY(tuArrayDatos, oParam.aDatos)
luego invocas el form:
DO FORM myForm WITH oParam
en el Init del form:
PROCEDURE poParam
THISFORM.addProperty("oParam", poParam)
luego, en cualquier parte del form puedes acceder al array de esta forma:
THISFORM.oPAram.aDatos[fila.columna]
finalmente, cuando vuelvas del Form puedes copiar los datos a tu array original:
ACAOPY(oParam.aDatos, tuArrayDatos)
Saludos
Victor Espina