Sigue el problema con On Key Up ya tratado en otro hilo
Explico de nuevo, la idea es hacer un browse editable de manera de que
cuando entro el codigo en la columna codigo el sistema busque en otra
tabla si el mismo existe en caso de que no me abra una ventana con la
tabla de codigos en un browse (es un lookup) desde el cual pueda
seleccionar uno con dobleclik, todo funciona bien hasta que se me
ocurrio que el cliente ademas de seleccionar el codigo con dobleclick
pudiera hacerlo con enter para evitar el mouse, entonces lo que ocurre
es que en el primer browse le da enter y abre el segundo browse
(busqueda) pero este ultimo por algun motivo??? reconoce el evento
OnKeyUp y toma el enter cerrandose inmediatamente y regresando el primer
codigo de la tabla
Este es el codigo de la columna que llama para verificar el codigo
ingresado:
METHOD DetalleColumn1PostEdit( oSender, Value, lCanceled, nKey ) CLASS noco
LOCAL mREG := {}
LOCAL mCodigo := Value
LOCAL oBro := ::oDetalle // este es el browse principal tipo array
LOCAL mDESCRIP, mTIPO, mGRUPO, mCONCEPTO, oConcB
// BUSCA LA COSA
if !lCanceled
IF [consiguio el valor]
// popula la fila
oBro:SetValue(2,mREG[2])
ELSE // NO ENCUENTRA DEBE BUSCAR UNO
PRIVATE mDevo := ''
// AQUI ABRE EL BROWSE DE BUSQUEDA
oConcB := ConcBusca():New()
oConcB:oSQLQuery1:oDataSource := oCon
oConcB:oSQLQuery1:lOpen := .T.
oConcB:ShowModal()
// POPULA LAS COLUMNAS
oBro:SetValue(1,mREG[1])
ENDIF
ENDIF
RETURN Nil
en la tabla de busqueda tengo este metodo y es igual al metodo de on
doble click
METHOD DBBrowse1KeyUp( oSender, nKey, nFlags ) CLASS concbusca
if nKey = 13
mDEVO := oSender:aCols[1]:Value
::Close()
endif
RETURN Nil
Si quito este ultimo metodo y lo dejo con doble click solamente,
funciona pero quiero poder seleccionar el registro con enter tambien, el
problema es que al presionar enter en el edit con un valor no valido me
abre el browse e inmediatamente se sale devolviendome el valor del
primer registro.
Saludos
Gracias
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.
Sigue OnKeyUp
-
- Mensajes: 141
- Registrado: Mar Sep 18, 2007 3:30 pm
Sigue OnKeyUp
Andres,
Prepara un ejemplo lo mas sencillo que puedas y te ayudamos.
Un Saludo,
Xevi.
"Andres Hocevar" <datasis@cantv.net> escribió en el mensaje de noticias
news:[email=4766a24b@ozsrv2.ozlan.local...]4766a24b@ozsrv2.ozlan.local...[/email]
> Sigue el problema con On Key Up ya tratado en otro hilo
>
> Explico de nuevo, la idea es hacer un browse editable de manera de que
> cuando entro el codigo en la columna codigo el sistema busque en otra
> tabla si el mismo existe en caso de que no me abra una ventana con la
> tabla de codigos en un browse (es un lookup) desde el cual pueda
> seleccionar uno con dobleclik, todo funciona bien hasta que se me ocurrio
> que el cliente ademas de seleccionar el codigo con dobleclick pudiera
> hacerlo con enter para evitar el mouse, entonces lo que ocurre es que en
> el primer browse le da enter y abre el segundo browse (busqueda) pero este
> ultimo por algun motivo??? reconoce el evento OnKeyUp y toma el enter
> cerrandose inmediatamente y regresando el primer codigo de la tabla
>
> Este es el codigo de la columna que llama para verificar el codigo
> ingresado:
>
> METHOD DetalleColumn1PostEdit( oSender, Value, lCanceled, nKey ) CLASS
> noco
> LOCAL mREG := {}
> LOCAL mCodigo := Value
> LOCAL oBro := ::oDetalle // este es el browse principal tipo array
> LOCAL mDESCRIP, mTIPO, mGRUPO, mCONCEPTO, oConcB
> // BUSCA LA COSA
> if !lCanceled
> IF [consiguio el valor]
> // popula la fila
> oBro:SetValue(2,mREG[2])
> ELSE // NO ENCUENTRA DEBE BUSCAR UNO
> PRIVATE mDevo := ''
> // AQUI ABRE EL BROWSE DE BUSQUEDA
> oConcB := ConcBusca():New()
> oConcB:oSQLQuery1:oDataSource := oCon
> oConcB:oSQLQuery1:lOpen := .T.
> oConcB:ShowModal()
> // POPULA LAS COLUMNAS
> oBro:SetValue(1,mREG[1])
> ENDIF
> ENDIF
>
> RETURN Nil
>
> en la tabla de busqueda tengo este metodo y es igual al metodo de on doble
> click
>
> METHOD DBBrowse1KeyUp( oSender, nKey, nFlags ) CLASS concbusca
> if nKey = 13
> mDEVO := oSender:aCols[1]:Value
> ::Close()
> endif
> RETURN Nil
>
> Si quito este ultimo metodo y lo dejo con doble click solamente, funciona
> pero quiero poder seleccionar el registro con enter tambien, el problema
> es que al presionar enter en el edit con un valor no valido me abre el
> browse e inmediatamente se sale devolviendome el valor del primer
> registro.
>
> Saludos
> Gracias
>
>
>
Prepara un ejemplo lo mas sencillo que puedas y te ayudamos.
Un Saludo,
Xevi.
"Andres Hocevar" <datasis@cantv.net> escribió en el mensaje de noticias
news:[email=4766a24b@ozsrv2.ozlan.local...]4766a24b@ozsrv2.ozlan.local...[/email]
> Sigue el problema con On Key Up ya tratado en otro hilo
>
> Explico de nuevo, la idea es hacer un browse editable de manera de que
> cuando entro el codigo en la columna codigo el sistema busque en otra
> tabla si el mismo existe en caso de que no me abra una ventana con la
> tabla de codigos en un browse (es un lookup) desde el cual pueda
> seleccionar uno con dobleclik, todo funciona bien hasta que se me ocurrio
> que el cliente ademas de seleccionar el codigo con dobleclick pudiera
> hacerlo con enter para evitar el mouse, entonces lo que ocurre es que en
> el primer browse le da enter y abre el segundo browse (busqueda) pero este
> ultimo por algun motivo??? reconoce el evento OnKeyUp y toma el enter
> cerrandose inmediatamente y regresando el primer codigo de la tabla
>
> Este es el codigo de la columna que llama para verificar el codigo
> ingresado:
>
> METHOD DetalleColumn1PostEdit( oSender, Value, lCanceled, nKey ) CLASS
> noco
> LOCAL mREG := {}
> LOCAL mCodigo := Value
> LOCAL oBro := ::oDetalle // este es el browse principal tipo array
> LOCAL mDESCRIP, mTIPO, mGRUPO, mCONCEPTO, oConcB
> // BUSCA LA COSA
> if !lCanceled
> IF [consiguio el valor]
> // popula la fila
> oBro:SetValue(2,mREG[2])
> ELSE // NO ENCUENTRA DEBE BUSCAR UNO
> PRIVATE mDevo := ''
> // AQUI ABRE EL BROWSE DE BUSQUEDA
> oConcB := ConcBusca():New()
> oConcB:oSQLQuery1:oDataSource := oCon
> oConcB:oSQLQuery1:lOpen := .T.
> oConcB:ShowModal()
> // POPULA LAS COLUMNAS
> oBro:SetValue(1,mREG[1])
> ENDIF
> ENDIF
>
> RETURN Nil
>
> en la tabla de busqueda tengo este metodo y es igual al metodo de on doble
> click
>
> METHOD DBBrowse1KeyUp( oSender, nKey, nFlags ) CLASS concbusca
> if nKey = 13
> mDEVO := oSender:aCols[1]:Value
> ::Close()
> endif
> RETURN Nil
>
> Si quito este ultimo metodo y lo dejo con doble click solamente, funciona
> pero quiero poder seleccionar el registro con enter tambien, el problema
> es que al presionar enter en el edit con un valor no valido me abre el
> browse e inmediatamente se sale devolviendome el valor del primer
> registro.
>
> Saludos
> Gracias
>
>
>
Sigue OnKeyUp
Yo tengo procedimientos como el tuyo y siempre programo el evento KeyDown
sin ningún problema
"Andres Hocevar" <datasis@cantv.net> escribió en el mensaje
news:[email=4766a24b@ozsrv2.ozlan.local...]4766a24b@ozsrv2.ozlan.local...[/email]
> Sigue el problema con On Key Up ya tratado en otro hilo
>
> Explico de nuevo, la idea es hacer un browse editable de manera de que
> cuando entro el codigo en la columna codigo el sistema busque en otra
> tabla si el mismo existe en caso de que no me abra una ventana con la
> tabla de codigos en un browse (es un lookup) desde el cual pueda
> seleccionar uno con dobleclik, todo funciona bien hasta que se me ocurrio
> que el cliente ademas de seleccionar el codigo con dobleclick pudiera
> hacerlo con enter para evitar el mouse, entonces lo que ocurre es que en
> el primer browse le da enter y abre el segundo browse (busqueda) pero este
> ultimo por algun motivo??? reconoce el evento OnKeyUp y toma el enter
> cerrandose inmediatamente y regresando el primer codigo de la tabla
>
> Este es el codigo de la columna que llama para verificar el codigo
> ingresado:
>
> METHOD DetalleColumn1PostEdit( oSender, Value, lCanceled, nKey ) CLASS
> noco
> LOCAL mREG := {}
> LOCAL mCodigo := Value
> LOCAL oBro := ::oDetalle // este es el browse principal tipo array
> LOCAL mDESCRIP, mTIPO, mGRUPO, mCONCEPTO, oConcB
> // BUSCA LA COSA
> if !lCanceled
> IF [consiguio el valor]
> // popula la fila
> oBro:SetValue(2,mREG[2])
> ELSE // NO ENCUENTRA DEBE BUSCAR UNO
> PRIVATE mDevo := ''
> // AQUI ABRE EL BROWSE DE BUSQUEDA
> oConcB := ConcBusca():New()
> oConcB:oSQLQuery1:oDataSource := oCon
> oConcB:oSQLQuery1:lOpen := .T.
> oConcB:ShowModal()
> // POPULA LAS COLUMNAS
> oBro:SetValue(1,mREG[1])
> ENDIF
> ENDIF
>
> RETURN Nil
>
> en la tabla de busqueda tengo este metodo y es igual al metodo de on doble
> click
>
> METHOD DBBrowse1KeyUp( oSender, nKey, nFlags ) CLASS concbusca
> if nKey = 13
> mDEVO := oSender:aCols[1]:Value
> ::Close()
> endif
> RETURN Nil
>
> Si quito este ultimo metodo y lo dejo con doble click solamente, funciona
> pero quiero poder seleccionar el registro con enter tambien, el problema
> es que al presionar enter en el edit con un valor no valido me abre el
> browse e inmediatamente se sale devolviendome el valor del primer
> registro.
>
> Saludos
> Gracias
>
>
>
sin ningún problema
"Andres Hocevar" <datasis@cantv.net> escribió en el mensaje
news:[email=4766a24b@ozsrv2.ozlan.local...]4766a24b@ozsrv2.ozlan.local...[/email]
> Sigue el problema con On Key Up ya tratado en otro hilo
>
> Explico de nuevo, la idea es hacer un browse editable de manera de que
> cuando entro el codigo en la columna codigo el sistema busque en otra
> tabla si el mismo existe en caso de que no me abra una ventana con la
> tabla de codigos en un browse (es un lookup) desde el cual pueda
> seleccionar uno con dobleclik, todo funciona bien hasta que se me ocurrio
> que el cliente ademas de seleccionar el codigo con dobleclick pudiera
> hacerlo con enter para evitar el mouse, entonces lo que ocurre es que en
> el primer browse le da enter y abre el segundo browse (busqueda) pero este
> ultimo por algun motivo??? reconoce el evento OnKeyUp y toma el enter
> cerrandose inmediatamente y regresando el primer codigo de la tabla
>
> Este es el codigo de la columna que llama para verificar el codigo
> ingresado:
>
> METHOD DetalleColumn1PostEdit( oSender, Value, lCanceled, nKey ) CLASS
> noco
> LOCAL mREG := {}
> LOCAL mCodigo := Value
> LOCAL oBro := ::oDetalle // este es el browse principal tipo array
> LOCAL mDESCRIP, mTIPO, mGRUPO, mCONCEPTO, oConcB
> // BUSCA LA COSA
> if !lCanceled
> IF [consiguio el valor]
> // popula la fila
> oBro:SetValue(2,mREG[2])
> ELSE // NO ENCUENTRA DEBE BUSCAR UNO
> PRIVATE mDevo := ''
> // AQUI ABRE EL BROWSE DE BUSQUEDA
> oConcB := ConcBusca():New()
> oConcB:oSQLQuery1:oDataSource := oCon
> oConcB:oSQLQuery1:lOpen := .T.
> oConcB:ShowModal()
> // POPULA LAS COLUMNAS
> oBro:SetValue(1,mREG[1])
> ENDIF
> ENDIF
>
> RETURN Nil
>
> en la tabla de busqueda tengo este metodo y es igual al metodo de on doble
> click
>
> METHOD DBBrowse1KeyUp( oSender, nKey, nFlags ) CLASS concbusca
> if nKey = 13
> mDEVO := oSender:aCols[1]:Value
> ::Close()
> endif
> RETURN Nil
>
> Si quito este ultimo metodo y lo dejo con doble click solamente, funciona
> pero quiero poder seleccionar el registro con enter tambien, el problema
> es que al presionar enter en el edit con un valor no valido me abre el
> browse e inmediatamente se sale devolviendome el valor del primer
> registro.
>
> Saludos
> Gracias
>
>
>