Fórum Ordenar crescente decrescente automaticamente #324929
06/07/2006
0
Pessoal
Como faço para ordenar crescente ou decrescente automaticamente qdo pressiono em um dos campos na grid. Gostaria de saber se tem alguma forma a menos que tem que fazer manualmente
Utilizo componente clientdataset + Delphi 7 + interbase 6.0
Rogério
Como faço para ordenar crescente ou decrescente automaticamente qdo pressiono em um dos campos na grid. Gostaria de saber se tem alguma forma a menos que tem que fazer manualmente
Utilizo componente clientdataset + Delphi 7 + interbase 6.0
Rogério
Rogeranalista
Curtir tópico
+ 0
Responder
Posts
07/07/2006
Lu©as
Depois de ter carregado os dados no Clientdataset, vc pode ordenar os dados em memoria. No seu caso, vc cria dois indices para o campo que deseja ordenar, sendo que um desses indices será ascendente, e o outro descendente.
Depois, no envento OnTitleClick, vc coloca:
if ClientDataSet1.IndexFieldNames = IndexAscend then
begin
ClientDataSet1.IndexFieldNames = IndexDescend;
end
else ClientDataSet1.IndexFieldNames = IndexAscend;
Acho que assim pode dá certo. Tenta aí.
Até +
:wink:
Depois, no envento OnTitleClick, vc coloca:
if ClientDataSet1.IndexFieldNames = IndexAscend then
begin
ClientDataSet1.IndexFieldNames = IndexDescend;
end
else ClientDataSet1.IndexFieldNames = IndexAscend;
Acho que assim pode dá certo. Tenta aí.
Até +
:wink:
Responder
Gostei + 0
07/07/2006
Marco Salles
é muito fácil criar indices em memória em clienteDataset.
Para isso, basta setar a propriedade IndexFieldNames (para criar índices mais personalizados use a propriedade IndexDefs e IndexName). Não é necessário criar arquivos de índices como no Paradox ou refazer a consulta SQL no banco.
Exemplo de ordenação clicando na Grid...
Para isso, basta setar a propriedade IndexFieldNames (para criar índices mais personalizados use a propriedade IndexDefs e IndexName). Não é necessário criar arquivos de índices como no Paradox ou refazer a consulta SQL no banco.
Exemplo de ordenação clicando na Grid...
var OLDColumn:TColumn;
procedure TFrmMain.DBGrid1TitleClick(Column: TColumn); begin if Assigned(OldColumn) then OldColumn.Title.Color := DBGrid1.FixedColor; ClientDataSet1.IndexFieldNames := Column.FieldName; Column.Title.Color := $00408080; OldColumn := Column; end;
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)