![]() |
Í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 :) |
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 |
La franja horaria es GMT +2. Ahora son las 12:55:14. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi