PROBLEMA COM SOMA DE VALORES EM DATAGRID
Estou fazendo um projeto em VB 2010 e estou tendo bastante problema para somar valores de uma coluna no datagrid.
é um formulário de venda onde ao clicar no botão é adicionado o produto,valor unitário,quantidade e sub total.
Queria somar os valores da coluna sub total e aparecer numa label.
Utilizei os seguintes códigos:
Código 1
[txt-color=#0000f0]total = Val(ven_qtd.Text) * Val(PRECO_UN.Text)
DataGridView1.Rows.Add(ven_titulo.Text, [Ô]R$ [Ô] & PRECO_UN.Text & [Ô] X[Ô], ven_qtd.Text, [Ô]R$ [Ô] & Format(total, [Ô]0.00[Ô]))
For I As Integer = 0 To DataGridView1.Rows.Count - 1
valor = valor + Val(DataGridView1.Rows(I).Cells(4).Value)
Next
Me.LBPrecoTotal.Text = Format(valor, [Ô]0.00[Ô])
End If[/txt-color]
CÓDIGO 2
[txt-color=#0000f0]
DataGridView1.Rows.Add(, ven_titulo.Text, [Ô]R$ [Ô] & PRECO_UN.Text & [Ô] X[Ô], ven_qtd.Text, [Ô]R$ [Ô] & Format(tot, [Ô]0.00[Ô]))
For Each ROW As DataGridViewRow In Me.DataGridView1.Rows
If Not ROW.IsNewRow Then
valor += ROW.Cells(4).Value
End If
Next
LBPrecototal.text=format(valor,[Ô]0.00[Ô])[/txt-color]
Os dois códigos fazem a soma e aparece normalmente na label,porém o valor da soma está errado,o é somado o valor dobrado,depois triplicado acho que vai somando os valores já somados de novo! Gostaria que me ajudassem a resolver esse problema! Obrigada
é um formulário de venda onde ao clicar no botão é adicionado o produto,valor unitário,quantidade e sub total.
Queria somar os valores da coluna sub total e aparecer numa label.
Utilizei os seguintes códigos:
Código 1
[txt-color=#0000f0]total = Val(ven_qtd.Text) * Val(PRECO_UN.Text)
DataGridView1.Rows.Add(ven_titulo.Text, [Ô]R$ [Ô] & PRECO_UN.Text & [Ô] X[Ô], ven_qtd.Text, [Ô]R$ [Ô] & Format(total, [Ô]0.00[Ô]))
For I As Integer = 0 To DataGridView1.Rows.Count - 1
valor = valor + Val(DataGridView1.Rows(I).Cells(4).Value)
Next
Me.LBPrecoTotal.Text = Format(valor, [Ô]0.00[Ô])
End If[/txt-color]
CÓDIGO 2
[txt-color=#0000f0]
DataGridView1.Rows.Add(, ven_titulo.Text, [Ô]R$ [Ô] & PRECO_UN.Text & [Ô] X[Ô], ven_qtd.Text, [Ô]R$ [Ô] & Format(tot, [Ô]0.00[Ô]))
For Each ROW As DataGridViewRow In Me.DataGridView1.Rows
If Not ROW.IsNewRow Then
valor += ROW.Cells(4).Value
End If
Next
LBPrecototal.text=format(valor,[Ô]0.00[Ô])[/txt-color]
Os dois códigos fazem a soma e aparece normalmente na label,porém o valor da soma está errado,o é somado o valor dobrado,depois triplicado acho que vai somando os valores já somados de novo! Gostaria que me ajudassem a resolver esse problema! Obrigada
E onde está declarada esta variável [Ô]valor[Ô]? O que acontece é que depois de passar o valor para a label, a váriável mantem o valor que é somado quando você executa o código novamente.
Declara dentro do código:
Ou zera a variável antes de fazer o cálculo
Declara dentro do código:
Dim valor As Double = 0
total = Val(ven_qtd.Text) * Val(PRECO_UN.Text)
DataGridView1.Rows.Add(ven_titulo.Text, [Ô]R$ [Ô] & PRECO_UN.Text & [Ô] X[Ô], ven_qtd.Text, [Ô]R$ [Ô] & Format(total, [Ô]0.00[Ô]))
For I As Integer = 0 To DataGridView1.Rows.Count - 1
valor = valor + Val(DataGridView1.Rows(I).Cells(4).Value)
Next
Me.LBPrecoTotal.Text = Format(valor, [Ô]0.00[Ô])
End If
Ou zera a variável antes de fazer o cálculo
DataGridView1.Rows.Add(, ven_titulo.Text, [Ô]R$ [Ô] & PRECO_UN.Text & [Ô] X[Ô], ven_qtd.Text, [Ô]R$ [Ô] & Format(tot, [Ô]0.00[Ô]))
valor=0
For Each ROW As DataGridViewRow In Me.DataGridView1.Rows
If Not ROW.IsNewRow Then
valor += ROW.Cells(4).Value
End If
Next
LBPrecototal.text=format(valor,[Ô]0.00[Ô])
Muito obrigada!
Funcionou direitinho
Funcionou direitinho
Tópico encerrado , respostas não são mais permitidas