>*this is more than twelve years old >*it creates sort of 'pointers' into arrays >*named after the open tables >*so you can change the structure of the table >*and don´t need to change data binding >SET SAFETY OFF >CREATE TABLE test (c12 C(12) NOT NULL, n31 N(3,1) NOT NULL ) >SET SAFETY ON >PUBLIC aTbl(1,2) >aTbl(1,1)=ALIAS() >aTbl(1,2)="t" &&table signature >FOR m.nCntr1=1 TO 1 &&actually iterate over open tables >* use name expr to create public array >* dimensioned to the fcount() of the table > PUBLIC ("r"+LOWER(ALIAS())+"("+LTRIM(STR(FCOUNT(),3))+")") >* use name expr to scatter to this array Thanks for the reply. > SCATTER MEMO TO ("r"+ALIAS()) > FOR m.nCntr2=1 to FCOUNT() >* create variable names from table signature+field name >* resulting in: tC12 and tN31 > m.cTmp=aTbl(m.nCntr1,2)+FIELD(m.nCntr2) > PUBLIC (m.cTmp) >* assign the 'pointer' value to the var ONLY POSSIBLE WITH MACRO >* resulting in: tC12=1, tN31=2 > &cTmp=m.nCntr2 >* for demo purposes only: > ?(m.cTmp) >* a bit funny > ?(EVALUATE(m.cTmp)) >* eVALuate() to get the VALUE!!! > ?EVALUATE(m.cTmp) > ENDFOR >ENDFOR >*check in debugger before clearing >*CLEAR ALL >>