MODIFICAR VALORES DE UMA TABELA BASEADO NO GRID
possuo uma tabela de PRODUTOS onde tem um campo chamado QUANT_ESTOQUE do tipo Numero: Duplo
Onde tem q quantidade em estoque de todos os meus produtos.
Num outro formulario de VENDA
quero vender varios produtos e quando eu der um clique no botão FINALIZAR VENDA ele subtraia a QUANT_ESTOQUE de meus produtos da tabela PRODUTOS com a quantidade q vendi.
exemplo:
no grid fica assim:
Arroz 10 R$ 1,20
Cebola 20 R$ 2,10
na tabela produtos tá assim:
Arroz 120
Cebora 200
ai ele vai no grid e pega os 10 arroz e subtrai pela quantidade no estoque
ESTOQUE_ATUAL = 10 - 120
ESTOQUE_ATUAL = 110
ai fiz assim no meu botão FINALIZAR VENDA
ele pega a quantidade que tá na coluna 6 do produto com o codigo igual a coluna 3 e subtrai pela QUANT_ESTOQUE
o problema é q ele tá subtraindo o doblo do valor q eh pra subtrair
exemplo:
120 - 10 = 100
esse campo é do tipo DUPLO porque removo do estoque as vezes valores quebrados (0,50... 0,75... 0,99... etc.)
por isso que tem esse:
[Ô] & Replace(Grid.TextMatrix(1, 6), [Ô],[Ô], [Ô].[Ô]) & [Ô]
Onde tem q quantidade em estoque de todos os meus produtos.
Num outro formulario de VENDA
quero vender varios produtos e quando eu der um clique no botão FINALIZAR VENDA ele subtraia a QUANT_ESTOQUE de meus produtos da tabela PRODUTOS com a quantidade q vendi.
exemplo:
no grid fica assim:
Arroz 10 R$ 1,20
Cebola 20 R$ 2,10
na tabela produtos tá assim:
Arroz 120
Cebora 200
ai ele vai no grid e pega os 10 arroz e subtrai pela quantidade no estoque
ESTOQUE_ATUAL = 10 - 120
ESTOQUE_ATUAL = 110
ai fiz assim no meu botão FINALIZAR VENDA
For i = 0 To Grid.Rows - 1
Grid.Row = i
execSQL [Ô]UPDATE PRODUTOS SET QUANT_ESTOQUE = QUANT_ESTOQUE - [Ô] & Replace(Grid.TextMatrix(1, 6), [Ô],[Ô], [Ô].[Ô]) & [Ô] WHERE CODIGO = [Ô] & Grid.TextMatrix(1, 3) & [Ô][Ô]
Next
ele pega a quantidade que tá na coluna 6 do produto com o codigo igual a coluna 3 e subtrai pela QUANT_ESTOQUE
o problema é q ele tá subtraindo o doblo do valor q eh pra subtrair
exemplo:
120 - 10 = 100
esse campo é do tipo DUPLO porque removo do estoque as vezes valores quebrados (0,50... 0,75... 0,99... etc.)
por isso que tem esse:
[Ô] & Replace(Grid.TextMatrix(1, 6), [Ô],[Ô], [Ô].[Ô]) & [Ô]
Seu erro está no TEXTMATRIX:
Neste momento você está retirando para CADA LINHA DO GRID o valor que está na LINHA 1 COLUNA 6. para o produto da LINHA 1 COLUNA 3
é desnecessário o posicionamento de GRID1.ROW quando utilizamos TEXTMATRIX.
O correto seria (lembrando que a linha 0 deve conter o cabeçalho):
For i = 0 To Grid.Rows - 1
Grid.Row = i
execSQL [Ô]UPDATE PRODUTOS SET QUANT_ESTOQUE = QUANT_ESTOQUE - [Ô] & Replace(Grid.TextMatrix(1, 6), [Ô],[Ô], [Ô].[Ô]) & [Ô] WHERE CODIGO = [Ô] & Grid.TextMatrix(1, 3) & [Ô][Ô]
Next
Neste momento você está retirando para CADA LINHA DO GRID o valor que está na LINHA 1 COLUNA 6. para o produto da LINHA 1 COLUNA 3
é desnecessário o posicionamento de GRID1.ROW quando utilizamos TEXTMATRIX.
O correto seria (lembrando que a linha 0 deve conter o cabeçalho):
For i = 1 To Grid.Rows - 1
execSQL [Ô]UPDATE PRODUTOS SET QUANT_ESTOQUE = QUANT_ESTOQUE - [Ô] & Replace(Grid.TextMatrix(i, 6), [Ô],[Ô], [Ô].[Ô]) & [Ô] WHERE CODIGO = [Ô] & Grid.TextMatrix(i, 3) & [Ô][Ô]
Next
Tópico encerrado , respostas não são mais permitidas