Page 1 of 1

PROBLEMA CON FOCO

Posted: Wed May 31, 2006 12:22 pm
by MANOLO
Hola tengo un sitema de facturación que estoy pasado a 32 bits con fwh 2.5 y harbour 44, mi problema es el siguiente, en clipper + fw funciona perfecto pero al compilar con harbour no pasa el foco al siguiente trazo, me explico:


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"
Esta es la funcion captura
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)

Posted: Wed May 31, 2006 7:09 pm
by Raymundo Islas M.
Hola Manolo

No te estara afectando el orden de tus controles en el dialogo ??

Quizas por ahi vayan los tiros... :wink:


Saludos

Posted: Wed May 31, 2006 9:33 pm
by MANOLO
Raymundo Islas M. wrote:Hola Manolo

No te estara afectando el orden de tus controles en el dialogo ??

Quizas por ahi vayan los tiros... :wink:


Saludos
gRACIAS raimundo, pero es lo primero que mire y el browse es el tab 20 siendo el apar[01] el 21 y asi consecutivamente, lo bueno es que una vez pasas por el apar[01] y sigues insertando lineas, ya no pasa, solo la primera vez que pasa de browse al get.

saludos.