Fala ai Radizeiros e Radizeiras, tudo bem com vocês?

Para melhorar a experiencia do seu usuário com o sistema as vezes adicionamos diversos componentes e até mesmo poluímos nossa IDE.

O Firedac disponibiliza diversas opções para facilitar essa experiencia do usuário, onde nessa série aqui no blog tenho mostrado diversas delas.

No post de hoje estarei mostrando um pouco de como realizar ordenação diretamente do Firedac.

Para ficar melhor o entendimento, irei criar um novo exemplo e adicionar um DBGrid, e claro, seus componentes de conexão.

Iremos realizar a ordenação desses dados diretamente do Firedac.

O que é legal que isso já encontra-se nativo na ferramenta.

Iremos utilizar o IndexFieldName, como ele podemos ordenar o DBGrid ao clicar no titulo de uma coluna.

Talvez você hoje esteja utilizando ferramentas de terceiros, enchendo a sua IDE de componentes para fazer algo desse tipo, para melhorar a experiencia do usuário.

E até mesmo, esta usando o Firedac junto com esses componentes, sendo que o Firedac já possui essa opção.

Vamos implementar o código abaixo para ficar mais bonito.

Com o DBGrid selecionado vamos na aba eventos do Object Inspector e implementar no evento OnTitleClick.

Quando o usuário clicar no título desse DBGrid ele irá acionar esse evento e realizar a ordenação.

procedure TForm3.DBGridTitleClick(Column: TColumn);
begin
    if FDMemTable1.IndexFieldNames = Column.FieldName then
        FDMemTable1.IndexFieldNames := Column.FieldName + ':D'
    else
        FDMemTable1.IndexFieldNames := Column.FieldName;
end;

Com só esse código já podemos testar o nosso projetinho.

Vamos executar e ver o comportamento.

Viu que legal, só com esse código já está ordenado todo o nosso DBGrid, e o que é mais legal, ordenando crescente decrescente.

Talvez você está se perguntando que raio de D é esse que coloquei dentro do código.

Vou deixar aqui o link do wiki da Embarcadero que explica melhor o porquê disso.

http://docwiki.embarcadero.com/Libraries/Sydney/en/FireDAC.Comp.Client.TFDTable.IndexFieldNames

Se olharmos na documentação, ele usa outros atributos, e o atributo D classifica de forma decrescente.

Agora se você ainda não tem isso em sua aplicação, vai lá e aproveita essa oportunidade.

E caso você tenha interesse de conhecer mais sobre as técnicas  do Firedac acessa o nosso portal do CLUBE DE PROGRAMADORES EM DELPHI, onde você não só terá conteúdos relacionados ao Firedac, mas uma quantidade enorme de conteúdos que poderá lhe ajudar muito no seu dia a dia, é uma verdadeira NETFLIX para os programadores Delphi.

CLIQUE AQUI E SAIBA MAIS SOBRE O CLUBE DOS PROGRAMADORES DELPHI