CLASSIFICAR DADOS NO GRID
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
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
uma coisa melhor
coloque este código no seu listview
e pronto clique sobre a coluna que deseja ordenar
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
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
pois eu preciso colocar isso em uma sub para que seja feita automaticamente
quando coloco na sub ele reclama
(ColumnHeader.Index - 1) = .SortKey
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.
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.
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.
2 - Se precisa fazer alguma coisa com os dados, faça na fonte de dados e não no grid.
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
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
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
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
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