ListView: Ordenação Descendente no OnTitleClick
13/09/2004
0
Através de um artigo da Clube Delphi 30, estou usando o componente
ListView para exibir os dados de uma tabela(pasmem dbf).
Agora o que eu gostaria de fazer e que não explica no artigo é
a ordenação descendente.
a procedure para ordenação ascendente é esta:
procedure TFrmBoletoLaser.lsvRetornoColumnClick(Sender: TObject; Column: TListColumn); const aCampo : array [0..13] of string = (´TIPO´,´TITULO´,´DESCRICAO´, ´DATVEN´,´VLRTITULO´,´VLRPGTO´,´DATENT´,´DATLIQ´,´VLRJUROS´,´VLRABAT´, ´VLRIOF´,´VLRDESC´,´VLRMORA´,´NBANCO´); var sCampo : string; begin sCampo := aCampo[Column.index]; try cdsRetorno.IndexDefs.FindIndexForFields(sCampo); except on EDatabaseError do cdsRetorno.AddIndex(´Index´+sCampo,sCampo,[]); end; cdsRetorno.IndexFieldNames := sCampo; lsvRetorno.Invalidate; end;
Li no help do Delphi:
Note: FindIndexForFields can only locate ascending indexes. To include descending indexes in the search, use GetIndexForFields.
mas não consegui usar
se alguem tiver uma dica.
Macario
Posts
02/02/2005
Emerson Nascimento
procedure TFrmBoletoLaser.lsvRetornoColumnClick(Sender: TObject; Column: TListColumn); const aCampo : array [0..13] of string = (´TIPO´,´TITULO´,´DESCRICAO´, ´DATVEN´,´VLRTITULO´,´VLRPGTO´,´DATENT´,´DATLIQ´,´VLRJUROS´,´VLRABAT´, ´VLRIOF´,´VLRDESC´,´VLRMORA´,´NBANCO´); var sCampo,sIndice : string; lDecrescente: boolean; Indice: TIndexDef; begin sCampo := aCampo[Column.index]; lDecrescente := cdsRetorno.IndexName=(´Index´+sCampo); try if lDecrescente then Indice := cdsRetorno.IndexDefs.GetIndexForFields(sCampo,True) else Indice := cdsRetorno.IndexDefs.FindIndexForFields(sCampo); sIndice := Indice.Name; except on EDatabaseError do begin sIndice := ´Index´+sCampo; if lDecrescente then begin sIndice := sIndice+´_D´; cdsRetorno.AddIndex(sIndice,sCampo,[ixDescending]); end else cdsRetorno.AddIndex(sIndice,sCampo,[]); end; end; cdsRetorno.IndexName := sIndice; lsvRetorno.Invalidate; end;
isso funcionou?
02/02/2005
Macario
Fiz um teste e não funcionou, colega.
Se tiver algum comentário. :roll:
02/02/2005
Emerson Nascimento
03/02/2005
Macario
emerson.en, estarei testando novamente entao, blz. E obrigado por sua atenção.
raserafim apos testar(e testarei ate sexta) a dica do emerson, lhe digo os passos necessarios, pois ai esta completa.
Entao até...lá
Clique aqui para fazer login e interagir na Comunidade :)