CLASSIFICAR DADOS NO GRID

GUIGOR 05/02/2013 16:01:42
#418831
boa tarde eu tenho um grid no listview com uma coluca que ja vem preenchido a data, entao eu estou precisando reordenar as parcelas de acordo com a data do vencimento, como pode ver no anexo os vencimento esta errados onde as parcela deveriam ficar:
1 = 13/02/2013
2 = 20/02/2013
3 = 27/02/2013
4 = 06/03/2013
5 = 13/03/2013
6 = 20/03/2013
7 = 27/03/2013
8 = 03/04/2013
9 = 10/04/2013

obrigado
MARCELO.TREZE 05/02/2013 16:24:05
#418833
uma coisa melhor

coloque este código no seu listview

Private Sub ListView1_ColumnClick(ByVal ColumnHeader As MSComctlLib.ColumnHeader)
With ListView1
If (ColumnHeader.Index - 1) = .SortKey Then
.SortOrder = (.SortOrder + 1) Mod 2
Else
.Sorted = False
.SortOrder = 0
.SortKey = ColumnHeader.Index - 1
.Sorted = True
End If
End With
End Sub


e pronto clique sobre a coluna que deseja ordenar

GUIGOR 05/02/2013 17:36:02
#418837
nao funcionou nao
pois eu preciso colocar isso em uma sub para que seja feita automaticamente
quando coloco na sub ele reclama
(ColumnHeader.Index - 1) = .SortKey


SINCLAIR 05/02/2013 18:20:44
#418839
Guigor...

O código apresentado pelo Marcelo-Treze é para ser usado em evento do grid, não dentro de uma sub. Se olhar o parâmetro passado no evento do grid, notará que um deles (o primeiro é ColumnHeader).

Apenas use .SortOrder, .SortKey e .Sorted = True na sua Sub, informando para sortorder e sortkey a coluna que quer ordenar.
KERPLUNK 05/02/2013 18:26:46
#418840
1 - Grid não são dados. São uma representação gráfica de dados
2 - Se precisa fazer alguma coisa com os dados, faça na fonte de dados e não no grid.
MARCELO.TREZE 05/02/2013 19:35:50
#418841
GUIGOR é tão simples veja que colquei no evento click do listview

então no form onde está seu list view coloque exatamente este código porém altere o que está em vermelho para o nome do seu listview

Private Sub [txt-color=#e80000]ListView1[/txt-color]_ColumnClick(ByVal ColumnHeader As MSComctlLib.ColumnHeader)
With[txt-color=#e80000] ListView1[/txt-color]
If (ColumnHeader.Index - 1) = .SortKey Then
.SortOrder = (.SortOrder + 1) Mod 2
Else
.Sorted = False
.SortOrder = 0
.SortKey = ColumnHeader.Index - 1
.Sorted = True
End If
End With
End Sub

pronto não tem segredo, é só alterar o que está em vermelho
GUIGOR 08/02/2013 17:55:46
#419043
o problema de pegar os dados da fonte é o seguinte:
eu pego esses dado de uma arquivo texto da seguinte forma:
Dim d As String, ContadorLinhaDUP As Integer, ContadorVNFe As Integer
ContadorLinhaDUP = 0
ContadorVNFe = 0

intFF = FreeFile
strCaminho = CaminhoDaPasta & [Ô]\NotaFiscalEletronica.txt[Ô]

DoEvents
[ô]*** CARREGA DADOS DO ARQUIVO TEXTO CRIADO****************************************************
Open strCaminho For Input As #intFF
Do While Not EOF(intFF)
Line Input #intFF, strAux

Dim X As String
X = strAux

Dim iData As Integer [ô]descobre o primeiro o inicial da data

iData = InStrRev(X, [Ô]/[Ô]) - 5
If iData <= 0 Then
ReordernarParcel
Close #intFF
Exit Sub
End If

Dim sData As String, sValor As String

sData = Mid(X, iData, 10)
sValor = Mid(X, iData + 10, 50)

[ô]INCLUIR DADOS NO GRID
Set itmx = GridVencimentos.ListItems.Add(, , [Ô][Ô])
itmx.SubItems(1) = sData
itmx.SubItems(2) = Format(sValor, [Ô]0.00[Ô])


End If


Loop
Close #intFF



e os dados quando vem do site vem assim :

DUPLICATAS
Número Vencimento Valor
220/02/20131.125,71
910/04/20131.125,71
406/03/20131.125,71
513/03/20131.125,71
327/02/20131.125,71
803/04/20131.125,71
113/02/20131.125,74
727/03/20131.125,71
620/03/20131.125,71

e como eu poderia manipular isso na fonte, nao da
MARCELO.TREZE 08/02/2013 20:45:37
#419048
novamente o exemplo que postei organiza os dados com um click no cabeçalho do mesmo, porem vc terá que formatar a data antes de enviar pra o grid.
Tópico encerrado , respostas não são mais permitidas