Paco,
La manera de indicar que no quieres que se pierda el foco es retornando
..F. en el evento OnExit. Si pones valor .T. o NIL el foco pasa al
siguiente control.
Saludos,
José Luis Capel
Paco V escribió:
> Quiero comprobar que el dato introducido en un oDBMaskEdit se encuentre en
> una base de datos. Si no lo encuentra que vuelva el foco al oDBMaskEdit para
> que introduzca nuevo valor.
>
> Coloco esto en el evento ONEXIT del oDBMaskEdit
>
> IF ::oDbfDataSet1:Seek( RTRIM(::oDBMaskEdit1:value) )
> msginfo("OK")
> ELSE
> ::oDbMaskEdit1:SetFocus(.t.)
> MSGINFO("MAL, REPITE"")
> ENDIF
>
> Si el dato está en la base de datos funciona OK y continua, pero en caso
> de no encontrarlo tambien continua.
> No lo entiendo, que hago mal?
>
> Paco V
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.
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.
SETFOCUS
SETFOCUS
Me respondo, lo estaba haciendo ma. Basta con return .f.
Y ademas ya lo habia preguntado.
Perdon.
Paco V
"Paco V" <ssi@ono.com> wrote:
>
>Quiero comprobar que el dato introducido en un oDBMaskEdit se encuentre
en
>una base de datos. Si no lo encuentra que vuelva el foco al oDBMaskEdit
para
>que introduzca nuevo valor.
>
>Coloco esto en el evento ONEXIT del oDBMaskEdit
>
>IF ::oDbfDataSet1:Seek( RTRIM(::oDBMaskEdit1:value) )
> msginfo("OK")
> ELSE
> ::oDbMaskEdit1:SetFocus(.t.)
> MSGINFO("MAL, REPITE"")
>ENDIF
>
>Si el dato está en la base de datos funciona OK y continua, pero en caso
>de no encontrarlo tambien continua.
>No lo entiendo, que hago mal?
>
>Paco V
Y ademas ya lo habia preguntado.
Perdon.
Paco V
"Paco V" <ssi@ono.com> wrote:
>
>Quiero comprobar que el dato introducido en un oDBMaskEdit se encuentre
en
>una base de datos. Si no lo encuentra que vuelva el foco al oDBMaskEdit
para
>que introduzca nuevo valor.
>
>Coloco esto en el evento ONEXIT del oDBMaskEdit
>
>IF ::oDbfDataSet1:Seek( RTRIM(::oDBMaskEdit1:value) )
> msginfo("OK")
> ELSE
> ::oDbMaskEdit1:SetFocus(.t.)
> MSGINFO("MAL, REPITE"")
>ENDIF
>
>Si el dato está en la base de datos funciona OK y continua, pero en caso
>de no encontrarlo tambien continua.
>No lo entiendo, que hago mal?
>
>Paco V
SETFOCUS
La leche, no me habeis dado tiempo ni a pediros perdon.
Gracias.
"Paco V" <ssi@ono.com> wrote:
>
>Quiero comprobar que el dato introducido en un oDBMaskEdit se encuentre
en
>una base de datos. Si no lo encuentra que vuelva el foco al oDBMaskEdit
para
>que introduzca nuevo valor.
>
>Coloco esto en el evento ONEXIT del oDBMaskEdit
>
>IF ::oDbfDataSet1:Seek( RTRIM(::oDBMaskEdit1:value) )
> msginfo("OK")
> ELSE
> ::oDbMaskEdit1:SetFocus(.t.)
> MSGINFO("MAL, REPITE"")
>ENDIF
>
>Si el dato está en la base de datos funciona OK y continua, pero en caso
>de no encontrarlo tambien continua.
>No lo entiendo, que hago mal?
>
>Paco V
Gracias.
"Paco V" <ssi@ono.com> wrote:
>
>Quiero comprobar que el dato introducido en un oDBMaskEdit se encuentre
en
>una base de datos. Si no lo encuentra que vuelva el foco al oDBMaskEdit
para
>que introduzca nuevo valor.
>
>Coloco esto en el evento ONEXIT del oDBMaskEdit
>
>IF ::oDbfDataSet1:Seek( RTRIM(::oDBMaskEdit1:value) )
> msginfo("OK")
> ELSE
> ::oDbMaskEdit1:SetFocus(.t.)
> MSGINFO("MAL, REPITE"")
>ENDIF
>
>Si el dato está en la base de datos funciona OK y continua, pero en caso
>de no encontrarlo tambien continua.
>No lo entiendo, que hago mal?
>
>Paco V
-
- Mensajes: 157
- Registrado: Jue May 18, 2006 5:10 pm
SETFOCUS
No llevo mucho en esto pero creo que hay dos problemas:
1º Hasta ahora siempre he usado la llamada al metodo Setfocus de los objetos
sin parametro por lo que yo pondria
::oDbMaskEdit1:SetFocus()
2º Si primero pones el foco en el control y luego llamas ha la ventana de
mensaje estan dandole el foco a dicha ventana, cambia el orden de las
instrucciones y prueba
ELSE
MSGINFO("MAL, REPITE"")
::oDbMaskEdit1:SetFocus()
ENDIF
Saludos
Pedro Amaro
1º Hasta ahora siempre he usado la llamada al metodo Setfocus de los objetos
sin parametro por lo que yo pondria
::oDbMaskEdit1:SetFocus()
2º Si primero pones el foco en el control y luego llamas ha la ventana de
mensaje estan dandole el foco a dicha ventana, cambia el orden de las
instrucciones y prueba
ELSE
MSGINFO("MAL, REPITE"")
::oDbMaskEdit1:SetFocus()
ENDIF
Saludos
Pedro Amaro
SETFOCUS
Pedro, habia probado de las dos formas, pero el problema era que si no
quiero que salga del control, tengo que devolver .f.
Gracias.
"Pedro Amaro" <dospcservice@tiscali.es> escribió en el mensaje
news:43df5fa4$[email=1@ozsrvnegro.ozlan.local...]1@ozsrvnegro.ozlan.local...[/email]
> No llevo mucho en esto pero creo que hay dos problemas:
>
> 1º Hasta ahora siempre he usado la llamada al metodo Setfocus de los
> objetos sin parametro por lo que yo pondria
> ::oDbMaskEdit1:SetFocus()
>
> 2º Si primero pones el foco en el control y luego llamas ha la ventana de
> mensaje estan dandole el foco a dicha ventana, cambia el orden de las
> instrucciones y prueba
>
> ELSE
> MSGINFO("MAL, REPITE"")
> ::oDbMaskEdit1:SetFocus()
> ENDIF
>
> Saludos
> Pedro Amaro
>
>
quiero que salga del control, tengo que devolver .f.
Gracias.
"Pedro Amaro" <dospcservice@tiscali.es> escribió en el mensaje
news:43df5fa4$[email=1@ozsrvnegro.ozlan.local...]1@ozsrvnegro.ozlan.local...[/email]
> No llevo mucho en esto pero creo que hay dos problemas:
>
> 1º Hasta ahora siempre he usado la llamada al metodo Setfocus de los
> objetos sin parametro por lo que yo pondria
> ::oDbMaskEdit1:SetFocus()
>
> 2º Si primero pones el foco en el control y luego llamas ha la ventana de
> mensaje estan dandole el foco a dicha ventana, cambia el orden de las
> instrucciones y prueba
>
> ELSE
> MSGINFO("MAL, REPITE"")
> ::oDbMaskEdit1:SetFocus()
> ENDIF
>
> Saludos
> Pedro Amaro
>
>