FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
||||
|
||||
Ordenar datos en un DBGrid con click en cabecera
Bueno como vi que en la parte de trucos no funcionaba para componentes de dbExpress, le pregunte a google y me respondio XD.
Este código pertenece al siguiente sitio Código que realiza el ordenamiento:
Código para utilizar el ordenamiento:
Saludos
__________________
¡Oh nooo! no compartas, compartir es pirateria, compartir te llevara a la carcel - Revolution OS |
#2
|
||||
|
||||
Hola totote
si quieres ordenar por columna los datos que tienes un dBGrid, puedes utilizar el codigo que esta a continuación.. Debes utilizar el evento OnTitleClick del DBGrid...si pincho 1 vez me ordena por la columna en forma ascendente y si lo vuelvo a presionar me lo ordena en forma descendente... para controlar ese evento utilizo una variable ( Sw_1)
bueno, el codigo anterior te ordena solo si pinchas en la columna con el titulo RUT, por lo que deberas agregar las demas columnas que necesites ordenar... Espero que te funcione.. Salu2
__________________
BlueSteel |
#3
|
||||
|
||||
Pero el código que pone totote está pensado específicamente para un ClientDataSet lo cual da la enorme ventaja de no tener que reconsultar a la base. El ordenamiento se hace en memoria, por lo cual es mucho más rápido. Además, el código es genérico; sirve para cualquier ClientDataSet sin importar el nombre de los campos ni la columna seleccionada.
Eso sí, creo que se puede simplificar un poco
// Saludos Última edición por roman fecha: 02-05-2008 a las 18:40:31. |
#4
|
||||
|
||||
Bien roman quedó bastante simplificado, igualmente yo lo postee así porque así lo encontre
Saludos
__________________
¡Oh nooo! no compartas, compartir es pirateria, compartir te llevara a la carcel - Revolution OS |
#5
|
||||
|
||||
Cita:
Interesante el código.. esto me simplificaria varias lineas... ahora donde se debe dejar este código y como se vincula a un dbGrid....??? para cuando pinchen los titulos se ordene.... Salu2
__________________
BlueSteel |
#7
|
||||
|
||||
Cita:
// Saludos |
#8
|
||||
|
||||
Cita:
Ok...gracias... lo estoy probando..aunque no con muy buenos resultados... pero seguiré intentando.. Salu2
__________________
BlueSteel |
#9
|
||||
|
||||
El Código simplificado de Roman no lo pude probar, pero el código original el único error que le encontre fue que una vez utilizado el código, se desvincula el DBGrid y queda abierto el ClientDataSet, al volver a vincular el DBGrid me genera erro al querer encontrar las columnas con la cabezera modificada, despúes a mi me anduvo sin ningún problema.
Saludos
__________________
¡Oh nooo! no compartas, compartir es pirateria, compartir te llevara a la carcel - Revolution OS |
#10
|
||||
|
||||
¿O sea que no sirve?
// Saludos |
#11
|
||||
|
||||
No, no quise decir que no sirve sino que no lo he probado para ver como funciona realmete, para saber si anda o no hay que utilizarlo.
Saludos
__________________
¡Oh nooo! no compartas, compartir es pirateria, compartir te llevara a la carcel - Revolution OS |
#12
|
||||
|
||||
me da error
Bueno.,... segui con las pruebas....
lo que hice fue crear una unidad nueva, pero me da error.... con el código que puso Roman cree esta unidad
pero me da el error de compilación Unit17.pas(8): Undeclared identifier: 'TColumn' Unit17.pas(18): Then expected but identifier 'FieldName' found bueno y da otros más... quizas puede ser por que faltan algunas uses.... Salu2
__________________
BlueSteel Última edición por BlueSteel fecha: 06-05-2008 a las 01:26:58. |
#13
|
||||
|
||||
Tambien probe con el codigo que dejo Totote.... si bien la funcion no me da error, cuando quiero ejecutar el codigo si me da error, pero puede ser por algo que este realizando mal...
bueno, del codigo anterior, no se muy bien que debe ir en ClientDataSet1, puesto que lo he cambiado por el DBGrid, DataSourse y ADOQuery sin tener resultados positivos... Salu2
__________________
BlueSteel |
#14
|
||||
|
||||
¿Tú qué crees?
Supongo que te falta DBGrids y te sobra TypInfo. // Saludos |
#15
|
||||
|
||||
Hola Roman
gracias... ya agrege/quite la unidad que me indicastes.... se compila, ya no da error... estoy con el problema de poder utilizarla.... Segun como me indicastes, puse lo siguiente....
pero me da error de incompatibilidad de tipos (TClientDataSet and TADOQuery / TClientDataSet and TDataSource / TClientDataSet and TDBGrid ) Bueno.. eso.. Salu2
__________________
BlueSteel Última edición por BlueSteel fecha: 06-05-2008 a las 22:48:37. |
#16
|
||||
|
||||
Pero amigo Blue, estamos en distinto canal
Me cito a mi mismo Cita:
// Saludos |
#17
|
||||
|
||||
Bueno con respecto al Código original cuando se quería abrir el TClientDataSet generaba un error que no reconocia la columna, para solucionar ese problema lo que hice fue que al salir del formulario antes de cerrar el TClientDataSet llamo al siguiente procedimiento:
que sería esto solamente:
Saludos.
__________________
¡Oh nooo! no compartas, compartir es pirateria, compartir te llevara a la carcel - Revolution OS |
#18
|
|||
|
|||
El siguinte codigo ordena con click en cualquier columna, pero necesito saber como se que una columna esta ordenada ASC o DESC para luego reordenarla.
PD: ABSQuery = Query |
#19
|
|||
|
|||
Bueno esto es lo que yo uso para ordenar en un DBGrid utilizando ClientDataSets.
Esto es gracias a que el ClietDataSet permite crear índices en memoria en tiempo de ejecucíon (Sin crearlos en la base de datos, claro). Espero que a alguien le sirva.
__________________
Un saludito. |
#20
|
|||
|
|||
Muchas gracias por tu aporte jorge82. Lo probé y me ha funcionado perfectamente!
Gracias de vuelta! |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Ordenar un DBGrid con click sobre un campo | bustio | OOP | 3 | 27-11-2007 19:00:41 |
Ordenar Datos en DBGrid mediante un Click | anghell77 | Varios | 2 | 20-05-2006 17:59:27 |
Stringgrid Ordenar datos con click en titulo de columna | dmassive | Varios | 1 | 20-01-2006 04:09:12 |
Como ordenar un DBGrid haciendo click sobre cada campo | judoboy | OOP | 5 | 02-08-2005 02:52:31 |
ordenar datos del DBGrid! | kage_01 | Tablas planas | 1 | 02-07-2005 03:42:28 |
|