FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Índice de cliente
Hola foro, quiero ordenar (ascendente y descendiente) en un dbgrid en tiempo de ejecución (descendiente si vuelve a oprimir la misma columna) para ello utilizo el siguiente código:
procedure Tform1.gridTitleClick(Column: TColumn); begin with Column.Grid.DataSource.DataSet as TClientDataSet do if IndexFieldNames = Column.Field.FieldName then IndexFieldNames := Column.Field.FieldName + ' desc' else IndexFieldNames := Column.Field.FieldName; end; obviamente me envia un error de "campo no encontrado" al unir el nombre del campo con 'desc'. Alguien sabe como puedo lograrlo. Nota: Estoy trabajando con firebird 1.5 y delphi 7, utilizo dbExpress y ClientDataSet |
#2
|
||||
|
||||
Agrégale índices al ClientDataSet en su propiedad IndexDefs. Ahí te permite definir los índices con criterios descendentes o mixtos inclusive. Por ejemplo, si quieres ordenar descendentemente por un único campo agregas un índice en IndexDefs; en las propiedades Fields y DescFields del índice escribes el nombre del campo y le das un nombre al índice. Para seleccionar el índice usas la propiedad IndexName del ClientDataSet asignándole el nombre que le hayas puesto al índice.
// Saludos |
|
|
|