* Save the current buffer * Call from Save() and AddNew() * We need to make sure the hierarchy is not coming from a Valid() event * because this will generate an error * In Visual FoxPro 5, we are not allowed to call SetFocus() from a Valid() event LOCAL lcProgram,lnCompteur lcProgram=PROGRAM(1) lnCompteur=2 DO WHILE LEN(lcProgram)>0 lcProgram=EVALUATE('PROGRAM('+ALLTRIM(STR(lnCompteur))+')') lnCompteur=lnCompteur+1 IF UPPER(RIGHT(lcProgram,6))='.VALID' RETURN ENDIF ENDDO IF TYPE('_Screen.ActiveForm.ActiveControl')='O' IF UPPER(_Screen.ActiveForm.ActiveControl.BaseClass)=='GRID' * Test if this is an active grid column IF _Screen.ActiveForm.ActiveControl.ActiveColumn<>0 IF UPPER(EVAL('_Screen.ActiveForm.ActiveControl.Columns(_Screen.ActiveForm.ActiveControl.ActiveColumn).'+; TRIM(_Screen.ActiveForm.ActiveControl.Columns(_Screen.ActiveForm.ActiveControl.ActiveColumn).CurrentControl)+; '.BaseClass'))='OPTIONGROUP' _Screen.ActiveForm.ActiveControl.SetFocus() ELSE =EVAL('_Screen.ActiveForm.ActiveControl.Columns(_Screen.ActiveForm.ActiveControl.ActiveColumn).'+; TRIM(_Screen.ActiveForm.ActiveControl.Columns(_Screen.ActiveForm.ActiveControl.ActiveColumn).CurrentControl)+; '.SetFocus()') ENDIF ENDIF ELSE _Screen.ActiveForm.ActiveControl.SetFocus() ENDIF ENDIF