DataGrids VB6

ricmrq

Power Member
Boas malta!

Alguem conhece alguma datagrid para o VB6 sem ser aquelas standars que o VB6 ja traz?

e tambem queria saber se as que conhecem dao para por totais ou subtotais e agrupar campos!!

cumps

merry xmas :P
 
oi.
a mshflexgrid do vb6 permite-te obter dados hierarquicos (daí o h em msHflexgrid).
Em relação ao total é muito simples de o calcular em runtime e mostra-lo na mshflexgrid.

Tens alguma necessidade/requisito em especial para o objecto?
 
nao sei se ja utilizei esse componente mas procurava algo com um aspecto mais recente, isto porque alguns dos componentes do VB6 ja estao um pouco fracos a nivel de design

EDIT:
exacto! ja utilizei essa...
queria uma com um aspecto melhorado
 
Última edição:
eu consegui por uma mshflexgrid com o aspecto da datagrid do itunes (á excepção do cabeçalho que fica na mesma com aquele aspecto de botao do win95). se quiseres depois posto a fuunção.
se nao quiseres nenhuma "extensao" na funcionalidade da datagrid, a mshflexgrid serve mto bem (pelo menos falo por mim)
 
Código:
Public Sub FormataGrelhas(Grelha As MSHFlexGrid, Formulario As Form)
Dim i%, j%              'variaveis da formatação de cores das linhas

Dim r As Long           '\
Dim c As Long           ' \ variaveis da formatação da largura das celulas
Dim cell_wid As Single  ' /
Dim col_wid As Single   '/

On Local Error Resume Next

With Grelha    'COMEÇA FORMATAÇÃO
    .Refresh
    .Redraw = False
    DoEvents                    'começa a colorir o fundo da grid
        If .Rows < 2 Then Exit Sub 'top row is a header
            For j = 1 To .Rows - 1
                For i = 0 To .Cols - 1
                    .Row = j
                    .Col = i
                If j Mod 2 = 0 Then
                    .CellBackColor = &HFAF5F1   'azul claro
                Else
                    .CellBackColor = vbWhite
                End If
                Next i
            Next j
        .Row = 1
        .Col = 1

End With

'formata espaçamento das celulas
For c = 0 To Grelha.Cols - 1
    col_wid = 0
    For r = 0 To Grelha.Rows - 1
        cell_wid = Formulario.TextWidth(Grelha.TextMatrix(r, c))
        If col_wid < cell_wid Then col_wid = cell_wid
    Next r
    Grelha.ColWidth(c) = col_wid + 120
Next c
Grelha.Redraw = True
End Sub

colocas isto num modulo.
Para usar esta sub, depois de preencheres a tua mshflexgrid usas esta sintaxe:
Código:
'...
FormataGrelhas Form1.MSHFlexGrid1, Form1
'...

Enjoy it :003:
 
erro

olha, da-me um erro na 1a linha da Sub:

Public Sub FormataGrelhas(Grelha As MSHFlexGrid, Formulario As Form)
erro: "User-defined type not defined"


e eu ja tenho a flexgrid adicionada nas references!
 
afinal nao tenho nenhuma referencia adicionada sobre as flexgrids, mas tambem nao esta na lista nem essa nem a Microsoft FlexGrid

apesar disto ja a tenho adicionada na toolbox e é uma msFlexGrid
 
desculpai senhores, nao e referencia mas sim componente.
como adicionar a mshflexgrid:
bto dto rato sobre a toolbox->components->depois encontra um lista com varios componentes e escolhes a da msHflexgrid.
 
para agrupar, tens que fazer um query SQL modificado (tens que usar a função SHAPE, procura no msdn que encontras). Procura tambem no indice do msdn por "Hierarchical FlexGrid control". encontras la mais informação detalhada.
Em relação ás ordenações tenho outro naco de codigo pra isso mas nao o tenho comigo :(
 
totais

ja adicionei dados! falta agora saber como colocar totais.

alguem sabe como colocar totais? ja andei a procura e encontrei um exemplo mas acho um pouco complicado de mais...

cumps
 
lês todos os valores de determinada coluna e vais somando.
Depois adicionas uma linha com o total.

Código:
'...pode ter erros...
me.MSHFlexGrid1.Col = 2

for i=0 to me.mshflexgrid1.rows-1
    Me.MSHFlexGrid1.Row = Me.MSHFlexGrid1.Row + 1
    total = total + CDbl(Me.MSHFlexGrid1.Text)
next i
 
Back
Topo