Problema con bLostFocus

Problema con bLostFocus

Postby triumvirato » Mon Oct 06, 2008 11:22 am

Tengo el siguiente código:

Code: Select all  Expand view  RUN
   REDEFINE GET oGetArticulo VAR cArticulo ID 140 OF oDlg PICTURE '@!S12' UPDATE
   oGetArticulo:bLostFocus := { || oBtnBusArt:Hide(), oBtnGama:Hide(), SetKey( VK_F2, nil ) }
   
   REDEFINE BUTTON oBtnBusArt ID 2060 OF oDlg ACTION Bus_Art( oDlg, oGetArticulo )


Cuando oGetArticulo tiene el foco, pinchamos oBtnBusArt, oGetArticulo pierde foco, ejecuta el bloque de código de oGetArticulo:bLostFocus desde donde se oculta el botón oBtnBusArt y por tanto no se evalúa el ACTION de oBtnBusArt

Alguien sabe como puedo solucionar esto? Realmente la metodología que necesito es la descrita, pero evaluándose el ACTION del botón.

Gracias y Saludos!
triumvirato
 
Posts: 199
Joined: Tue Apr 22, 2008 9:54 am
Location: Valladolid, Spain.

Postby ADBLANCO » Mon Oct 06, 2008 4:27 pm

PRUEBA CON bGotFocus (se evalua cuando tiene el foco)

DE TODAS FORMAS, YO MANEJO LAS CONSULTAS EN LINEA ASIGNANDOSELAS A LA TECLA F4

Y HACIENDO LO SIGUIENTE:

REDEFINE GET oGet VAR cGet ID 201 OF oDlg ;
MESSAGE "Coloque Información (F4:Lista)";
PICTURE "@!"
// DEFINICION DE F4->LISTA
bGet:={ || (xGet:=consulta(oGet,"CGETID",oDlg),; // EN consulta.prg (oObjeto,"IDENTIFICADOR",oDlg)
IIF(LEN(ALLTRIM(xGetSel))>0,(oGet:Varput(cGetId),oGet:Refresh()),),;
oGetId:setfocus())}
oGet:bKeyDown := {|nKey| IIF(nKey==VK_F4,EVAL(bGet),)}

ESPERO TE SIRVA DE ALGO
Saludos

Angel, Valencia, Venezuela

xH .997 - FW 7.9 - BCC55 - WorkShop - MySql
User avatar
ADBLANCO
 
Posts: 299
Joined: Mon Oct 22, 2007 3:03 pm
Location: Valencia - Venezuela

Postby Daniel Garcia-Gil » Mon Oct 06, 2008 4:31 pm

intenta esto...
Code: Select all  Expand view  RUN

REDEFINE GET oGetArticulo VAR cArticulo ID 140 OF oDlg PICTURE '@!S12' UPDATE ;
VALID( oBtnBusArt:hide(), .t.)

REDEFINE BUTTON oBtnBusArt ID 2060 OF oDlg ACTION Bus_Art( oDlg, oGetArticulo )

oGetArticulo:bGotFocus( {|| oBtnBusArt:Show() } )
oBtnBusArt:bLostFocus({|| oBtn:hide() } )

ACTIVATE DIALOG oDlg ON INIT oBtnBusArt:hide()

User avatar
Daniel Garcia-Gil
 
Posts: 2365
Joined: Wed Nov 02, 2005 11:46 pm
Location: Isla de Margarita

Postby ADBLANCO » Mon Oct 06, 2008 4:40 pm

QUIZAS ESTO SE SIRVA

REDEFINE GET oGetArticulo VAR cArticulo ID 140 OF oDlg PICTURE '@!S12' UPDATE ;
VALID( oBtnBusArt:disable(), .t.)

REDEFINE BUTTON oBtnBusArt ID 2060 OF oDlg ACTION Bus_Art( oDlg, oGetArticulo )

oGetArticulo:bGotFocus( {|| oBtnBusArt:Enable() } )

ACTIVATE DIALOG oDlg ON INIT oBtnBusArt:Disable()
Saludos

Angel, Valencia, Venezuela

xH .997 - FW 7.9 - BCC55 - WorkShop - MySql
User avatar
ADBLANCO
 
Posts: 299
Joined: Mon Oct 22, 2007 3:03 pm
Location: Valencia - Venezuela

Postby ADBLANCO » Mon Oct 06, 2008 4:44 pm

Y EXACTAMENTE, QUE ES LO QUE QUIERES:
1) QUE DESPLEGUE UN LISTA DE LOS VALORES CUANDO PRESIONES EL BOTÓN?,O
2) QUE SE PRENDA EL BOTON CUANDO HAYAS COLOCADO ALGÚN VALOR EN EL GET
Saludos

Angel, Valencia, Venezuela

xH .997 - FW 7.9 - BCC55 - WorkShop - MySql
User avatar
ADBLANCO
 
Posts: 299
Joined: Mon Oct 22, 2007 3:03 pm
Location: Valencia - Venezuela

Postby Antonio Linares » Mon Oct 06, 2008 5:51 pm

David,

El botón lo podrías ocultar desde su propia acción:

REDEFINE BUTTON oBtn ... ACTION ( oBtn:Hide(), ... )
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 42161
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Postby triumvirato » Tue Oct 07, 2008 6:58 am

Exactamente lo que necesitaba es que ese botón esté sólo presente y activo, mientras estoy en el Get. Es un botón que abre un diálogo de búsqueda para los posibles valores de ese campo. Por tanto, sólo debe estar activo, cuando está el foco en ese Get. Cuando no estás en ese campo, debe estar oculto. Con Enable y Disable, sigue sucediendo lo mismo (si lo sustituyo tal como lo tengo en mi código por los Hide y Show) si lo desactivo desde el oGetArticulo:bLostFocus, que al pulsar el botón, el Get pierde el foco, evalua el oGetArticulo:bLostFocus donde se desactiva el botón y por tanto no ejecuta tampoco la acción del ACTION del botón...
Ahora bien, las soluciones que me habéis planteado, el desactivarlo desde el VALID del oGetArticulo o bien desde ACTION del propio boton me han funcionado perfectamente.

El problema que me surge ahora, es que al ponerle una cláusula VALID en el oGetArticulo y pulsar el botón para buscar, ese cláusula se evalúa y no deja abrirse el diálogo de búsqueda, puesto que el oGetArticulo no tiene un valor válido...

Code: Select all  Expand view  RUN
   REDEFINE GET oGetArticulo VAR cArticulo ID 140 OF oDlg PICTURE '@!S12' UPDATE;
   VALID ( oBtnBusArt:Hide(), Clave_Ok( "Art", cArticulo, 1 ) )

   oGetArticulo:bLostFocus := { || oBtnGama:Hide(), SetKey( VK_F2, nil ) }
   
   REDEFINE BUTTON oBtnBusArt ID 2060 OF oDlg ACTION Bus_Art( oDlg, oGetArticulo )


Saudos!
triumvirato
 
Posts: 199
Joined: Tue Apr 22, 2008 9:54 am
Location: Valladolid, Spain.

Postby Armando » Tue Oct 07, 2008 11:26 am

Triumvirato:

Posiblemente la solución sea la clase BtnGet.

Saludos
SOI, s.a. de c.v.
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
User avatar
Armando
 
Posts: 3239
Joined: Fri Oct 07, 2005 8:20 pm
Location: Toluca, México

Postby triumvirato » Tue Oct 07, 2008 2:40 pm

Armando wrote:Triumvirato:

Posiblemente la solución sea la clase BtnGet.

Saludos


Armando, gracias... no conozco esa clase, no la tengo, estoy con FWH805... puede ser que no la tenga?

Saludos!
triumvirato
 
Posts: 199
Joined: Tue Apr 22, 2008 9:54 am
Location: Valladolid, Spain.

Postby Daniel Garcia-Gil » Tue Oct 07, 2008 3:03 pm

triumvirato wrote:El problema que me surge ahora, es que al ponerle una cláusula VALID en el oGetArticulo y pulsar el botón para buscar, ese cláusula se evalúa y no deja abrirse el diálogo de búsqueda, puesto que el oGetArticulo no tiene un valor válido...


valida el get solo cuando tengas un valor, cuando arroje FALSE el valid borras el contenido del get.
permite que pase con el get vacio y en el SAVE validas que no este en blanco el get.
si no prueba con la suguerencia del btnget, con la version actual de FWH esa funcion viene incluida, es bastante util
User avatar
Daniel Garcia-Gil
 
Posts: 2365
Joined: Wed Nov 02, 2005 11:46 pm
Location: Isla de Margarita

Postby triumvirato » Wed Oct 08, 2008 6:51 am

mcfox wrote:valida el get solo cuando tengas un valor, cuando arroje FALSE el valid borras el contenido del get.
permite que pase con el get vacio y en el SAVE validas que no este en blanco el get.
si no prueba con la suguerencia del btnget, con la version actual de FWH esa funcion viene incluida, es bastante util


Si, algo así había pensado, pero no tengo un "SAVE", por tanto no puedo permitir un valor en blanco. Lo que sí me he dado cuenta es que con un Set Key, no se ejecuta el VALID del Get y lo que necesito es esa misma funcionalidad, que cuando se pulse ese botón, no se haga ese VALID.

Gracias.
triumvirato
 
Posts: 199
Joined: Tue Apr 22, 2008 9:54 am
Location: Valladolid, Spain.

Postby Antonio Linares » Wed Oct 08, 2008 7:52 am

David,

Como te han indicado, puedes probar:

REDEFINE GET ... ACTION ... BITMAP <cBmpName>

y FiveWin construye un botón dentro del propio GET.
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 42161
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Postby triumvirato » Wed Oct 08, 2008 8:01 am

Antonio Linares wrote:David,

Como te han indicado, puedes probar:

REDEFINE GET ... ACTION ... BITMAP <cBmpName>

y FiveWin construye un botón dentro del propio GET.


Antonio,

Code: Select all  Expand view  RUN
REDEFINE GET oGetDescuento VAR alk_dt1w ID 160 OF oDlg PICTURE '@EZ 99.99' UPDATE;
ACTION Bus_Art( oDlg, oGetArticulo ) BITMAP "basket.bmp"


Obtengo el siguiente Error
c:\Fivewin\gesco\ventas.prg(122) Error E0030 Syntax error: "syntax error at 'GET'

Uso FWH805 y creo que no dispongo de esa opción...

Saludos!
triumvirato
 
Posts: 199
Joined: Tue Apr 22, 2008 9:54 am
Location: Valladolid, Spain.

Postby Antonio Linares » Wed Oct 08, 2008 8:04 am

David,

Tienes que descargar una versión más reciente de FWH.

Hoy estoy de viaje en un seminario. Mañana regreso a la oficina y te ayudo en caso de que necesites nuevas claves, etc. :-)
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 42161
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Postby triumvirato » Wed Oct 08, 2008 8:37 am

Antonio Linares wrote:David,

Tienes que descargar una versión más reciente de FWH.

Hoy estoy de viaje en un seminario. Mañana regreso a la oficina y te ayudo en caso de que necesites nuevas claves, etc. :-)


Antonio,

Muchas gracias. Necesitaré esa ayuda, espero a mañana.
triumvirato
 
Posts: 199
Joined: Tue Apr 22, 2008 9:54 am
Location: Valladolid, Spain.

Next

Return to FiveWin para Harbour/xHarbour

Who is online

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