levito 0 Denunciar post Postado Abril 20, 2009 Olá, estou desenvolvendo uma telinha que lista os valores de uma tabela SQL eu que quando a pessoa clica-se no titulo ele ordena-se a tabela (1, 2, 3, ...) com o seguinte comando: procedure TFMUsuarios.dbgUsuariosTitleClick(Column: TColumn); var campo :string; begin campo:= column.fieldname; // CAMPO RECEBE O NOME DA COLUNA CLICADA, application.processmessages; // para considerar algo que aconteça no dbgrid durante a entrada nesta procedure zqUsuarios.sql.clear; // LIMPA A QUERY zqUsuarios.sql.add('select * from Funcionarios order by '+campo); zqUsuarios.Open; // ABRE A QUERY COM A ORDEM ESCOLHIDA end; dbgUsuarios é o meu TDBGrid zqUsuarios é o meu TZQuery BOm desta forma ele ordena do jeito que falei, mas eu quero que quando eu clicar novamente ele ordene ao contrario (3, 2, 1) e não sei como fazer Por Favor me deem uma LUZ. :) Obrigado. Compartilhar este post Link para o post Compartilhar em outros sites
Chrnos 30 Denunciar post Postado Abril 20, 2009 Você pode por alguma flag para controlar isso (na tela ou interna, como uma variável no private do form) do tipo booleano... ai, se for true por exemplo, ordena por ordem crescente, se for false, ordena de forma decrescente... ai seria só por algo do tipo: IF Flag then zqUsuarios.sql.add('select * from Funcionarios order by '+campo + ' asc') else zqUsuarios.sql.add('select * from Funcionarios order by '+campo + ' desc'); De resto, só teria que ver em que momento atualizaria a flag... se for a cada chamada desta mesma procedure, poderia por antes do if um Flag := not Flag; []'s Compartilhar este post Link para o post Compartilhar em outros sites