SORT NO MSFLEXGRID
Tenho um msflexgrid no vb6 onde tem os cabeçalhos:
nome , cidade, uf, data nascimento, data cadastro , data exclusao
como faço para ao clicar no cabeçalho fazer o sort ascendente e descente das colunas datas ??? nome,cidade,uf funcionam...as datas que estão
no formato dd/mm/yyyy classificam só pelas 2 primeiras (dd) ...como faço para classificar também pela data inteira ??
obrigado
nome , cidade, uf, data nascimento, data cadastro , data exclusao
como faço para ao clicar no cabeçalho fazer o sort ascendente e descente das colunas datas ??? nome,cidade,uf funcionam...as datas que estão
no formato dd/mm/yyyy classificam só pelas 2 primeiras (dd) ...como faço para classificar também pela data inteira ??
obrigado
Quase certeza que você está passando os dados como string para o grid. A ordenação jamais deve ser feita no componente, mas sim nos dados. Então ao clicar, você deveria refazer sua query, usando a ordenação correspondente. A regra básica é: o grid só exibe dados.
Uso dessa forma, funciona perfeitamente para datas, números e texto.
Dim Ordem As Boolean
Private Sub grdPedidos_Click()
Dim Linha As Integer
Dim Colun As Integer
Dim SortDate As Double
Dim dt As Integer
Dim intLinha As Integer
Dim intColuna As Integer
Dim x As Integer
Dim Y As Integer
Dim Marcado As String
Dim cor As String
With grdPedidos
intLinha = .MouseRow
intColuna = .MouseCol
If intLinha = 0 And intColuna <> 1 Then 'Título
If .Col = 3 Then '<-- Aqui as colunas que são data
.Cols = .Cols + 1
Colun = .Cols - 1
.ColWidth(Colun) = 0
dt = .Col
For Linha = 1 To .Rows - 1
If .TextMatrix(Linha, dt) = "" Then
SortDate = DateValue("1/1/1990")
Else
SortDate = DateValue(.TextMatrix(Linha, dt))
End If
.TextMatrix(Linha, Colun) = SortDate
Next Linha
.Col = Colun
If Ordem Then
.Sort = flexSortNumericAscending
Else
.Sort = flexSortStringDescending
End If
Else
If .Col <> 3 Then '<-- Aqui as colunas que são texto ou número
If Ordem Then
.Sort = flexSortGenericAscending
Else
.Sort = flexSortGenericDescending
End If
End If
End If
Ordem = Not Ordem
End If
End With
End Sub
Muito obrigado 3sluis...funcionou..
Tópico encerrado , respostas não são mais permitidas