PDA

Ver la Versión Completa : Trabajo con DBGrid


JoAnCa
12-04-2008, 17:35:04
Como hacer para cuando haga clic en el titulo de la columna de un DBGrid se ordene por ese campo correspondiente

jhonny
12-04-2008, 17:41:02
El evento OnTitleClick te envía la columna en la que hicieron Click, si dicha información la traes desde un Query, podrás re-ejecutar la consulta agregandole un order by por ese campo, si esa info esta en un DataSet en memoria tipo RxMemoryData, podrás hacer uso de su método Sort, si esa información esta en un TClientDataSet, podrás hacer uso de sus cualidades de indexación.

JoAnCa
14-04-2008, 23:19:31
Gracias, jonny por su ayuda
Consegui ordenar mi DBGrid como deseaba, pero tengo un problema
Uso un TClientDataSet, enlazando con un .mdb de access 2003, me ordena por todos los campos menos por dos.
Estos dos campos son parte de una consulta que provienen de otra consulta de sumatoria.

Es decir, tengo las siguientes consultas hechas en el access:
c HDD --> Suma la capacidad de todos los Discos duros
c Mem --> Suma todos los DIMM de memorias
c Configuracion --> Es el resumen de todas las caracteristicas de la PC, que contiene ademas los campos resultantes de las dos consultas anteriores.

Cuando trato de ordenar por los campos TotalRAM o TotalHDD me da un error, aunquew si funciona bien con los demas campos de la consulta

Que puede estar sucediendo, si es que hice mal la consulta, entonces como podre hacer para que me muestre los datos como deseo.

Delfino
15-04-2008, 08:18:56
Depende del Access y si permite ordenar por campos calculados como hace la ultima version del Firebird, prueba a ver si desde el Access mismo te permite ordenar estas columnas..

MaMu
15-04-2008, 08:49:49
Cuando trato de ordenar por los campos TotalRAM o TotalHDD me da un error, aunquew si funciona bien con los demas campos de la consulta

Que puede estar sucediendo, si es que hice mal la consulta, entonces como podre hacer para que me muestre los datos como deseo.

Hola, para poder ordenar por los campos calculados, tenes que usar un ClientDataSet, y su provider apuntado al Query de la consulta. Tuve el mismo problema que vos hace un tiempo, y asi lo solucione. Seguramente estas utilizando Access, aunque en mySQL tuve tambien el problema.

Depende del Access y si permite ordenar por campos calculados como hace la ultima version del Firebird, prueba a ver si desde el Access mismo te permite ordenar estas columnas..

Desconozco la ultima versión de firebird, pero me tienta a probarla, gracias por el dato.

Saludos