GARANTIR DESCONTO

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


Rogeranalista

Rogeranalista

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:


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...

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

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar