Ordenação de uma GRID

Delphi

07/07/2004

Olá meus caros,

Gostaria muito de ter uma GRID, tanto faz se é DBGrid ou StringGrid, que eu possa ordenar pela coluna (quando se clica nela).

Estive pensando em fazer por DBGrid e ordenar o ClientDataSet que está conectado ao datasource dele. É possível ordenar um clientdataset depois de te-lo instânciado?

Alguém já fez isso?

Vi uma forma de fazer que eu achei muito ruim que é colocar speedbuttons sobre os títulos das colunas da grid.

Existe alguma grid que possa ser pressionada na coluna?

[]s
debeniente


Ivancarvalho

Ivancarvalho

Curtidas 0

Respostas

Otto

Otto

07/07/2004

bom, veja se isto pode lhe ajudar:

no evento DBGrid1Title do dbgrid faça:

procedure TfmConFuncionarios.DBGrid1TitleClick(Column: TColumn);
begin
  Screen.Cursor := crHourGlass;
  if zq1.Active then zq1.Active := false;
  zq1.SQL.Text := ´Select * from tbFuncionarios Order by ´+Column.FieldName;
  zq1.Open;
  Screen.Cursor := crDefault;
end;



:arrow: Detalhe, zq1 é minha query.


GOSTEI 0
Denis

Denis

07/07/2004

Uma outra idéia.

Se vc. estiver usando clientdataset faz o seguinte :

procedure TfmConFuncionarios.DBGrid1TitleClick(Column: TColumn);
begin
clientdataset1.indexfieldnames := column.fieldname;
end;


GOSTEI 0
Leandrodz

Leandrodz

07/07/2004

Estou usando o [b:74034d2b8a]IndexFieldNames[/b:74034d2b8a], mas ele só ordena crescentemente.
Tem como fazer a ordenação decrescente?

OBS: os meus dados estão vindo de um arquivo XML, então não dá pra fazer pro Order By em SQL.


GOSTEI 0
POSTAR