*UpdateDE.prg Lparameters toDE,tcAppDb,tcPath Do setups && contains general "set" like set century on, exact off, ... Local Array aDEMembers[1] Local lnMembers,ix,lcMembers if !(Type('oApp')='O' and !IsNull(oApp)) && in case testing with customer's data public oApp tcAppDb = iif(empty(m.tcAppDb),"mydefault.dbc", m.tcAppDb) tcPath = iif(empty(m.tcPath), "myDefaultDataFolder",m.tcPath) oApp = CreateObject('myApp',m.tcAppDb,m.tcPath) endif lnMembers = Amembers(aDEMembers,toDE,2) For ix=1 To m.lnMembers With Evaluate('toDe.'+aDEMembers[m.ix]) If Lower(.BaseClass) == 'cursor' If Atc(oApp.cAppDBC,.Database) > 0 .Database = Addbs(oApp.cAppDataPath)+oApp.cAppDBC Else .CursorSource = Addbs(oApp.cAppDataPath)+Justfname(.CursorSource) Endif Endif Endwith Endfor Define Class myApp As Custom cAppDBC = '' cAppDataPath='' cCurPath = '' Procedure Init(tcAppDb,tcPath) This.cCurPath = Set('path') This.cAppDataPath = m.tcPath this.cAppDbc = (m.tcAppDb) set Path To (this.cAppDataPath+';'+This.cCurPath) Endproc Procedure Destroy Set Path To (This.cCurPath) Endproc Enddefine * And I have this in DE.BeforeOpenTables UpdateDe(this)Cetin