tengo un browse con twbrose que redefino el get focus de la siguiente forma:
oBPar:bGotFocus :={|| IF(oT:aTot[1]=0 .AND. oT:lFst,Captura(.T.),)}
diciendole que si no hay datos para editar o es el primer registro de una factura, me pase directamente a la captura de datos que la que presento más abajo, pues, hace el salto, pero cuando valido el primer get ot:apar[01] la primera vez, no salta al siguiente get, me ejecuta el valid, devolviendo .t. en el valid, pero no pasa al siguiente get. que sería el ot:apar[02]
Code: Select all
Estos son los gets de la captura:
REDEFINE GET oT:oPar[01] VAR oT:aPar[01] ID 110 OF oDlg PICTURE "@K!" VALID iif(lretro(odlg),.f.,Val_Prd(oT:aPar[1])) // CODIGO
REDEFINE GET oT:oPar[02] VAR oT:aPar[02] ID 111 OF oDlg PICTURE "@K!" valid val_per() // PERTENECE
REDEFINE GET oT:oPar[03] VAR oT:aPar[03] ID 112 OF oDlg PICTURE "@K!" // DESC.
REDEFINE GET oT:oPar[04] VAR oT:aPar[04] ID 113 OF oDlg PICTURE "99" VALID Val_Cap() // IVA
REDEFINE GET oT:oPar[05] VAR oT:aPar[05] ID 114 OF oDlg PICTURE "9999999.9" valid val_can() // cantidad
REDEFINE GET oT:oPar[06] VAR oT:aPar[06] ID 115 OF oDlg PICTURE PICGEN
REDEFINE GET oT:oPar[07] VAR oT:aPar[07] ID 116 OF oDlg PICTURE "99.9"
REDEFINE GET oT:oPar[08] VAR oT:aPar[08] ID 117 OF oDlg PICTURE "99.9"
donde como véis lo que hace es activar los get de la captura y al final hace un setfocus sobre el primer get ot:apar[01]
Code: Select all
STATIC FUNCTION Captura(Sw)
oT:lFst:=.F.
oT:lAdd:=Sw
IF Sw
oT:aPar[01]:=Space(10)
oT:aPar[02]:=Space(10)
oT:aPar[03]:=Space(30)
oT:aPar[04]:=2
oT:aPar[05]:=0
oT:aPar[06]:=0
oT:aPar[07]:=0
oT:aPar[08]:=0
ot:APAR[09]:=0
ELSE
IF (oDtemp)->estadolped
msgalert("Imposible modificar, Articulo ya servido...")
Return (NIL)
endif
oT:aPar[01]:=(oDtemp)->articulped
oT:aPar[02]:=(oDtemp)->pertenlped
oT:aPar[03]:=(oDtemp)->descrilped
oT:aPar[04]:=(oDtemp)->tipivalped
oT:aPar[05]:=(oDtemp)->cantidlped
oT:aPar[06]:=SI_EURO(OdTEMP,(oDtemp)->preciolped)
oT:aPar[07]:=(oDtemp)->descuelped
oT:aPar[08]:=(oDtemp)->comisilped
ot:apar[09]:=(oDtemp)->cajon__ped
ot:estado:=(oDtemp)->Estadolped
ENDIF
HabD_Cap(.T.)
oBPar:Disable()
oT:oPar[1]:SetFocus()
RETURN (NIL)