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
Responder
Claudio C
Mensajes: 60
Registrado: Dom Sep 20, 2015 8:13 pm
Ubicación: Buenos Aires

Problema TDBCardBox-CardBoxClick

Mensaje por Claudio C »

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.
Avatar de Usuario
ignacio
Site Admin
Mensajes: 9252
Registrado: Lun Abr 06, 2015 8:00 pm
Ubicación: Madrid, Spain
Contactar:

Re: Problema TDBCardBox-CardBoxClick

Mensaje por ignacio »

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]
https://www.xailer.com
Avatar de Usuario
ignacio
Site Admin
Mensajes: 9252
Registrado: Lun Abr 06, 2015 8:00 pm
Ubicación: Madrid, Spain
Contactar:

Re: Problema TDBCardBox-CardBoxClick

Mensaje por ignacio »

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]
https://www.xailer.com
Responder