SOMAR COLUNA DO DATAGRID

ADHEL 05/04/2010 12:35:00
#338577
Boa tarde a todos
Tenho um combobox que está carregado com um datareader.Nele aparece o nome do produto.
Depois que escolho o produto, aparece em outros textbox, o código,o valor e a quantidade no estoque.
Após isso a pessoa escolhe a quantidade desejada do produto.
Feito essa escolha clico no botão INCLUIR e aparece no datagrid

Na coluna 1 o código do produto
Na coluna 2 o nome do produto
Na coluna 3 o Preço unitário do produto
Na coluna 4 a quantidade desejada que foi escolhida e
Na Última coluna o valor Total.

Até aí tudo bem

Eu gostaria que conforme fosse clicando no botão incluir a soma aparecesse num label.Do jeito que postei sempre aparece uma soma errada.Desde já agradeço aos amigos

vou postar o Código

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnIncluir.Click

sqlInsert = [Ô] Insert into RotacaoProdutos(Codigo,Quantidade)Values([ô][Ô] & txtCodigo.Text & [Ô][ô],[ô][Ô] & txtPedido.Text & [Ô][ô])[Ô]

Comando = New MySqlCommand(sqlInsert, Conexao)
Comando.ExecuteNonQuery()

Total = CDbl(txtPedido.Text) * CDbl(txtPrecoVenda.Text)


Codigo = txtCodigo.Text
Produto = cboVendas.Text
Preco = txtPrecoVenda.Text
Quantidade1 = txtPedido.Text


Dim linha As New DataGridViewRow
linha.CreateCells(dgvVendas)

With dgvVendas
linha.Cells(0).Value = Codigo
linha.Cells(1).Value = Produto
linha.Cells(2).Value = Preco
linha.Cells(3).Value = Quantidade1
linha.Cells(4).Value = Format(Total, [Ô]Currency[Ô])
.Rows.Add(linha)


End With


For i = 1 To dgvVendas.Columns.Count
Soma = Soma + (linha.Cells(4).Value)

Next
lblTotal.Text = Soma
End Sub
ACG1574 05/04/2010 14:57:20
#338590
Adhel vc nao precisa fazer loop no datagrid, vc ja ta multiplicando o valor unitario com a quantidade logo acima, é só somar a variavel total e jogar no label, assim

lbltotal.text= cdbl(lbltotal.text) + total
ADHEL 05/04/2010 15:17:48
#338591
Alexandre

Obrigado pela atenção
Se entendi direito era p/ apagar o loop e inserir lbltotal.text = cdbl(lbltotal.text)+ total
Se era isso não funcionou.
Aparece essa msg
Conversion from string [Ô][Ô] to type [ô]Double[ô] is not valid.
Valeu
KILLER 05/04/2010 15:21:45
#338593
Resposta escolhida
tenta isso:

For i = 1 To dgvVendas.Columns.Count -1
Soma = Soma + (linha.Cells(i).Value)

Next

linha.cells(i), não linha.cells(4)
KILLER 05/04/2010 15:33:38
#338595
ou então como o ACG1574 disse:

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnIncluir.Click

sqlInsert = [Ô] Insert into RotacaoProdutos(Codigo,Quantidade)Values([ô][Ô] & txtCodigo.Text & [Ô][ô],[ô][Ô] & txtPedido.Text & [Ô][ô])[Ô]

Comando = New MySqlCommand(sqlInsert, Conexao)
Comando.ExecuteNonQuery()

Total = CDbl(txtPedido.Text) * CDbl(txtPrecoVenda.Text)

Codigo = txtCodigo.Text
Produto = cboVendas.Text
Preco = txtPrecoVenda.Text
Quantidade1 = txtPedido.Text

Dim linha As New DataGridViewRow
linha.CreateCells(dgvVendas)

With dgvVendas
linha.Cells(0).Value = Codigo
linha.Cells(1).Value = Produto
linha.Cells(2).Value = Preco
linha.Cells(3).Value = Quantidade1
linha.Cells(4).Value = Format(Total, [Ô]Currency[Ô])
.Rows.Add(linha)
End With

lblTotal.Text = CStr(CDbl(lblTotal.text) + Soma)

End Sub
ADHEL 05/04/2010 15:41:43
#338597
KILLER
Nem de um forma nem da outra .
Do jeito que vc tinha postado ,já tinha feito e não deu.
Valeu pela ajuda
KILLER 05/04/2010 15:56:28
#338599
e assim:

...
With dgvVendas
linha.Cells(0).Value = Codigo
linha.Cells(1).Value = Produto
linha.Cells(2).Value = Preco
linha.Cells(3).Value = Quantidade1
linha.Cells(4).Value = Format(Total, [Ô]Currency[Ô])
.Rows.Add(linha)
End With

lblTotal.Text = CStr(CDbl(lblTotal.text) + CDbl(Total))

End Sub

ou assim:

...
With dgvVendas
linha.Cells(0).Value = Codigo
linha.Cells(1).Value = Produto
linha.Cells(2).Value = Preco
linha.Cells(3).Value = Quantidade1
linha.Cells(4).Value = Format(Total, [Ô]Currency[Ô])
.Rows.Add(linha)
End With

For i = 0 To dgProdutos.Rows.Count
soma = soma + CDbl(dgProdutos.Item(4, i).ToString)
Next

lblTotal.text = CStr(soma)

End Sub
ACG1574 05/04/2010 16:30:37
#338607
qual o tipo de variavel que vc criou a variavel TOTAL ?

tem que definir ela como doble

dim total as double
ADHEL 05/04/2010 16:35:09
#338609
Alexandre
Ela está como Double
KILLER 05/04/2010 17:15:19
#338614
Olha eu testei aki e funcionou direitinho, se não funcionar agora posta o erro OK

sqlInsert = [Ô] Insert into RotacaoProdutos(Codigo,Quantidade)Values([ô][Ô] & txtCodigo.Text & [Ô][ô],[ô][Ô] & txtPedido.Text & [Ô][ô])[Ô]

Comando = New MySqlCommand(sqlInsert, Conexao)
Comando.ExecuteNonQuery()

Total = CDbl(txtPrecoVenda.Text) * CDbl(txtPedido.Text)

Dim linha As New DataGridViewRow
linha.CreateCells(dgvVendas)

With dgvVendas
linha.Cells(0).Value = txtCodigo.Text
linha.Cells(1).Value = cboVendas.Text
linha.Cells(2).Value = txtPrecoVenda.Text
linha.Cells(3).Value = txtPedido.Text
linha.Cells(4).Value = Format(Total, [Ô]Currency[Ô])
.Rows.Add(linha)
End With

lblTotal.Text = CStr(CDbl(lblTotal.Text) + Total)
ADHEL 06/04/2010 09:59:42
#338662
KILLER
Aqui o erro continua

Conversion from string [Ô][Ô] to type [ô]Double[ô] is not valid.
Página 1 de 2 [12 registro(s)]
Tópico encerrado , respostas não são mais permitidas