Hola,
tengo un TDBBrowse relacionado a un memdataset, tiene 6 columnas de las cuales 5 son editables y la ultima no, cuando llego a la ultima columna no me pasa abajo como lo hace el boton añadir (multiedicion) sino edita de a columna.
Adjunto el proyecto simple...
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.
TDBBrowse salto automatico?
TDBBrowse salto automatico?
- Adjuntos
-
- testbrw.zip
- (40.98 KiB) Descargado 194 veces
- ignacio
- Site Admin
- Mensajes: 9252
- Registrado: Lun Abr 06, 2015 8:00 pm
- Ubicación: Madrid, Spain
- Contactar:
Re: TDBBrowse salto automatico?
Buenos días,
Entiendo que no es un error, ya que el comportamiento que deseas no tiene porqué ser siempre así.
Observando tu código, veo que utilizas una columna para un campo que es realmente calculado y por lo tanto no hace falta definirlo y se podría resolver con este código:
Digno de mencionar es el uso del parámetro dsFIELD al acceder a los campos del dataset. De esta forma, fuerzo a que siempre devuelva los valores de la tabla y no los de edición.
Para forzar el efecto que requieres de alta forzada se puede resolver con un código como este:
Es absolutamente necesario utilizar esta técnica de envío de mensajes simulando la pulsación de tecla abajo, de lo contrario se produce un apilamiento de llamadas que puede provocar un error si se producen muchas altas de forma consecutiva.
Observa que sólo hago el alta, si estábamos en modo ALTA y además no se ha cancelado la edición con ESC.
Un saludo
Entiendo que no es un error, ya que el comportamiento que deseas no tiene porqué ser siempre así.
Observando tu código, veo que utilizas una columna para un campo que es realmente calculado y por lo tanto no hace falta definirlo y se podría resolver con este código:
Código: Seleccionar todo
METHOD BrwColumn6GetData( oSender, Value, nImage ) CLASS TForm1
WITH OBJECT ::oMItem
Value := Round( :canart( dsFIELD ) * :preart( dsFIELD ) * ( 100 - :dctart1( dsFIELD ) ) / 100, 2 )
END WITH
RETURN Value
Para forzar el efecto que requieres de alta forzada se puede resolver con un código como este:
Código: Seleccionar todo
METHOD BrwPostEdit( oSender, lCanceled, nKey ) CLASS TForm1
IF ::oBrw:nEditMode = beAPPEND .AND. !lCanceled
::oBrw:PostMsg( WM_KEYDOWN, VK_DOWN )
ENDIF
RETURN Nil
Observa que sólo hago el alta, si estábamos en modo ALTA y además no se ha cancelado la edición con ESC.
Un saludo
Re: TDBBrowse salto automatico?
Ignacio,
muchas gracias, funciona perfecto! voy a preparar un video de este tema porque me hizo renegar bastante y era "resimple". Gracias!
Saludos.
muchas gracias, funciona perfecto! voy a preparar un video de este tema porque me hizo renegar bastante y era "resimple". Gracias!
Saludos.