In order for this site to work correctly we need to store a small file (called a cookie) on your computer. Most every site in the world does this, however since the 25th of May 2011, by law we have to get your permission first. Please abandon the forum if you disagree.

Para que este foro funcione correctamente es necesario guardar un pequeño fichero (llamado cookie) en su ordenador. La mayoría de los sitios de Internet lo hacen, no obstante desde el 25 de Marzo de 2011 y por ley, necesitamos de su permiso con antelación. Abandone este foro si no está conforme.

On Exit

Foro de Xailer profesional en español
Responder
Paco V
Mensajes: 380
Registrado: Jue Oct 27, 2005 9:08 am

On Exit

Mensaje por Paco V »

En el evento OnExit de oDbEdit1 llamo al metodo MIRAR
*************
IF ::oDbfDataSet1:Seek( RTRIM(::oDBEdit1:value) )
::oDBEdit2:value := ::oDbfDataSet1:Nombr
::oDBEdit3:SetFocus()
else
msgInfo("Agente no existe en la Base de Datos")
::oDBEdit2:SetFocus()
ENDIF
*************
Pues si se cumple la condición funciona OK,
Pero si no se cumple no hay forma de salir.
¿Creo que me falta algo?
Paco V
Rolando
Mensajes: 191
Registrado: Lun May 08, 2006 2:10 pm

On Exit

Mensaje por Rolando »

Paco:
"Paco V" <ssi@ono.com> escribió en el mensaje
news:45140321$[email=1@news.xailer.com...]1@news.xailer.com...[/email]
>
> En el evento OnExit de oDbEdit1 llamo al metodo MIRAR
>
> *************
::oDbfDataSet1:SaveState()
> IF ::oDbfDataSet1:Seek( RTRIM(::oDBEdit1:value) )
> ::oDBEdit2:value := ::oDbfDataSet1:Nombr
> ::oDBEdit3:SetFocus()
> else
::oDbfDataSet1:RestoreState()
> msgInfo("Agente no existe en la Base de Datos")
> ::oDBEdit2:SetFocus()
> ENDIF
> *************
>
> Pues si se cumple la condición funciona OK,
> Pero si no se cumple no hay forma de salir.
>
> ¿Creo que me falta algo?
>
> Paco V
>
>
paco-ssi
Mensajes: 390
Registrado: Lun Feb 07, 2005 4:17 pm

On Exit

Mensaje por paco-ssi »

Seguramente me he explicado mal.
Lo unico que quiero es que en el caso de que no encuentre el codigo en la
base de datos me deje continuar introduciendo el nombre.
Gracias
"Rolando Sarrailh" <rsarrailh@gmail.com> escribió en el mensaje
news:[email=451460c8@news.xailer.com...]451460c8@news.xailer.com...[/email]
> Paco:
>
> "Paco V" <ssi@ono.com> escribió en el mensaje
> news:45140321$[email=1@news.xailer.com...]1@news.xailer.com...[/email]
>>
>> En el evento OnExit de oDbEdit1 llamo al metodo MIRAR
>>
>> *************
> ::oDbfDataSet1:SaveState()
>
>> IF ::oDbfDataSet1:Seek( RTRIM(::oDBEdit1:value) )
>> ::oDBEdit2:value := ::oDbfDataSet1:Nombr
>> ::oDBEdit3:SetFocus()
>> else
>
> ::oDbfDataSet1:RestoreState()
>
>> msgInfo("Agente no existe en la Base de Datos")
>> ::oDBEdit2:SetFocus()
>> ENDIF
>> *************
>>
>> Pues si se cumple la condición funciona OK,
>> Pero si no se cumple no hay forma de salir.
>>
>> ¿Creo que me falta algo?
>>
>> Paco V
>>
>>
>
>
Rolando
Mensajes: 191
Registrado: Lun May 08, 2006 2:10 pm

On Exit

Mensaje por Rolando »

Hola: efectivamente lo he probado y no funciona, el evento si devuelve .f.
deberia quedarse el foco en el control y si devuelve .t. o nil deberia
continuar., debe ser un bug del tdbedit.
Un saludo
"Paco V." <paco-ssi@usuarios.retecal.es> escribió en el mensaje
news:[email=4515081c@news.xailer.com...]4515081c@news.xailer.com...[/email]
> Seguramente me he explicado mal.
> Lo unico que quiero es que en el caso de que no encuentre el codigo en la
> base de datos me deje continuar introduciendo el nombre.
>
> Gracias
>
> "Rolando Sarrailh" <rsarrailh@gmail.com> escribió en el mensaje
> news:[email=451460c8@news.xailer.com...]451460c8@news.xailer.com...[/email]
>> Paco:
>>
>> "Paco V" <ssi@ono.com> escribió en el mensaje
>> news:45140321$[email=1@news.xailer.com...]1@news.xailer.com...[/email]
>>>
>>> En el evento OnExit de oDbEdit1 llamo al metodo MIRAR
>>>
>>> *************
>> ::oDbfDataSet1:SaveState()
>>
>>> IF ::oDbfDataSet1:Seek( RTRIM(::oDBEdit1:value) )
>>> ::oDBEdit2:value := ::oDbfDataSet1:Nombr
>>> ::oDBEdit3:SetFocus()
>>> else
>>
>> ::oDbfDataSet1:RestoreState()
>>
>>> msgInfo("Agente no existe en la Base de Datos")
>>> ::oDBEdit2:SetFocus()
>>> ENDIF
>>> *************
>>>
>>> Pues si se cumple la condición funciona OK,
>>> Pero si no se cumple no hay forma de salir.
>>>
>>> ¿Creo que me falta algo?
>>>
>>> Paco V
>>>
>>>
>>
>>
>
>
paco-ssi
Mensajes: 390
Registrado: Lun Feb 07, 2005 4:17 pm

On Exit

Mensaje por paco-ssi »

Rolando, seguramente sera algo que hago mal. Si fuera un Bug ya lo habria
dicho Ignacio o Jose.
Gracias por tu tiempo.
Paco V
"Rolando Sarrailh" <rsarrailh@gmail.com> escribió en el mensaje
news:[email=451530e6@news.xailer.com...]451530e6@news.xailer.com...[/email]
> Hola: efectivamente lo he probado y no funciona, el evento si devuelve .f.
> deberia quedarse el foco en el control y si devuelve .t. o nil deberia
> continuar., debe ser un bug del tdbedit.
> Un saludo
>
> "Paco V." <paco-ssi@usuarios.retecal.es> escribió en el mensaje
> news:[email=4515081c@news.xailer.com...]4515081c@news.xailer.com...[/email]
>> Seguramente me he explicado mal.
>> Lo unico que quiero es que en el caso de que no encuentre el codigo en la
>> base de datos me deje continuar introduciendo el nombre.
>>
>> Gracias
>>
>> "Rolando Sarrailh" <rsarrailh@gmail.com> escribió en el mensaje
>> news:[email=451460c8@news.xailer.com...]451460c8@news.xailer.com...[/email]
>>> Paco:
>>>
>>> "Paco V" <ssi@ono.com> escribió en el mensaje
>>> news:45140321$[email=1@news.xailer.com...]1@news.xailer.com...[/email]
>>>>
>>>> En el evento OnExit de oDbEdit1 llamo al metodo MIRAR
>>>>
>>>> *************
>>> ::oDbfDataSet1:SaveState()
>>>
>>>> IF ::oDbfDataSet1:Seek( RTRIM(::oDBEdit1:value) )
>>>> ::oDBEdit2:value := ::oDbfDataSet1:Nombr
>>>> ::oDBEdit3:SetFocus()
>>>> else
>>>
>>> ::oDbfDataSet1:RestoreState()
>>>
>>>> msgInfo("Agente no existe en la Base de Datos")
>>>> ::oDBEdit2:SetFocus()
>>>> ENDIF
>>>> *************
>>>>
>>>> Pues si se cumple la condición funciona OK,
>>>> Pero si no se cumple no hay forma de salir.
>>>>
>>>> ¿Creo que me falta algo?
>>>>
>>>> Paco V
>>>>
>>>>
>>>
>>>
>>
>>
>
>
zeasoftware
Mensajes: 1831
Registrado: Mar Oct 11, 2005 9:53 am

On Exit

Mensaje por zeasoftware »

Por que no pones el metodo completo para ver que puedes tener mal, recuerda
que te estan diciendo que tienes que devolver ciertos valores para continuar
la ejecucion.
Saludos.
--
Ramón Zea
ramonzea@yahoo.com
zeasoftware@hotmail.com
zeasoft.movil@hotmail.com
http://www.paginasprodigy.com/zeasoft/
Avatar de Usuario
ignacio
Site Admin
Mensajes: 9252
Registrado: Lun Abr 06, 2015 8:00 pm
Ubicación: Madrid, Spain
Contactar:

On Exit

Mensaje por ignacio »

Paco,
No deberías cambiar el foco dentro de un evento OnExit. Tan sólo puedes
devolver FALSO para quedarte en dicho control o VERDADERO para ir a la
siguiente.
Un saludo,
"Paco V" <ssi@ono.com> wrote in message news:45140321$[email=1@news.xailer.com...]1@news.xailer.com...[/email]
>
> En el evento OnExit de oDbEdit1 llamo al metodo MIRAR
>
> *************
> IF ::oDbfDataSet1:Seek( RTRIM(::oDBEdit1:value) )
> ::oDBEdit2:value := ::oDbfDataSet1:Nombr
> ::oDBEdit3:SetFocus()
> else
> msgInfo("Agente no existe en la Base de Datos")
> ::oDBEdit2:SetFocus()
> ENDIF
> *************
>
> Pues si se cumple la condición funciona OK,
> Pero si no se cumple no hay forma de salir.
>
> ¿Creo que me falta algo?
>
> Paco V
>
>
Ignacio Ortiz de Zúñiga
[Equipo de Xailer / Xailer team]
https://www.xailer.com
paco-ssi
Mensajes: 390
Registrado: Lun Feb 07, 2005 4:17 pm

On Exit

Mensaje por paco-ssi »

Gracias Ignacio.
Para mi era logico lo que estaba haciendo.
Si al introducir un codigo de cliente, este se encuentra en la base de
datos, pues el foco pasa a la introduccion de su operación. Si no se
encuentra el codigo, pues va por los controles hasta el final para que se
rellenen, y despues pasa a la introducción de su operación.
Paco V
"Ignacio Ortiz de Zúñiga" <NoName@xailer.com> escribió en el mensaje
news:45162e87$[email=1@news.xailer.com...]1@news.xailer.com...[/email]
> Paco,
>
> No deberías cambiar el foco dentro de un evento OnExit. Tan sólo puedes
> devolver FALSO para quedarte en dicho control o VERDADERO para ir a la
> siguiente.
>
> Un saludo,
>
> "Paco V" <ssi@ono.com> wrote in message news:45140321$[email=1@news.xailer.com...]1@news.xailer.com...[/email]
>>
>> En el evento OnExit de oDbEdit1 llamo al metodo MIRAR
>>
>> *************
>> IF ::oDbfDataSet1:Seek( RTRIM(::oDBEdit1:value) )
>> ::oDBEdit2:value := ::oDbfDataSet1:Nombr
>> ::oDBEdit3:SetFocus()
>> else
>> msgInfo("Agente no existe en la Base de Datos")
>> ::oDBEdit2:SetFocus()
>> ENDIF
>> *************
>>
>> Pues si se cumple la condición funciona OK,
>> Pero si no se cumple no hay forma de salir.
>>
>> ¿Creo que me falta algo?
>>
>> Paco V
>>
>>
>
>
Avatar de Usuario
ignacio
Site Admin
Mensajes: 9252
Registrado: Lun Abr 06, 2015 8:00 pm
Ubicación: Madrid, Spain
Contactar:

On Exit

Mensaje por ignacio »

Paco,
> Si al introducir un codigo de cliente, este se encuentra en la base de
> datos, pues el foco pasa a la introduccion de su operación. Si no se
> encuentra el codigo, pues va por los controles hasta el final para que se
> rellenen, y despues pasa a la introducción de su operación.
Es lógico si lo pones en el evento OnClick del botón que dispara el proceo
de actualización, pero no si lo pones en la validación de uno de los TEdit.
El evento OnExit se dispará cuando el control pierde el foco, devolviendo
..T. el foco pasa al control que lo solicito, y devolviendo .F. se queda
donde estaba. Estarás de acuerdo conmigo que por pura lógica este sistema es
completamente incompatible con la posibilidad de que por código tu mismo
cambies el foco al control que desees.
Un saludo,
--
Ignacio Ortiz de Zúñiga
http://www.xailer.com
"Paco V." <paco-ssi@usuarios.retecal.es> escribió en el mensaje
news:4516bfad$[email=1@news.xailer.com...]1@news.xailer.com...[/email]
> Gracias Ignacio.
> Para mi era logico lo que estaba haciendo.
> Si al introducir un codigo de cliente, este se encuentra en la base de
> datos, pues el foco pasa a la introduccion de su operación. Si no se
> encuentra el codigo, pues va por los controles hasta el final para que se
> rellenen, y despues pasa a la introducción de su operación.
>
> Paco V
>
>
>
> "Ignacio Ortiz de Zúñiga" <NoName@xailer.com> escribió en el mensaje
> news:45162e87$[email=1@news.xailer.com...]1@news.xailer.com...[/email]
>> Paco,
>>
>> No deberías cambiar el foco dentro de un evento OnExit. Tan sólo puedes
>> devolver FALSO para quedarte en dicho control o VERDADERO para ir a la
>> siguiente.
>>
>> Un saludo,
>>
>> "Paco V" <ssi@ono.com> wrote in message
>> news:45140321$[email=1@news.xailer.com...]1@news.xailer.com...[/email]
>>>
>>> En el evento OnExit de oDbEdit1 llamo al metodo MIRAR
>>>
>>> *************
>>> IF ::oDbfDataSet1:Seek( RTRIM(::oDBEdit1:value) )
>>> ::oDBEdit2:value := ::oDbfDataSet1:Nombr
>>> ::oDBEdit3:SetFocus()
>>> else
>>> msgInfo("Agente no existe en la Base de Datos")
>>> ::oDBEdit2:SetFocus()
>>> ENDIF
>>> *************
>>>
>>> Pues si se cumple la condición funciona OK,
>>> Pero si no se cumple no hay forma de salir.
>>>
>>> ¿Creo que me falta algo?
>>>
>>> Paco V
>>>
>>>
>>
>>
>
>
Ignacio Ortiz de Zúñiga
[Equipo de Xailer / Xailer team]
https://www.xailer.com
Paco V
Mensajes: 380
Registrado: Jue Oct 27, 2005 9:08 am

On Exit

Mensaje por Paco V »

Tu logica es aplastante.
El Exit se ejecuta al picar en el segundo control.
Y yo le digo que se vaya al cuarto. Tonterias mias.
Paco V
"Ignacio Ortiz de Zúñiga" <NoName@xailer.com> wrote:
>Paco,
>
>> Si al introducir un codigo de cliente, este se encuentra en la base de
>> datos, pues el foco pasa a la introduccion de su operación. Si no se
>> encuentra el codigo, pues va por los controles hasta el final para que
se
>> rellenen, y despues pasa a la introducción de su operación.
>
>Es lógico si lo pones en el evento OnClick del botón que dispara el proceo
>de actualización, pero no si lo pones en la validación de uno de los TEdit.
>
>El evento OnExit se dispará cuando el control pierde el foco, devolviendo
>.T. el foco pasa al control que lo solicito, y devolviendo .F. se queda
>donde estaba. Estarás de acuerdo conmigo que por pura lógica este sistema
es
>completamente incompatible con la posibilidad de que por código tu mismo
>cambies el foco al control que desees.
>
>Un saludo,
>
>--
>Ignacio Ortiz de Zúñiga
>http://www.xailer.com
>"Paco V." <paco-ssi@usuarios.retecal.es> escribió en el mensaje
>news:4516bfad$[email=1@news.xailer.com...]1@news.xailer.com...[/email]
>> Gracias Ignacio.
>> Para mi era logico lo que estaba haciendo.
>> Si al introducir un codigo de cliente, este se encuentra en la base de
>> datos, pues el foco pasa a la introduccion de su operación. Si no se
>> encuentra el codigo, pues va por los controles hasta el final para que
se
>> rellenen, y despues pasa a la introducción de su operación.
>>
>> Paco V
>>
>>
>>
>> "Ignacio Ortiz de Zúñiga" <NoName@xailer.com> escribió en el mensaje
>> news:45162e87$[email=1@news.xailer.com...]1@news.xailer.com...[/email]
>>> Paco,
>>>
>>> No deberías cambiar el foco dentro de un evento OnExit. Tan sólo puedes
>>> devolver FALSO para quedarte en dicho control o VERDADERO para ir a la
>>> siguiente.
>>>
>>> Un saludo,
>>>
>>> "Paco V" <ssi@ono.com> wrote in message
>>> news:45140321$[email=1@news.xailer.com...]1@news.xailer.com...[/email]
>>>>
>>>> En el evento OnExit de oDbEdit1 llamo al metodo MIRAR
>>>>
>>>> *************
>>>> IF ::oDbfDataSet1:Seek( RTRIM(::oDBEdit1:value) )
>>>> ::oDBEdit2:value := ::oDbfDataSet1:Nombr
>>>> ::oDBEdit3:SetFocus()
>>>> else
>>>> msgInfo("Agente no existe en la Base de Datos")
>>>> ::oDBEdit2:SetFocus()
>>>> ENDIF
>>>> *************
>>>>
>>>> Pues si se cumple la condición funciona OK,
>>>> Pero si no se cumple no hay forma de salir.
>>>>
>>>> ¿Creo que me falta algo?
>>>>
>>>> Paco V
>>>>
>>>>
>>>
>>>
>>
>>
>
>
Responder