|
|
Postada em 13/04/2005 17:19 hs
pessoal preciso de um help de vc's. na minha tela tem uma lista de todos os códigos de produto e ao lado há uma lista de quantidade. Logo abaixo da lista de quantidade tem um campo total. Então o que estou fazendo? O meu listbox de códigos de produtos é com checkbox. então digamos que no listbox de cod de pordutos eu teha: 1, 2,3 e no meu listbox de quantidade eu tenha 2, 4, 6. então no campo total debaixo do listbox de quantidade tem 12, certo? então o que acontece? quando eu seleciono o cod de produto 3 a sua quantidade é 6, então quando eu clico em alterar o total é recalculado e vai mudar para o valor 6. Até aí blz. Só que se eu seleciono cod de produto 1 e 2, suas quantidade é 2 e 4 e clico em alterar o valor de total teria que ser 6, certo? porém está dobrando o valor ou o valor não está correto. Estou usando essa lógica para fazer isso: Dim i As Integer Dim j As Integer Dim qtdtotal As Integer Dim item As Integer item = lstcodigopedido.ListIndex lstqtdepedido.RemoveItem (item) For i = 0 To lstcodigopedido.ListCount - 1 If lstcodigopedido.Selected(i) Then ' os q tiverem selecionados sql = "UPDATE itens_pedido2 SET desconto = '" & lstdesc.List(i) & "' , qtde = " & lstqtdepedido.List(i) & ", valor = '" & lstpreco.List(i) & "', valor_bruto_i = " & CInt(lstvlrbruto.List(i)) & ", valor_desconto_total_i = " & CInt(lstvlrdesctotal.List(i)) & ", valor_liquido_i = " & CInt(lstvlrliq.List(i)) & ", condicao = '" & lstcondicao.List(i) & "', situacao= " & lstcodigopedido.List(i) & " where codigo_produto = " & lstcodigopedido.List(i) & " and codigo_pedido = " & txtcodigo.Text & "" 'MsgBox sql 'Open App.Path & "SQL.txt" For Output As #1 'Print #1, sql 'Close #1 db.Execute sql For j = 0 To (lstqtdepedido.ListCount - 1) lstqtdepedido.ListIndex = j qtdtotal = qtdtotal + CInt(lstqtdepedido.Text) Next txtqtdetotal.Text = qtdtotal End If Next i MsgBox "Itens alterados com sucesso.", vbInformation, "Aviso:" Exit Sub o que pode ser? como eu faço para o total ficar correto se caso eu selecionar mais de um cod de produto? valeu
Rafael Carlos Martin Desenvolvedor de WebSites e Sitemas E-mail:rafa-martin@ibest.com.br
|
|
|
|
|
|
|
|
Postada em 13/04/2005 19:54 hs
No evento Click do ListBox, vc deve zerar a variável do total.
|
|
|
|
|
|
Postada em 14/04/2005 12:43 hs
mais, cara para que eu tenho que zerar a váriável qtdetotal? e outra coisa, el só vai calcular o total depois que eu clicar em alterar. veja o código novamente. Vou tentar resumir. Se no listbox de cod de produto eu selecione 2 e 3 então suas quantidades que é 3 e 4 terão que sumir do listbox de quantidade e fazer a soma do resto dos números que quantidades que restou no listbox de quantidade e jogar o total no campo qtdetotal. Se eu selecionar um código de produto por vez o calculo sai extamente correto. agora se eue selecionar mais de um o calculo dá errado. é isso que estou tentando fazer com o código que fiz acima. me dá uma ajuda, por favor.
Rafael Carlos Martin Desenvolvedor de WebSites e Sitemas E-mail:rafa-martin@ibest.com.br
|
|
|
|
|
|
Postada em 14/04/2005 13:28 hs
galera consegui fazer uma coisa mais ou menos assim: For j = 0 To (lstqtdepedido.ListCount - 1) lstqtdepedido.ListIndex = j Text1.Text = txtqtdetotal.Text - CInt(lstqtdepedido.List(j)) 'qtdtotal = txtqtdetotal.Text - CInt(lstqtdepedido.Text) Next j supondo que o valot do listbox de quantidade seja 3 e 1 e o total seja 32 então o resultado final teria que ser 28, certo? 32 - 4 = 28./ quando eu faço o breakpoint para ver o que o programa está fazendo. aí ele mostra que fez 32-3 = 29, onde o incice 0 é 3 e o indice 1 é 1. ele percorre toda a lista porém, ele só fica no indice 0´que é o número 3, ou seja , sempre fica fazendo 32-3 = 29 e não sai disso. como eu faço para que o resultado seja correto e ele percorra os valores certis da lista? valeu
Rafael Carlos Martin Desenvolvedor de WebSites e Sitemas E-mail:rafa-martin@ibest.com.br
|
|
|
|
|