>>>local os, od, oc
>>>os=create('ss')
>>>os.od.oc.getdata
>>>os=null
>>>
>>>define class ss as session
>>> od=null
>>> datasession = 2
>>> function init
>>> this.od=create('dd')
>>> endfunc
>>>enddefine
>>>
>>>define class dd as dataenvironment
>>> autoopentables=.t.
>>> function init
>>> this.addobject('oc','cc')
>>> with this.oc
>>> .cursorsource="custs"
>>> .database="test"
>>> .order="lname"
>>> .alias="custs"
>>> endwith
>>> endfunc
>>>enddefine
>>>
>>>define class cc as cursor
>>> function getdata
>>> wait window 'Testing...'+custs.cust+':'+custs.lname
>>> skip
>>> wait window 'Testing...'+custs.cust+':'+custs.lname
>>> endfunc
>>>enddefine
Terry,
Your code does autoopen the tables, but at the time the autoopen occurs, during creation of the object, there are no table to open in the DE. After the autoopen occurs you are then adding the cursors to the DE. You need to call teh Opentables from the dd.Init as the last call in the with/endwith construct, like so;
function init
this.addobject('oc','cc')
with this.oc
.cursorsource="custs"
.database="test"
.order="lname"
.alias="custs"
.OpenTables()
endwith