Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   Índice de cliente (https://www.clubdelphi.com/foros/showthread.php?t=19255)

Luis 09-03-2005 01:46:15

Í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

:)

roman 09-03-2005 02:12:22

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 19:54:22.

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