Gracia por tu interés Delphius.
Cita:
Empezado por Delphius
.....
¿A que te refieres a que el usuario cambia el orden de los datos?
|
Al abrir la Form en donde se encuentra el DBGrid se ejecuta el query: SELECT........
La última línea del query es: ORDER BY........
Cuando el usuario cambia el orden de las columnas del dbgrid, el query se ordena según el orden establecido.
En el evento OnColumnMoved:
Código Delphi
[-]procedure Tform1.dbgridColumnMoved(Sender: TObject; FromIndex, ToIndex: Integer);
var
s_Cuerda: String;
i_Contador: Byte;
begin
s_Cuerda:= '';
for i_Contador:= 0 to (dbgrid.Columns.Count - 1) do
begin
if dbgrid.Columns[i_Contador].FieldName <> '' then
s_Cuerda:= s_Cuerda + dbgrid.Columns.Items[i_Contador].FieldName + ',';
end;
s_Cuerda:= Copy(s_Cuerda,0,Length(s_Cuerda) - 1); query.Close;
query.SQL.Delete(query.SQL.Count - 1);
query.SQL.Add('ORDER BY ' + s_Cuerda);
query.Open;
(query.FieldByName('Fecha') AS TDateTimeField).DisplayFormat:= 'dd/mmm/yyyy';
(query.FieldByName('Importe') AS TFloatField).DisplayFormat:= ',0.00';
end;
En conclusión: cada vez que se
abre el query debo especificar nuevamente el formato de los campos. Si no lo hago, los campos pierden el formato.
Espero haber sido claro con mi duda.
Gracias de nuevo.
Salud.