* form builder test CLEAR DELETE FILE c:\crap\mylog.txt Public ltest[1] Aselobj(ltest,1) oMyFrm = ltest[1] For Each oCtrl In oMyFrm.Controls If Alltrim(Lower(oCtrl.Class)) == [pageframe] Do ProcessPageFrame With oCtrl Endif If Alltrim(Lower(oCtrl.Class)) == [srchfield] Do ProcessSrchField With oCtrl Endif Next oCtrl CLOSE TABLES all CLOSE DATABASES all CLEAR ALL RELEASE ALL SET CLASSLIB TO Procedure ProcessPageFrame Lparameters oPageFrame Local oPage For Each oPage In oPageFrame.Pages STRTOFILE(oPage.Name+CHR(13)+CHR(10),[c:\crap\mylog.txt],1) DO Processpage WITH oPage Next oCtrl Endproc PROCEDURE ProcessPage Lparameters oPage LOCAL oCtrl For Each oCtrl In oPage.Controls If Alltrim(Lower(oCtrl.Class)) == [pageframe] Do ProcessPageFrame With oCtrl Endif If Alltrim(Lower(oCtrl.Class)) == [srchfield] Do ProcessSrchField With oCtrl Endif Next oCtrl ENDPROC PROCEDURE ProcessSrchField LPARAMETERS oCtrl STRTOFILE(oCtrl.Class + [:] + oCtrl.Name+CHR(13)+CHR(10),[c:\crap\mylog.txt],1) LOCAL cSrc, cAlias, cTag cSrc = oCtrl.controlsource cAlias = GETWORDNUM(cSrc,1,[.]) cTag = GETWORDNUM(cSrc,2,[.]) oCtrl.icsrchAlias = cAlias oCtrl.icsrchTag = cTag cSrc = oCtrl.readmethod([GotFocus]) *oCtrl.resettodefault([GotFocus]) ENDPROC