Page 1 of 1
para Antonio: problema con GET ON CHANGE en ultimo FWH
Posted: Sat Sep 08, 2007 10:25 am
by MOISES
Hola Antonio:
Hago esto:
REDEFINE GET cCODPOSTAL ID 104 OF oFld:aDialogs[ 1 ] ;
ON CHANGE( IIF( Empty( cDPOSTAL ), cDPOSTAL := cCODPOSTAL, ), oFld:Update() )
REDEFINE GET cDPOSTAL ID 103 OF oFld:aDialogs[ 3 ] UPDATE
De este modo, cuando se introduce cCODPOSTAL y cDPOSTAL está vacío, se completa este último campo con cCODPOSTAL.
Esto funcionaba pefectamente con la versión 2.4 de FWH, pero ahora ha dejado de funcionar. ¿Por qué?. ¿Cómo lo soluciono?
Muchísimas gracias. Salu2
Posted: Sat Sep 08, 2007 11:48 am
by Antonio Linares
Prueba a hacer:
REDEFINE GET cCODPOSTAL ID 104 OF oFld:aDialogs[ 1 ] ;
ON CHANGE( IIF( Empty( cDPOSTAL ), cDPOSTAL := cCODPOSTAL, ), oFld:aDialogs[ 3 ]:Update() )
Posted: Sat Sep 08, 2007 12:38 pm
by MOISES
Sigue sin funcionar, creo que es culpa de un cambio en los GETS. Pero antes funcionaba correctamente.
Posted: Sat Sep 08, 2007 1:19 pm
by Antonio Linares
Moises,
Comprueba por favor si suena el MsgBeep():
REDEFINE GET cCODPOSTAL ID 104 OF oFld:aDialogs[ 1 ] ;
ON CHANGE( IIF( Empty( cDPOSTAL ), cDPOSTAL := cCODPOSTAL, ), oFld:aDialogs[ 3 ]:Update(), MsgBeep() )
Posted: Sat Sep 08, 2007 2:33 pm
by MOISES
Sí funciona el msgbepp(), suena cada vez que se introduce un caracter.
Posted: Sat Sep 08, 2007 5:09 pm
by Antonio Linares
Prueba entonces así:
REDEFINE GET cCODPOSTAL ID 104 OF oFld:aDialogs[ 1 ] ;
ON CHANGE( IIF( Empty( cDPOSTAL ), cDPOSTAL := cCODPOSTAL, ), oGet:Refresh() )
REDEFINE GET oGet VAR cDPOSTAL ID 103 OF oFld:aDialogs[ 3 ] UPDATE
Posted: Sun Sep 09, 2007 5:46 pm
by Carlos Mora
MOISES wrote:Sí funciona el msgbepp(), suena cada vez que se introduce un caracter.
Creo que has elegido mal el evento para propagar el cambio.
Con la primera tecla cDPostal toma el valor de esa tecla, digamos 'X', es decir que ya no está nunca más vacía, asi es que solo va a cambiar con la primera tecla ya que Empty( cDPostal ) => .F..
Que tal 'On LOSTFOCUS' ? no me acuerdo si hay un evento así disponible, no tengo aca la FW, pero ese es el método. Chequea el Fivewin.ch para ver como se llama el evento en la declaracion del get.
Saludos,
Carlos.
Posted: Sun Sep 09, 2007 8:00 pm
by MOISES
Hola Carlos:
Muchas gracias por tu respuesta. Lo curioso es que este código si funcionaba en versiones anteriores de FWH.
Le he mandado a Antonio un ejemplo para testearlo a ver que me dice.
Salu2
Posted: Sun Sep 09, 2007 8:58 pm
by Antonio Linares
Moises,
>
REDEFINE GET cCODPOSTAL ID 104 OF oFld:aDialogs[ 1 ] ;
ON CHANGE( IIF( Empty( cDPOSTAL ), cDPOSTAL := cCODPOSTAL, ), oGet:Refresh() )
>
El efecto que conseguirías con ese código es que cDPOSTAL contenga el primer caracter de cCODPOSTAL. Es eso lo que quieres hacer ?
Posted: Mon Sep 10, 2007 10:18 am
by MOISES
Antonio:
No, lo que quiero es que cDPOSTAL sea cCODPOSTAL siempre que la primera este vacía y con toda su longitud. Pero ni siquiera coge el primer carácter.
Te envié un ejemplo para que lo puedas probar cuando tengas un rato libre. Te comento que con FWH 2.4 funcionaba sin problemas.
Muchas gracias. Salu2
Posted: Mon Sep 10, 2007 10:22 am
by Antonio Linares
Moises,
Tienes que hacerlo de esta forma:
REDEFINE GET cCODPOSTAL ID 104 OF oFld:aDialogs[ 1 ] ;
VALID ( IIF( Empty( cDPOSTAL ), cDPOSTAL := cCODPOSTAL, ), oGet:Refresh(), .T. )
En la versión 2.4 el ON CHANGE no funcionaba para cada pulsación de tecla
Posted: Tue Sep 11, 2007 8:40 am
by MOISES
Muchas gracias Antonio, funciona estupendo!!.