ola, probe esto:
// no valid del ultimo get del dialogo 1
@ 10,01 GET oGet1_8 VAR nValo1 PICT "9,999,999.99" OF oFold:aDialogs[1] valid EVAL({|| oFold:SetOption(2),.T.})
// no valid del ultimo get del dialogo 2
@ 10,01 GET oGet2_8 VAR nValo2 PICT "9,999,999.99" OF oFold:aDialogs[2] valid EVAL({|| oFold:SetOption(3),.T.})
// no valid del ultimo get del dialogo 3
@ 10,01 GET oGet3_8 VAR nValo3 PICT "9,999,999.99" OF oFold:aDialogs[3] valid EVAL({|| oFold:SetOption(4),.T.})
// no valid del ultimo get del dialogo 4
@ 10,01 GET oGet4_8 VAR nValo4 PICT "9,999,999.99" OF oFold:aDialogs[4] valid EVAL({|| oFold:SetOption(5),.T.})
// con bChange controla el foco en primero get del dialogo
oFold:bChange = {|| IF(oFold:nOption=2,xSetFocus(oGet2_1),;
IF(oFold:nOption=3,xSetFocus(oGet3_1),;
IF(oFold:nOption=4,xSetFocus(oGet4_1),;
IF(oFold:nOption=5,xSetFocus(oGet5_1),.T.)))) }
// xSetFocus function
// gracias a FiveWin Brasil
FUNCTION xSetFocus( obj )
LOCAL oTempo := ""
LOCAL cClassName := UPPER( obj:ClassName() )
IF "TGET" $ cClassName
Define Timer oTempo Interval 10 Of obj:oWnd Action (obj:SetFocus(),;
obj:SetPos(0),oTempo:Deactivate() )
ELSE
Define Timer oTempo Interval 10 Of obj:oWnd Action (obj:SetFocus(),;
oTempo:Deactivate() )
ENDIF
Activate Timer oTempo
RETURN("")
espero ayude
saludos