



Olá amigos da comunidade, nesta dica vou mostrar como ordenar os registros
de um ClientDataset.
No componente ClientDataset não há instrução SQL, então vem a dúvida, como
mudar a ordenação?
A responta é extremamente simples, utilize a propriedade IndexFieldNames.
Veja o exemplo abaixo:
1 2 3 4 | procedure TForm1.Button1Click(Sender: TObject); begin CDSAgenda.IndexFieldNames := 'NOME'; end; |
Neste caso, estamos ordenando os registros pelo campo nome.
Deste modo é possível ordenar por qualquer Field, desde
que o FieldKind do campo seja igual a fkData.
Esta função do componente permite que o programador
criei recursos muito interessantes, como por exemplo, ordenar
um DBGrid pelo clique da coluna.
Vamos a outro exemplo, vá na propriedade Options do DBGrid e deixe
dgTitleClick = True, depois no evento OnTitleClick deixe conforme o
exemplo abaixo:
1 2 3 4 | procedure TForm1.GridAgendaTitleClick(Column: TColumn); begin CDSAgenda.IndexFieldNames := Column.FieldName; end; |
Se alguém usa o FDMemTable, os exemplo são válidos para ele também.
Ainda há mais recursos, mas este ficarão para uma próxima.
Bom estudo a todos!
Dúvidas ou sugestões, deixe nos comentários do post.