AJUDA SOMA MSFLEXGRID

AZORSCA 25/04/2014 15:28:20
#437624
Boa tarde. Pessoal preciso de uma ajudinha de você.

Já tem um bom tempo que eu estou tentando quebrar a cabeça aqui com o seguinte probleminha.

Tenho um FlexGrid aqui no Vb6 que é carregado com dados de estoque. Por exemplo, Colunas: Código, Nome, Estoque1, Estoque2 e EstoqueGeral.

Queria saber se tem como somar a coluna Estoque1 e Estoque2 e colocar o resultado na Coluna EstoqueGeral?

Como poderia fazer? Alguém poderia citar algum exemplo?


Grato
MARCELO.TREZE 25/04/2014 15:36:12
#437625
With MSflexgrid1
.Textmatrix(linha,coluna_estoque_geral) = CCur(.TextMatrix(Linha, Coluna_estoque1)) + CCur(.TextMatrix(linha, coluna_estoque2))
End With


no exemplo acima estou levando em consideração a soma na mesma linha, ex

....estoque1 - estoque2 - estoquegeral
10 13 23
12 18 30


ERINALDO 25/04/2014 17:10:54
#437629
veja esse exemplo....

Set BancoDeDados = OpenDatabase(App.Path & [Ô]olão.MDB[Ô], False)
Set TBSaldo = BancoDeDados.OpenRecordset([Ô]select Matricula,Nome,Saldo from Saldo Where Data >= #[Ô] & Format(DataInicial, [Ô]mm/dd/yy[Ô]) & [Ô]# and data<= #[Ô] & Format(DataFinal, [Ô]mm/dd/yy[Ô]) & [Ô]# order by Saldo asc[Ô])


If Not TBSaldo.EOF Then
With MSFlexGrid1
.Rows = 1
.Cols = 4
.ColWidth(0) = 500
.ColWidth(1) = 800
.ColWidth(2) = 3000
.ColWidth(3) = 700
.TextMatrix(0, 0) = [Ô]Lugar[Ô]
.TextMatrix(0, 1) = [Ô]Matricula[Ô]
.TextMatrix(0, 2) = [Ô]Nome[Ô]
.TextMatrix(0, 3) = [Ô]Valor[Ô]
End With

i = 1


Do While Not TBSaldo.EOF
With MSFlexGrid1
.Rows = i + 1
.ColAlignment(0) = flexAlignCenterCenter [ô] alinha coluna
.TextMatrix(i, 0) = i - 0 [ô] autonumeração colocar zero para poder começar com 1
.ColAlignment(1) = flexAlignCenterCenter
.TextMatrix(i, 1) = TBSaldo(0)
.ColAlignment(2) = flexAlignLeftCenter
.TextMatrix(i, 2) = TBSaldo(1)
.ColAlignment(3) = flexAlignCenterCenter
.TextMatrix(i, 3) = TBSaldo(2)
End With

i = i + 1
SomaColuna = SomaColuna + TBSaldo(2)
TBSaldo.MoveNext
Loop

[ô] Textbox com o total da coluna
Text1.Text = SomaColuna



Ou :
Dim i As Integer
Dim aux As Double

For i = 1 To MSHFlexGrid1.Rows - 1
MSHFlexGrid1.Row = i
MSHFlexGrid1.Col = 1 [ô]coluna que vc quer somar
aux = aux + MSHFlexGrid1.Text
label1.Caption = aux [ô]local onde vc quer exibir a soma
Next

OUTRO EXEMPLO:

Private Sub Somatoria(vFlexGrid As MSFlexGrid, vRowPos As Long, vColPos As Long, _
vSumColFrom As Long, vSumColTo As Long, vSumRowFrom As Long, vSumRowTo As Long)

Dim x As Long, y As Long
Dim soma As Currency

With vFlexGrid

For x = vSumColFrom To vSumColTo
.Col = x
For y = vSumRowFrom To vSumRowTo
.Row = y

soma = soma + CCur(.Text)
Next
Next

.Row = vRowPos
.Col = vColPos

.Text = soma

End With

End Sub
Faça seu login para responder