USUÁRIO:      SENHA:        SALVAR LOGIN ?    Adicione o VBWEB na sua lista de favoritos   Fale conosco 

 

  Fórum

  Visual Basic
Voltar
Autor Assunto:  somar quantidade de valores que estão no listbox
Rafael The Best
SÃO PAULO
SP - BRASIL
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
     
kerplunk
Pontos: 2843 Pontos: 2843 Pontos: 2843
SÃO PAULO
SP - BRASIL
Postada em 13/04/2005 19:54 hs         
No evento Click do ListBox, vc deve zerar a variável do total.
     
Rafael The Best
SÃO PAULO
SP - BRASIL
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
     
Rafael The Best
SÃO PAULO
SP - BRASIL
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
     
Página(s): 1/1    


Seu Nome:

Seu eMail:

ALTERAR PARA MODO HTML
Mensagem:

[:)] = 
[:P] = 
[:(] = 
[;)] = 

HTML DESLIGADO

     
 VOLTAR

  



CyberWEB Network Ltda.    © Copyright 2000-2026   -   Todos os direitos reservados.
Powered by HostingZone - A melhor hospedagem para seu site
Topo da página