Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

rafa-martin

soma quantidade com valores do listbox

Recommended Posts

pessoal preciso de um help de você'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í beleza.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 IntegerDim j As IntegerDim qtdtotal As IntegerDim item As Integeritem = lstcodigopedido.ListIndexlstqtdepedido.RemoveItem (item)For i = 0 To lstcodigopedido.ListCount - 1If 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 = qtdtotalEnd IfNext iMsgBox "Itens alterados com sucesso.", vbInformation, "Aviso:"Exit Subo que pode ser? como eu faço para o total ficar correto se caso eu selecionar mais de um cod de produto?valeu

Compartilhar este post


Link para o post
Compartilhar em outros sites

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 jsupondo 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?value

Compartilhar este post


Link para o post
Compartilhar em outros sites

Brother,Muito estranho isso, pois você está percorrendo a List, agora fazer:CInt(lstqtdepedido.List(j)) e CInt(lstqtdepedido.Text) =>Os dois retornam o mesmo resultado.Agora se ele só fica no Indice 0, isso quer dizer que só possui um elemento em sua List.Qualquer coisa posta novamente.

Compartilhar este post


Link para o post
Compartilhar em outros sites

cara o que eu quero é o seguinte:como eu faço para fazer a soma usando sum de vários valores que estão em um listbox que é de quantidade e mostrar o resultado em um camp textbox? Os valores do listbox de quantidade estão no banco. Isso tem que ser de acordo com o codigo de produto que o usuário selecionou em um outro listbox que tem checkbox, sendo que, quando o usuário selecionar um, dois, três, códgios de produto as quantidades de cada um saiam do listbox de quantidade, porém não seja removido do banco, apenas sair do listbox de quantidade. e fazer a soma dos números que restaram no listbox de quantidade e mostrar o resultado em um textbox?por exemplo:cod produto qtde1 22 33 1 total: 6então se eu selecionar o cod de porduto 1. a sua quantidade que é 2 some da lista e não do banco e joga o resultado que é 4 em total.se eu selecionar os códigos 2 e 3 as suas quantidades que é 3 e 1 somem da lista mais não do banco o resultado que é 2 vá para o campo total.como faço isso?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Com esse código dá para fazer o que você quer, o list1 tem os produtos e o list2 tem as quantidade.

 

Dim total As Integer	For x = 0 To List1.ListCount - 1		If List1.Selected(x) = True Then			total = total + CInt(List2.List(x))		End If	Next x	MsgBox total

Compartilhar este post


Link para o post
Compartilhar em outros sites

cara, valeu pela ajuda. mais eu já consegui fazer.só me diz uma coisa. eu tenho dois listbox, sendo que o primeiro listbox é com checkbox.como eu faço para remover mais de um item do segundo listbox de acordo com os códigos que selecionei no primeiro listbox.por exemplo: no primeiro listbox eu selecionei os cod de produto 3 e 5. quando eu clicar no botão, tem que remover do segundo listbox as quantidades correspondentes daqueles codigos de prouto que selecionei.OBS:SÓ PARA REMOVER DA LISTA E NÃO DO BANCO.

Compartilhar este post


Link para o post
Compartilhar em outros sites

a Lógica é a mesma do anterior mas inves de somar ele remove.

For x = 0 To List1.ListCount - 1        If List1.Selected(x) = True Then            list2.remove(x)        End If    Next x

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.