Quick Tips: Ordenação no DBGrid – Parte 1
Nesta quick tip veremos como fazermos a ordenação na DBGrid quando o usuário clicar no título da coluna.
Nesta quick veremos como fazer ordenação crescente ao clicar no título da coluna.
Para isso, insira um DBGrid, um ClienteDataSet e um DataSource no formulário, conforme mostrado abaixo:
procedure TForm1.DBGridPrincipalTitleClick(Column: TColumn);
var
Idx:TIndexDef;
Begin
If Not TClientDataSet(Column.Grid.DataSource.DataSet).Active Then
Abort;
// O índice já está em uso
TClientDataSet(Column.Grid.DataSource.DataSet).IndexDefs.update;
//Verifica se o index da lista defaul do dataSet
if(TClientDataSet(Column.Grid.DataSource.DataSet).IndexDefs.IndexOf(Column.Field.FieldName)) > -1 then
Idx := TClientDataSet(Column.Grid.DataSource.DataSet).IndexDefs.Find(Column.Field.FieldName)
else
idx := nil;
//se index nao estiver criado entao adiciona, senao remove configuração descendente
if(Idx = nil)then
TClientDataSet(Column.Grid.DataSource.DataSet).AddIndex(Column.Field.FieldName, Column.Field.FieldName, [], '', '', 0);
TClientDataSet(Column.Grid.DataSource.DataSet).IndexName := Column.Field.FieldName;
end;
É isso aí pessoal, vou ficando por aqui.
Fiquem a vontade para criticar, tirar dúvidas e sugerir novos temas.
Abraço.
Ricardo Coelho