Fórum Como faço para reordenar uma dbgrid? #339031
20/03/2007
0
Grato,
Vandeir
Vandeir
Curtir tópico
+ 0Posts
20/03/2007
Acacio
Procure aqui por TClienteDataSet tem muito material.
Gostei + 0
20/03/2007
Leufmt
1 – No evento ontitleclick, criar uma variavel chamada campo, campo então receberá a coluna clicada, para depois a query fazer o order by pelo campo escolhido.
procedure Tconscli.gradeprocessosTitleClick(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
qrCLIENTES.sql.clear; // LIMPA A QUERY
qrCLIENTES.sql.add(´select * from div1 order by ´+campo); // ESCREVE O SELECT COM O ORDER BY
if not QRCLIENTES.Prepared then
QRCLIENTES.Prepare;
QRCLIENTES.Open; // ABRE A QUERY COM A ORDEM ESCOLHIDA.
End;
column.Font.color:=clblue; // COLOCAR A COLUNA NA COR DESEJADA
Gostei + 0
20/03/2007
Fabiano Góes
mais vai uma dica com DBExpress:
após abrir a tabela com um ClientDataSet:
ClientDataSet.open;
você já pode fechar a conexão e trabalhar em cache:
SQLConnection.close;
apartir dai toda ordenação será feita em cache com o ClientDataSet sem precisar consultar novamente no Banco:
ClientDataSet.IndexFieldNames := ´NOME_DO_CAMPO´;
espero ter ajudado,
um abraço !!!
Gostei + 0
20/03/2007
Macario
Há algum tempo no colega de forum emerson.en teve uma necessidade que tambem tive e ele desenvolveu uma solução.
vejam este tópico que irá ajudar muito voces:
[url=http://forum.clubedelphi.net/viewtopic.php?t=53308&start=0&postdays=0&postorder=asc&highlight=clientdataset+decrescenteurl]Ordenar ClientDataset (IndexFieldNames) em ordem decrescente[/url]
8)
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)