FoxPro/Visual FoxPro - ¿Por qué me puede pasar esto...???

 
Vista:

¿Por qué me puede pasar esto...???

Publicado por Andrés (325 intervenciones) el 26/08/2007 23:16:32
Hola

Tengo un cuadro de texto donde en el evento VALID valido un código de cliente.
Si el cliente no existe, va a un método donde busca el último código y lo muestra.

El problema que tengo es que el programa entra 2 veces en el VALID, siguiento esta secuencia de eventos

VALID ->LOSTFOCUS ->VALID y pasa al otro objeto

¿Por qué puede pasar esto??

*-----------------------------------
El el código en VALID es

if seek(this.value, "Clientes", "cod_cli") &&existe
return .t.
else
thisform.buscacodcli &&metodo para buscar proximo codigo
this.value=oapp.auxcodigocli && cliente a mano
return .t.
endif

*-----------------------------------
Y en el LOSTFOCUS

if cliente_contado
thisform.boton_contado.setfocus() &&hace foco en el botón para cliente de contado
else
thisform.boton_cuentacorriente.setfocus() &&hace foco en el botón para clientes en c/c
endif

*---------------------------------

Gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:¿Por qué me puede pasar esto...???

Publicado por Plinio (7841 intervenciones) el 27/08/2007 01:36:02
1- Los Return .T. no son necesarios
2- Por que no pones todo en un solo Evento, prácticamente el Lostfocus y el Valid son similares, el Valid esta mas por cosas de compatibilidad con versiones anteriores
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:¿Por qué me puede pasar esto...???

Publicado por Andrés (325 intervenciones) el 27/08/2007 03:26:37
Entonces ¿Es posible retornar con RETURN .F. desde el evento LOSTFOCUS???

Yo pensaba que solamente era un evento "de paso" antes de que el próximo objeto tome foco.
(Yo utilizo el VFP 6 y 7 y en el MSDN de la versión 6 no dice nada de eso.)
Por eso, dado que en el VALID no se puede poner un SETFOCUS, lo localizo en el LOSTFOCUS
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 20
Ha aumentado su posición en 2 puestos en FoxPro/Visual FoxPro (en relación al último mes)
Gráfica de FoxPro/Visual FoxPro

RE:¿Por qué me puede pasar esto...???

Publicado por Marcelo (186 intervenciones) el 27/08/2007 12:34:06
yo tengo entendido que el VALID se ejecuta en ultima instancia si salis del foco con lostfocus antes de dejar el foco vuelve a validar.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:¿Por qué me puede pasar esto...???

Publicado por andres (325 intervenciones) el 27/08/2007 21:51:16
Gracias x la info, Marcelo.

Suponiendo que yo tengo que decidir alguna acción dependiendo de lo que el usuario ingrese

¿cuál uso? o mejor dicho... ¿cómo hago para que pase 1 sola vez x el VALID?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar