Estimado Foro:
Tengo una aplicacion que tiene, para la carga de los datos de una tabla muy extensa, un folder que contiene 5 dialogos. Este folder está incluido en un dialogo que tiene los botones Aceptar y Cancelar.
Como puedo hacer para que despues de pasar por el ultimo get del primer dialogo del folder pase al primer get del proximo dialogo del folder, ya que se para en el boton Aceptar.
Probe con oJump y con SetFocus pero no hace lo que necesito.
Cualquier ayuda bienvenida.
Cesar
Duda con folders
ola, probe esto:
espero ayude
saludos
Code: Select all
// 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("")
saludos