Ordenar dados da DBGRID

* No Exemplo abaixo estamos trabalhando com o componente de conexão FireDac

Vá até o Evento OnTitleClick ou criei uma procedure e associe a esse evento.

Exemplo

DBGrid1.OnTitleClick := OrdenarDBGrid;

procedure TForm1.OrdenarDBGrid(Column: TColumn);
var
  I: Integer;
  sIndexName: string;
  opcoes: TFDSortOptions;
begin

  for I := 0 to DBGrid1.Columns.Count-1 do
  begin
    DBGrid1.Columns[i].Title.Font.Color := clBlack;
  end;

  with TFDMemTable(DBGrid1.DataSource.DataSet) do
  begin
    Column.Title.Font.Color := $00AE6726;

    if IndexName = Column.Field.FieldName+'_ASC' then
    begin
      sIndexName := Column.Field.FieldName+'_DESC';
      opcoes := [soDescending];
    end
      else
      begin
        sIndexName := Column.Field.FieldName+'_ASC';
        opcoes := [];
      end;

    IndexDefs.Update;
    if IndexDefs.IndexOf(sIndexName) < 0 then
    begin
      AddIndex(sIndexName, Column.Field.FieldName, '', opcoes);
    end;

    IndexName := sIndexName;
  end;
end;

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *