Notifications
Clear all

Ordenar Listview por data

9 Posts
4 Usuários
0 Reactions
3,018 Visualizações
(@mairon)
Posts: 40
Eminent Member
Topic starter
 

Boa tarde pessoal;

Gostaria de saber como fazer a coluna data do listview ser classificada em ordem crescente de forma correta, no evento columnclick, o código que eu uso pelo que percebi não funciona corretamente pra datas. Eu tenho usado este:

Private Sub listview5_ColumnClick(ByVal ColumnHeader As MSComctlLib.ColumnHeader)
' ordena a coluna ao clicar no título da mesma
ListView5.Sorted = False
ListView5.SortKey = ColumnHeader.Index - 1

If ListView5.SortOrder = lvwAscending Then
ListView5.SortOrder = lvwDescending
Else
ListView5.SortOrder = lvwAscending
End If

ListView5.Sorted = True
End Sub

 
Postado : 02/04/2014 12:49 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Boa tarde!!

use a pesquisa do fórum!

viewtopic.php?f=10&t=3312
viewtopic.php?f=25&t=4808
viewtopic.php?f=10&t=8988

Att

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 02/04/2014 2:40 pm
(@mairon)
Posts: 40
Eminent Member
Topic starter
 

Esse é exatamente o meu problema mas não tem a solução

viewtopic.php?f=10&t=3312

 
Postado : 02/04/2014 3:29 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Creio que o motivo é: no listview os dados são considerados como string e não valor (data).
Experimente o recomendado em --> http://www.vbweb.com.br/dicas_visual.asp?Codigo=2821

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 03/04/2014 8:41 am
(@mairon)
Posts: 40
Eminent Member
Topic starter
 

Reinaldo, obrigado pela ajuda, parece que nesse tópico tem a solução... só estou com um pouco de dificuldade pra interpretar a propriedade ".tag", sabe me dizer como ela funciona?

 
Postado : 03/04/2014 12:10 pm
(@afbergman)
Posts: 108
Estimable Member
 

Esse video vai te ajudar muito

https://www.youtube.com/watch?v=qeg0lxoJZLA

Abraços.

 
Postado : 26/11/2014 8:02 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Mairon, no modelo do tópico abaixo é realizado a classificação por varias colunas de acordo com a que clicamos e tambem por DATAS, baixe o exemplo e veja se ajuda:

Filtrar ListView Criterios Datas e Texto
viewtopic.php?f=21&t=3586

[]s

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 27/11/2014 7:10 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Reinaldo, obrigado pela ajuda, parece que nesse tópico tem a solução... só estou com um pouco de dificuldade pra interpretar a propriedade ".tag", sabe me dizer como ela funciona?

Mairon, a Propriedade "TAG" tem de ser definida quando criamos o Cabeçalho "ColumnHeaders", por exemplo :

With ListView1
        .Gridlines = True
        .View = lvwReport
        .FullRowSelect = True
        .ColumnHeaders.Add(Text:="IDS", Width:=15, Alignment:=fmAlignmentLeft).Tag = "N" 'Number
        .ColumnHeaders.Add(Text:="TICKET", Width:=40, Alignment:=fmAlignmentRight).Tag = "N" 'Number
        .ColumnHeaders.Add(Text:="DATA", Width:=60, Alignment:=fmAlignmentRight).Tag = "De" 'Date
        .ColumnHeaders.Add(Text:="PLACA", Width:=50, Alignment:=fmAlignmentRight).Tag = "T" 'Texto - String
        .ColumnHeaders.Add(Text:="MOTORISTA", Width:=80, Alignment:=fmAlignmentRight).Tag = "T" 'Texto - String
        .ColumnHeaders.Add(Text:="CONTRATANTE", Width:=50, Alignment:=fmAlignmentRight).Tag = "T" 'Texto - String
        .ColumnHeaders.Add(Text:="TARA", Width:=60, Alignment:=fmAlignmentRight).Tag = "N" 'Number
End With

Veja que ainda temos outra propriedade definida : Alignment que tem somente duas opções, e a primeira coluna tem de ser sempre Left ;
fmAlignmentRight e fmAlignmentLeft

Se o exemplo que indiquei não resolver, depois anexo um utilizando a rotina do site que o Reinaldo indicou.

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 27/11/2014 1:03 pm
selmo
(@selmo)
Posts: 236
Estimable Member
 

Interessante esse metodo de ordenar o listview, o exemplo citado é simples e funciona muito bem, mas uma duvida, aproveitando o tópico: o evento é iniciado quando se clica no cabeçalho do listview, e o mesmo inicia com a ordem crescente, no caso da primeira até a ultima linha, como fazer com que o carregamento fosse o contrario, carregar do ultimo para o primeiro ao iniciar o form?

"A mente que se abre a uma nova ideia jamais voltará ao seu tamanho original."
Albert Einstein

 
Postado : 02/12/2014 9:24 am