USUÁRIO:      SENHA:        SALVAR LOGIN ?    Adicione o VBWEB na sua lista de favoritos   Fale conosco 

 

  Fórum

  Visual Basic
Voltar
Autor Assunto:  FlexGrid
Bruno
SÃO PAULO
SP - BRASIL
ENUNCIADA !
Postada em 14/10/2004 15:07 hs            
Olá!
Estou usando uma flexgrid e quero usar para somar valores. Tipo tenho 2 valores, 1 na primeira linha e outro na segunda linha, e somar esses valores. Até ai eu consigo. Mas eu queria saber se tiver mais de 2 linhas como eu posso fazer uma somatória???
 
Quem informa esses valores é o usuário, então se por exemplo ele colocar n valores como posso fazer uma soma total indo de linha a linha???
 
Valeu,
Bruno Emoções
   
Leolima
PORTO ALEGRE
RS - BRASIL
Postada em 14/10/2004 15:16 hs            
 
Não sei se entendi exatamente a tua pergunta, mas neste exemplo eu somo a quantidade de horas no numa variavel, como se foce um contador!!
 
Public Sub dados_grid()
    Dim ab As Integer
    msflex_data.Clear
    msflex_data.Rows = 2
   
    alterna = 1 ' serve para o loop lá em baixo para colorir a grid
    contador = 0 ' serve para discriminar a linha para colorir
   
    cont = 0
    For ab = 0 To 3
        msflex_data.Col = cont
        msflex_data.Row = 0
        msflex_data.CellForeColor = &HFFFFFF
        msflex_data.CellFontBold = True
        msflex_data.CellFontName = "Comic Sans MS"
        cont = cont + 1
    Next
   
    msflex_data.ColWidth(0) = 950                           '************************'
    msflex_data.ColWidth(1) = 1050                          '                        '
    msflex_data.ColWidth(2) = 970                           '    Configura a flex    '
    msflex_data.ColWidth(3) = 4680                          '
    msflex_data.ColAlignment(0) = flexAlignLeftCenter       '
    msflex_data.ColAlignment(1) = flexAlignLeftCenter       '
    msflex_data.ColAlignment(2) = flexAlignLeftCenter       '
    msflex_data.TextMatrix(0, 0) = "Atualizado"             '                        '
    msflex_data.TextMatrix(0, 1) = "Dia"                    '                        '
    msflex_data.TextMatrix(0, 2) = "Quantidade"             '************************'
    msflex_data.TextMatrix(0, 3) = "Obs.:"

    rs_hora.Open "SELECT * FROM tb_horas WHERE matric = " & lbl_matric & " ORDER BY data_da_hora", conn, adOpenKeyset, adLockOptimistic
    If Not rs_hora.BOF Then
        rs_hora.MoveMin
    Else
        rs_hora.Close
        Exit Sub
    End If
    msflex_data.Rows = 2
    cont = msflex_data.Rows - 1
    soma = "00:00:00"
    msflex_data.Rows = msflex_data.Rows - 1
    Do While Not rs_hora.EOF
        msflex_data.Rows = msflex_data.Rows + 1
        If IsNull(rs_hora("data_inserida")) = False Then
             msflex_data.TextMatrix(cont, 0) = rs_hora("data_inserida")
        End If
        If IsNull(rs_hora("data_da_hora")) = False Then
            msflex_data.TextMatrix(cont, 1) = rs_hora("data_da_hora")
        End If
        If IsNull(rs_hora("quantidade")) = False Then
            msflex_data.TextMatrix(cont, 2) = rs_hora("quantidade")
        End If
            msflex_data.TextMatrix(cont, 3) = rs_hora("obs")
           
        soma = soma + rs_hora("quantidade")
       
        cont = cont + 1
        rs_hora.MoveNext
        

        
                
    Loop
        linha = cont
   
    rs_confere.Open "SELECT * FROM tb_professor WHERE matric = " & lbl_matric, conn, adOpenKeyset, adLockOptimistic
    If Not rs_con.BOF Then
        If (rs_con("total_horas") <> soma) Or (IsNull(rs_con("total_horas")) = True) Then
            rs_con("total_horas") = soma
            rs_con.Update
        End If
        msflex_data.AddItem "Total", cont
        msflex_data.TextMatrix(cont, 2) = rs_con("total_horas")
            msflex_data.Row = cont
            cont = 0
            For ab = 0 To 3
                msflex_data.Col = cont
                msflex_data.CellBackColor = &HC00000
                msflex_data.CellForeColor = &HFFFFFF
                cont = cont + 1
            Next
    End If
    rs_confere.Close
    rs_hora.Close
End Sub

"A mente que se abre para novas idéias jamais volta ao seu tamanho original".
(Albert Einstein)

----------------------------------------------PII-450-256MB-GForceII-64-TV/out-Soyo----- ----Agora com Framework 1.1 + Visual Studio 2003 + WinXP.  Acredite se quiser!---- 
 Leonardo Cassuriaga                                                            Fone:(51) 96394735
 Tecnico Informática                              __o                              Programador VB6.0
 Programador Web                              _>/,                                          DBA Access
-------------------------------------------(+)/(+)__________P_o_r_t_o__A_l_e_g_r_e_RS__
Charles   Darwin :   As   espécies   que   sobrevivem   não   são   as   mais   fortes,    mas as que melhor conseguem se adaptar às mudanças!
-----------------------------------------------------------------------------------------------

     
Fabio Rocha
SÃO PAULO
SP - BRASIL
Postada em 14/10/2004 15:22 hs            
Faça um loop que vai até a ultima linha, tipo assim:
Dim varlinha, vartotal as Integer
varlinha=0
Do while varlinha<MSFlexGrid1.MaxRows
   MSFlexGrid1.Col=1
   MSFlexGrid1.Row=1
   vartotal=vartotal+MSFlexGrid1.Text
   varlinha=varlinha+1
Loop
     
Fabio Rocha
SÃO PAULO
SP - BRASIL
Postada em 14/10/2004 15:23 hs            
Ops .. foi mal nessa linha substitua o 1 pelo varlinha:
MSFlexGrid1.Row=1
     
Página(s): 1/1    


Seu Nome:

Seu eMail:

ALTERAR PARA MODO HTML
Mensagem:

[:)] = 
[:P] = 
[:(] = 
[;)] = 

HTML DESLIGADO

     
 VOLTAR

  



CyberWEB Network Ltda.    © Copyright 2000-2024   -   Todos os direitos reservados.
Powered by HostingZone - A melhor hospedagem para seu site
Topo da página