USUÁRIO:      SENHA:        SALVAR LOGIN ?    Adicione o VBWEB na sua lista de favoritos   Fale conosco 

 

  Fórum

  Visual Basic
Voltar
Autor Assunto:  Ordenar coluna de Listview de forma "Inteligente"?
Vaughyman
RIO DE JANEIRO
RJ - BRASIL
Postada em 27/09/2004 19:04 hs            
Prezados Coalboradores,
 
Na seção dicas desse renomado forum, encontrei algo que me interessou visto que ordenar a coluna de listview se tornou um desafio.
Tenho procurado uma maneira de em modulo global, executar tal tarefa e ao visitar essa seção me deparei com uma esperada solução.
A montar tudo conforme o autor assim descreveu, começou os problemas...
Primeiro há uma type de um tal ListaDataTyep que não sabemos como foi gerado.
segundo exite uma função chamada "InvNumber" que tambem não sei de onde veio e por ai vai...
 
Alguem tem uma solução para isso ou a dica não foi testada como assim é dito ao posta-la na seção??!!
 
Abraços
 
     
Vaughyman
RIO DE JANEIRO
RJ - BRASIL
Postada em 28/09/2004 13:39 hs            
Estou vendo que não surtiu efeito, pois nem os moderadores, suspervisores e outros "ores" deram alguma resposta!
Tem muito cacique pra pouco Indio...
     
Alfterra
Pontos: 2843 Pontos: 2843
SÃO PAULO
SP - BRASIL
Postada em 28/09/2004 14:32 hs            
Cuidado com as metaforas vaug.......qual a versao da DLL que contem o listview que vc esta usando? caso seja diferente dessa "WINDOWS COMMOM CONTROLS 6.0 (SP6) atualiza o seu VB e tanta essa DLL.....
     
Semmer
CURITIBA
PR - BRASIL
Postada em 28/09/2004 14:53 hs            
Cara, eu uso assim e funciona:
 
no evento columnclick do teu listview:
 
Private Sub lsv_ColumnClick(ByVal ColumnHeader As MSComctlLib.ColumnHeader)
   OrdenaLvw lsv, ColumnHeader
End Sub
 
num modulo qualquer:
Public Sub OrdenaLvw(ByVal LVW As MSComctlLib.ListView, ByVal ColCabecalho As MSComctlLib.ColumnHeader)
'Ordena o ListView conforme a coluna especificada.
   If LVW.SortKey = ColCabecalho.Index - 1 Then
      LVW.SortOrder = IIf(LVW.SortOrder = lvwAscending, lvwDescending, lvwAscending)
   Else
      LVW.SortOrder = lvwAscending
   End If
   LVW.SortKey = ColCabecalho.Index - 1
   LVW.Sorted = True
End Sub
Cada clique no cabeçalho de uma coluna do listview, ordena ascendente, um próximo clique na mesma coluna ordena descendente.
O porém é que tudo é considerado texto, portanto 20 vai vir antes de 3.
Uma solução que eu uso é criar mais colunas (que ficam ocultas) com os valores preenchidos com zero na frente até ficarem com 20 digitos cada e as datas preenchidas no formato yyyymmdd também em colunas ocultas. Daí eu uso uns ifs no evento columclick para identificar colunas com valores ou datas e ordenar pela correspondente (oculta).
 
     
Página(s): 1/1    


Seu Nome:

Seu eMail:

ALTERAR PARA MODO HTML
Mensagem:

[:)] = 
[:P] = 
[:(] = 
[;)] = 

HTML DESLIGADO

     
 VOLTAR

  



CyberWEB Network Ltda.    © Copyright 2000-2025   -   Todos os direitos reservados.
Powered by HostingZone - A melhor hospedagem para seu site
Topo da página