Ir para conteúdo
Fórum Script Brasil
  • 0

Somar colunas do Grid filho


namon

Pergunta

VB - Como somar colunas do GRID (filho) e alimentar campo do PAI.

Já tentei de várias formas, inclusive com a função MeuGrid.GetColumnSum(Coluna), mas apenas o primeiro registro da tabela é transportado.

Se alguém puder me ajudar, agradeço.

namon

namon@uai.com.br

Editado por Jonathan Queiroz
Remover caixa alta do título conforme regra 3.7 (Jonathan)
Link para o comentário
Compartilhar em outros sites

11 respostass a esta questão

Posts Recomendados

  • 0
mas q grid é esse q você usa?? datagrid?? msflexgrid??

não conheco esse metodo GetColumnSum() e tb não o encontrei em nenhum desses dois grids.

Prezado Kuroi,

Encontrei num fragmento de uma função em VBA (apenas anotei, há algum tempo).

Enéa

Link para o comentário
Compartilhar em outros sites

  • 0
hum, tem como postar o codigo??

seria vba dentro de qual programa??

Re: Help in Msflexgrid

--------------------------------------------------------------------------------

VB Code:

Option Explicit

Private Sub Command1_Click()
    '1st parameter is the first column and the 2nd one is the last column
    'the result is calculated between those two columns, including both of theme
    Text1.Text = getColumnSum(MSFlexGrid1, 0, 1)
    Text2.Text = getColumnSum(MSFlexGrid1, 2, 8)
End Sub

Private Function getColumnSum(mfg As MSFlexGrid, clmn1 As Integer, clmn2 As Integer) As Double
    Dim i As Integer, j As Integer
        For i = clmn1 To clmn2
            With mfg
                .Col = i
                    For j = 0 To .Rows - 1
                        .Row = j
                        getColumnSum = getColumnSum + Val(.Text)
                    Next j
            End With
        Next
End Function

-> É no MSFLEXGrid

Editado por kuroi
Adicionar tag CODE
Link para o comentário
Compartilhar em outros sites

  • 0

esse codigo é pra funcionar. so q ele não soma uma coluna so, ele soma um range de colunas q você passa por parametros.

e se você estiver usando numeros com virgula (formatados com virgula e não com ponto), é melhor trocar o Val() por CDbl().

você tentou esse codigo e ele so ta pegando a primera linha??

Link para o comentário
Compartilhar em outros sites

  • 0

vou adaptar o codigo pra somar uma coluna so:

Private Function getColumnSum(mfg As MSFlexGrid, clmn As Integer) As Double
    Dim j As Integer
        With mfg
            .Col = clmn
                For j = 0 To .Rows - 1
                    .Row = j
                    getColumnSum = getColumnSum + CDbl(.Text)
                Next j
        End With
End Function[/code] ai pra somar a coluna 1 você faz assim (sendo q a primera coluna é a 0):
[code]soma = getColumnSum(nome_do_seu_flexgrid, 1)

não testei mas acho q não tem erro.

Link para o comentário
Compartilhar em outros sites

  • 0

Boa noite Kuroi,

Fiz o teste mas não funcionou!

Esse formulário com o Grid que utilizo é o padrão do VB6 (DataGrid) e não o MSFlexGrid. Trata-se de uma formulário que é alimentado por Importação de arquivo TXT e não permite alterações, somente visualização, razão pelo qual utilizo o DataGrid.

Essa rotina que você me passou, como fica para o DataGrid?

Agradeço!

Enéa

Link para o comentário
Compartilhar em outros sites

  • 0

os dados tão vindo do banco de dados?? se você tiver usando um recordset, você pode pegar os dados direto dele.

agora, quanto aquela funcao, eu não costumo trabalhar dessa forma em datagrid (sempre costumo usar recordsets e toda informacao q preciso, pego direto deles), então não sei ate onde esse codigo, funciona, mas acho q com datagrid, aquela funcao seria mais o menos assim:

Private Function getColumnSum(mfg As DataGrid, clmn As Integer) As Double
    Dim j As Integer
        With mfg
            .Col = clmn
                For j = 0 To .ApproxCount - 1
                    .Row = j
                    getColumnSum = getColumnSum + CDbl(.Text)
                Next j
        End With
End Function[/code]

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152k
    • Posts
      651,7k
×
×
  • Criar Novo...