Listview filas con numero correlativo
Estimados, junto con saludar comento que he rebuscado en el foro y no he logrado hacer que los datos que cargo a la listview sean numerados como el RECNO de la DB, anteriormente lo he realizado cargando un ID a la DB pero no me sirve ya que si se borra un registro se pierde un numero y solo lo necesito para contar lo que se carga por ej.
1 item 1 2 item 4 3 item 6 si alguien me podria orientar por favor:confused:. Saludos!:) |
Pero el "recno" variará cada vez que borres, insertes, etc.
|
si como comente la idea es solo contar los items.
ej. 1 item 1 2 item 4 3 item 6 elimino item 4 1 item 1 2 item 6 trate de realizar con zquery.recordcount pero solo me da el total no agrega el numero correlativo. |
Ummm... de verdad que no entiendo qué estás haciendo ni para qué :confused:
|
Solo queria que en la primera columna contara los items 1,2,3,4,5,6,7,8,9...... pero bueno mejor recorro la tabla y el total lo muestro en un label mas simple ya que lo que importa es la cantidad de items total que hay.
gracias saludos |
Cada elemento del listview, tiene la propiedad Data:TObject para que puedas almacenar ahí lo que quieras.
Lo que guarda es un puntero, si todavía trabajas en 32 bits, te puede valer para poner ahí el "consecutivo" que quieres. No sé en 64 bits como va. item.Data := pointer( 3 ) ; // 3 es el número que tú le quieres asignar a la columna cero. Cuando borres un elemento, debes tener un procedimiento que recorra todos los elementos y vuelva a poner el consecutivo (o al menos desde el que has borrado en adelante). También tienes el evento OnItemData (creo recordar) donde dices "si es la columna cero, toma el valor del item.Data, si la columna es distinta, toma el dato del ZQuery". A grandes rasgos es así, espero me hayas entendido... Saludos. |
Cita:
LineComment Saludos |
Ahh!! Que es tan simple como cerrar y abrir la consulta cuando borres un elemento, de esa forma tendrás el RecNo actualizado... buah!, es que hace muuucho que no uso los Zeos.
Bueno es recordarlo. |
Si usa el ListView sólo para mostrar los datos, debería bastar el ZQuery.RecNo. Pero si pueden quitarse filas del listview (suponiendo que tiene un mecanismo que avise al dataset de ello) y no quiere releer el dataset, lo que puede hacer es usar el evento OnCustomDrawItem para actualizar el item con su índice:
Con esto puede insertar o borrar elementos y siempre aparecerá el correlativo correcto. LineComment Saludos |
Gracias, era tan facil como ZQuery.RecNo y no la vi :(
Solucionado gracias a todos!! |
La franja horaria es GMT +2. Ahora son las 13:28:21. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi