Como ordenar o ClientDataSet Virtual

Delphi

17/06/2010

Boa noite a todos...
Quem pode me ajudar?Estou precisando ordenar o campo Total por ordem Decrescente, ou seja do maior para o menor.   O meu código esta como o exemplo a baixo. Tenho os três campos (DATA, CDEQUIPE e TOTAL)mais somente o campo TOTAL que quero alterar a ordenação. Como devo fazer?
   if not (cdsResultFinal.Active) then      cdsResultFinal.Open;      cdsResultFinal.IndexFieldNames := 'Data; CdEquipe; Total';      QuickRep1.Preview;      Close;   end;
Obrigado.
Uelinton
 
Ureis

Ureis

Curtidas 0

Respostas

Marco Salles

Marco Salles

17/06/2010

Boa noite a todos...
Quem pode me ajudar? Estou precisando ordenar o campo Total por ordem Decrescente, ou seja do maior para o menor.    O meu código esta como o exemplo a baixo. Tenho os três campos (DATA, CDEQUIPE e TOTAL)mais somente o campo TOTAL que quero alterar a ordenação. Como devo fazer?
   if not (cdsResultFinal.Active) then       cdsResultFinal.Open;       cdsResultFinal.IndexFieldNames := 'Data; CdEquipe; Total';       QuickRep1.Preview;       Close;    end;
Obrigado.
Uelinton
 
  Tem muitas maneiras de fazer isto eu estou aqui so te dando um bizuzinho rápido mas se vc pesquisar vai implemtar coisas do arco da veia   Porexemplo  
Const
PesquisaDeCrescente
PesquisaCrescente
  No OnShow ou em QQ evento Ou em Uma Classe Que Defina Ist ( A que eu Prefiro ) Faça  
 SeuClientDataSet.IndexDefs.Add(PesquisaDeCrescente,NomeDoSeuCampo,[ixDescending]) ;
 SeuClientDataSet.IndexDefs.Add(PesquisaCrescente,NomeDoSeuCampo,[]) ;
  Agora qnd Quiser Alterar a Ordenção Faça  
  if  SeuDataSet.IndexName = PesquisaDeCrescente then
     SeuDataSet.IndexName:= PesquisaCrescente
  else
     SeuDataSet.IndexName:= PesquisaDeCrescente
  Algums campos não permitem ordenação do cleintDataSet , outros tem que aplicar outras técnicas  
Se não me engano são esses Não é possivel indexar um clientDataset Quando o campo for Calculado , LookUp ou Agregado , quando seu tipo for Blob Ou Memo
  Mas pode testar este codigo, que pela simplicidade pode te atender
GOSTEI 0
Ureis

Ureis

17/06/2010

Tem muitas maneiras de fazer isto eu estou aqui so te dando um bizuzinho rápido
mas se vc pesquisar vai implemtar coisas do arco da veia
 
Porexemplo
 

Const

PesquisaDeCrescente

PesquisaCrescente


 
No OnShow ou em QQ evento Ou em Uma Classe Que Defina Ist ( A que eu Prefiro )
Faça
 

 SeuClientDataSet.IndexDefs.Add(PesquisaDeCrescente,NomeDoSeuCampo,[ixDescending]) ;

 SeuClientDataSet.IndexDefs.Add(PesquisaCrescente,NomeDoSeuCampo,[]) ;


 
Agora qnd Quiser Alterar a Ordenção Faça
 

  if  SeuDataSet.IndexName = PesquisaDeCrescente then
     SeuDataSet.IndexName:= PesquisaCrescente

  else
     SeuDataSet.IndexName:= PesquisaDeCrescente


 
Algums campos não permitem ordenação do cleintDataSet , outros tem que aplicar outras técnicas
 

Se não me engano são esses
Não é possivel indexar um clientDataset Quando o campo for Calculado , LookUp ou Agregado , quando seu tipo for Blob Ou Memo

 
Mas pode testar este codigo, que pela simplicidade pode te atender
 

Bom dia Marco Antonio...Desculpe a minha pergunta....
Mas como devo declarar estas constantes: Onde e o tipo ?
Obrigado.
Uelinton
GOSTEI 0
Marco Salles

Marco Salles

17/06/2010

Mas como devo declarar estas constantes: Onde e o tipo ?
Obrigado.
  Desculpe   Vc Pode Declarar na Secção Implementation Assim   Const
PesquisaDeCrescente = 'Desc';
PesquisaCrescente = 'Cres';   So isso...
GOSTEI 0
POSTAR