para Antonio: problema con GET ON CHANGE en ultimo FWH

Post Reply
MOISES
Posts: 824
Joined: Wed Aug 22, 2007 10:09 am

para Antonio: problema con GET ON CHANGE en ultimo FWH

Post 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
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Post 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() )
regards, saludos

Antonio Linares
www.fivetechsoft.com
MOISES
Posts: 824
Joined: Wed Aug 22, 2007 10:09 am

Post by MOISES »

Sigue sin funcionar, creo que es culpa de un cambio en los GETS. Pero antes funcionaba correctamente.
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Post 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() )
regards, saludos

Antonio Linares
www.fivetechsoft.com
MOISES
Posts: 824
Joined: Wed Aug 22, 2007 10:09 am

Post by MOISES »

Sí funciona el msgbepp(), suena cada vez que se introduce un caracter.
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Post 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
regards, saludos

Antonio Linares
www.fivetechsoft.com
Carlos Mora
Posts: 988
Joined: Thu Nov 24, 2005 3:01 pm
Location: Madrid, España

Post 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.
MOISES
Posts: 824
Joined: Wed Aug 22, 2007 10:09 am

Post 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
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Post 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 ?
regards, saludos

Antonio Linares
www.fivetechsoft.com
MOISES
Posts: 824
Joined: Wed Aug 22, 2007 10:09 am

Post 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
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Post 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
regards, saludos

Antonio Linares
www.fivetechsoft.com
MOISES
Posts: 824
Joined: Wed Aug 22, 2007 10:09 am

Post by MOISES »

Muchas gracias Antonio, funciona estupendo!!.
Post Reply