FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour ON CHANGE
Posts: 195
Joined: Sat Oct 22, 2005 01:17 PM
ON CHANGE
Posted: Sat Feb 20, 2010 07:31 PM

Buenas Tardes
Estimado amigos del foro

Estoy tratando de que mediante un on change de un get que es un valor numero , me actualice un dbcombo y no lo he conseguido si alguien me puede ayudar gracias de antemano.

adjjunto el codigo

REDEFINE GET ocl_dias VAR ccl_dias ID 4 OF oDlg UPDATE PICTURE "999" WHEN left(ccl_cod,5) <> '88888' ;
ON CHANGE (if(ccl_dias > 0,cca_tarje:='CR',cca_tarje ='EF'),oCbx4:refresh(),oDlg:refresh())
ocl_dias:bGotFocus = { || ocl_dias:setcolor(nRGB(0,0,0),nRGB( 231,226,141)) }
ocl_dias:bLostFocus = { || ocl_dias:setcolor(0, CLR_WHITE ) }

REDEFINE DBCOMBO oCbx4 VAR cca_tarje ID 101 OF oDlg ;
ALIAS "ttarje" ;
ITEMFIELD "ttcod" ;
LISTFIELD "ttdsc"

Saludos

Oscar

Fwh 23.10, bcc55

Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Re: ON CHANGE
Posted: Sun Feb 21, 2010 10:56 AM
Oscar,

Prueba con:
Code (fw): Select all Collapse
ON CHANGE oCbx4:SetText( If( ccl_dias > 0, 'CR', 'EF' ) )

ó
Code (fw): Select all Collapse
ON CHANGE oCbx4:oGet:SetText( If( ccl_dias > 0, 'CR', 'EF' ) )
regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 195
Joined: Sat Oct 22, 2005 01:17 PM
Re: ON CHANGE
Posted: Mon Feb 22, 2010 03:43 PM

Antonio,

Gracias por la respuesta pero no funciono, sigo buscado la manera
si alguien sabe como por favor deme una mano

Gracias

Saludos

Oscar

Fwh 23.10, bcc55

Posts: 2365
Joined: Wed Nov 02, 2005 11:46 PM
Re: ON CHANGE
Posted: Mon Feb 22, 2010 04:29 PM

Saludos Easysoft

el proble que tienes es que cuando se ejecuta el ON CHANGE la variable aun no tiene el valor asignado, ese valor esta dentro de un buffer, puedes solventarlo de 2 formas... obligas al GET a que la variable asuma el valor en el ON CHANGE o usas el buffer del objetto GET dentro de la clase... para mejor esplicacion un ejemplo

metodo 1...
REDEFINE GET ocl_dias VAR ccl_dias ID 4 OF oDlg UPDATE PICTURE "999" WHEN left(ccl_cod,5) <> '88888' ;
ON CHANGE ( ::Assign(), if(ccl_dias > 0,cca_tarje:='CR',cca_tarje ='EF'),oCbx4:refresh(),oDlg:refresh())

metodo 2...
REDEFINE GET ocl_dias VAR ccl_dias ID 4 OF oDlg UPDATE PICTURE "999" WHEN left(ccl_cod,5) <> '88888' ;
ON CHANGE ( if(::oGet:Buffer > 0,cca_tarje:='CR',cca_tarje ='EF'),oCbx4:refresh(),oDlg:refresh())

Continue the discussion