COMPONENTE GRID PARA VB6
Boa noite, Galera!
Amigos gostaria de saber se alguém conhece algum componente tipo MSFlexgrid para VB6 que ordene à s colunas quando clickar no titulo da coluna(1ªlinha), lembro que já vi um grid em VB6 que quando ao clickar na 1ªLinha da coluna ele ia mudando a ordem dos dados daquela coluna... tipo deixava em ordem Crescente, Decrescente e normal.
Abraços à todos!
Amigos gostaria de saber se alguém conhece algum componente tipo MSFlexgrid para VB6 que ordene à s colunas quando clickar no titulo da coluna(1ªlinha), lembro que já vi um grid em VB6 que quando ao clickar na 1ªLinha da coluna ele ia mudando a ordem dos dados daquela coluna... tipo deixava em ordem Crescente, Decrescente e normal.
Abraços à todos!
Você pode usar o ADODC e tratar o evento click da coluna do DataGrid assim:
Private Sub grdDataGrid_HeadClick(ByVal ColIndex As Integer)
Dim strColName As String
Static bSortAsc As Boolean
Static strPrevCol As String
strColName = grdDataGrid.Columns(ColIndex).DataField
If strColName = strPrevCol Then
If bSortAsc Then
adoPrimaryRS.Sort = strColName & [Ô] DESC[Ô]
bSortAsc = False
Else
adoPrimaryRS.Sort = strColName
bSortAsc = True
End If
Else
adoPrimaryRS.Sort = strColName
bSortAsc = True
End If
strPrevCol = strColName
End Sub
Colega FIAO,
Outra opção, além da apresentada pelo colega KERPLUNK, é usar Sgrid 2.0 (vbAccelerator).
http://www.vbaccelerator.com/home/VB/Code/Controls/S_Grid_2/S_Grid_2/article.asp
No link acima você encontra:
Instalador
OCX (caso queira instalar manualmente e distribuir com teu software)
Código fonte se desejar modificar algo
Na época de VB6 usei muito. Mas é completo, nada precisei modificar para fazer o que desejava que fosse feito.
Tudo de bom.
Outra opção, além da apresentada pelo colega KERPLUNK, é usar Sgrid 2.0 (vbAccelerator).
http://www.vbaccelerator.com/home/VB/Code/Controls/S_Grid_2/S_Grid_2/article.asp
No link acima você encontra:
Na época de VB6 usei muito. Mas é completo, nada precisei modificar para fazer o que desejava que fosse feito.
Tudo de bom.
para o flex grid mesmo
Private Sub Form_Load()
Dim Str As String
Dim i As Integer
Dim j As Integer
i = 0: j = 0
MSFlexGrid1.Rows = 1
Randomize
For i = 1 To Int(Rnd() * 10) + 1
Str = [Ô][Ô]
For j = 1 To 10
Str = Str & Chr(65 + Int(Rnd() * 26))
Next
MSFlexGrid1.AddItem Int(Rnd() * 100) & vbTab & Str
Next
End Sub
Private Sub MSFlexGrid1_Click()
Call FlexSort([Ô]A[Ô])
End Sub
Private Sub MSFlexGrid1_DblClick()
Call FlexSort([Ô]D[Ô])
End Sub
Sub FlexSort(Mode As String)
If MSFlexGrid1.Row = 1 Then
If MSFlexGrid1.MouseCol = 0 Then
MSFlexGrid1.Col = 0
If Mode = [Ô]A[Ô] Then
MSFlexGrid1.Sort = flexSortNumericAscending
Else
MSFlexGrid1.Sort = flexSortNumericDescending
End If
ElseIf MSFlexGrid1.MouseCol = 1 Then
MSFlexGrid1.Col = 1
If Mode = [Ô]A[Ô] Then
MSFlexGrid1.Sort = flexSortStringAscending
Else
MSFlexGrid1.Sort = flexSortStringDescending
End If
End If
End If
End Sub
Faça seu login para responder