para Antonio: problema con GET ON CHANGE en ultimo FWH

para Antonio: problema con GET ON CHANGE en ultimo FWH

Postby MOISES » Sat Sep 08, 2007 10:25 am

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

Postby Antonio Linares » Sat Sep 08, 2007 11:48 am

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

Postby MOISES » Sat Sep 08, 2007 12:38 pm

Sigue sin funcionar, creo que es culpa de un cambio en los GETS. Pero antes funcionaba correctamente.
MOISES
 
Posts: 838
Joined: Wed Aug 22, 2007 10:09 am

Postby Antonio Linares » Sat Sep 08, 2007 1:19 pm

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

Postby MOISES » Sat Sep 08, 2007 2:33 pm

Sí funciona el msgbepp(), suena cada vez que se introduce un caracter.
MOISES
 
Posts: 838
Joined: Wed Aug 22, 2007 10:09 am

Postby Antonio Linares » Sat Sep 08, 2007 5:09 pm

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

Postby Carlos Mora » Sun Sep 09, 2007 5:46 pm

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.
Carlos Mora
 
Posts: 989
Joined: Thu Nov 24, 2005 3:01 pm
Location: Madrid, España

Postby MOISES » Sun Sep 09, 2007 8:00 pm

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

Postby Antonio Linares » Sun Sep 09, 2007 8:58 pm

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

Postby MOISES » Mon Sep 10, 2007 10:18 am

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

Postby Antonio Linares » Mon Sep 10, 2007 10:22 am

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

Postby MOISES » Tue Sep 11, 2007 8:40 am

Muchas gracias Antonio, funciona estupendo!!.
MOISES
 
Posts: 838
Joined: Wed Aug 22, 2007 10:09 am


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: Google [Bot] and 50 guests