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.

Problema TDBCardBox-CardBoxClick

Foro de Xailer profesional en español
Claudio C
Posts: 38
Joined: Sun Sep 20, 2015 8:13 pm
Location: Buenos Aires

Problema TDBCardBox-CardBoxClick

Postby Claudio C » Sun Mar 25, 2018 5:36 pm

Estimados:
En un TDBCardBox que está asociado a un TMemDataSet deseo acceder al registro del dataset correspondiente a la tarjeta sobre la que se hizo click.

Para ello hago:
METHOD DBCardBox1CardClick( oSender, oItem, nPos, nX, nY ) CLASS ....

oMDS:=oSender:oDataSet // Me da referencia al Dataset vinculado !

Pero si quiero acceder a un campo del dataset, por ejemplo:

oMDS:USUARIO

Me devuelve siempre el mismo 'registro' mas allá de que cambie el click a otra tarjeta ( Siempre es el último )
Pareciese que el MemDataSet no esta sincronizado con la posicion en pantalla.

Intenté acceder de otra manera....

oMDS:Getrow() // Devuelve Array Vacio
aFila:=oSender:aData // Matriz de TCardBox ... Inaccesible, da error

El problema es que NO puedo obtener referencia a la tarjeta sobre la que se hizo click !

Cualquier sugerencia es bienvanida
Gracias por su tiempo.
User avatar
ignacio
Site Admin
Posts: 8419
Joined: Mon Apr 06, 2015 8:00 pm
Location: Madrid, Spain
Contact:

Re: Problema TDBCardBox-CardBoxClick

Postby ignacio » Wed Mar 28, 2018 8:48 pm

Hola Claudio,

Entiendo tu problema. Actualmente sólo la propiedad TDBCardBox:nIndex que se corresponde con un Recno() (o similar) de la tarjeta activa. En el evento OnClick recibes un parámetro de nombre nPos que te indica la posición de la tarjeta en la ventana, pero efectivamente con dicha información no hay manera de saber el recno() de dicha tarjeta.

Tengo que pensar si existe una forma sencilla de solucionar el asunto, pero mientras tanto, te propongo esta solución:

1) Crea un 'dummy' TDBCardItem simplemente indicando que su nSize es cero. En dicho TDbCardItem guarda el recno.

2) En el evento TDBCardBox:OnCardClick() simplemente utiliza la expresión oMyDummyCardBoxItem:Value para recuperar el recno.

Eso es todo.

Un saludo
Ignacio Ortiz de Zúñiga
[Equipo de Xailer / Xailer team]
http://www.xailer.com
http://www.xailer.info
User avatar
ignacio
Site Admin
Posts: 8419
Joined: Mon Apr 06, 2015 8:00 pm
Location: Madrid, Spain
Contact:

Re: Problema TDBCardBox-CardBoxClick

Postby ignacio » Mon Apr 02, 2018 11:47 am

Buenos días,

No hay que hacer nada nuevo :-)

El tercer parámetro <nPos> recibe el Recno.

Saludos
Ignacio Ortiz de Zúñiga
[Equipo de Xailer / Xailer team]
http://www.xailer.com
http://www.xailer.info

Return to “Spanish”

cron