Array2ArrayObject(aData, aFld)
Posted: Thu Feb 23, 2017 6:22 am
Hi all,
I am trying to create a function that will receive a 2-dimensional array e.g. aData := Directory() and create Return an array of objects, where each element of the array can be accessed via the iVars supplied in aFld.
When I run the program I get error: Access to instance variable not allowed within instance-object
Thanks.
Joe
#include "CLASS.CH"
*
Function Array2ArrayObject(aData, aFld)
Local aRec[0], oaArray[0], nAttr
Local oRec := ClassObject( "Array2ArrayObject" )
IF oRec <> NIL
Return(oRec)
EndIf
IF Empty(aData)
Return nil
EndIf
DEFAULT aFld := aData[1]
nAttr := CLASS_EXPORTED + VAR_INSTANCE
aEval(aFld, {|e| e := {e, nAttr }},nil,nil,.t.)
oRec := ClassCreate( "Array2ArrayObject", nil, aFld)
aEval(aData, {|e|aRec := e, aEval(aRec, {|e,i| oRec:&(aFld[i,1]) := e}), Aadd(oaArray,oRec) },2)
ClassDestroy(oRec)
Return(oaArray)
I am trying to create a function that will receive a 2-dimensional array e.g. aData := Directory() and create Return an array of objects, where each element of the array can be accessed via the iVars supplied in aFld.
When I run the program I get error: Access to instance variable not allowed within instance-object
Thanks.
Joe
#include "CLASS.CH"
*
Function Array2ArrayObject(aData, aFld)
Local aRec[0], oaArray[0], nAttr
Local oRec := ClassObject( "Array2ArrayObject" )
IF oRec <> NIL
Return(oRec)
EndIf
IF Empty(aData)
Return nil
EndIf
DEFAULT aFld := aData[1]
nAttr := CLASS_EXPORTED + VAR_INSTANCE
aEval(aFld, {|e| e := {e, nAttr }},nil,nil,.t.)
oRec := ClassCreate( "Array2ArrayObject", nil, aFld)
aEval(aData, {|e|aRec := e, aEval(aRec, {|e,i| oRec:&(aFld[i,1]) := e}), Aadd(oaArray,oRec) },2)
ClassDestroy(oRec)
Return(oaArray)