Ir para conteúdo

Arquivado

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

delvas

Listview

Recommended Posts

Estou Com o seguinte Problema:

Vou colocar o Código para ficar + facil para entender

 

Private Sub Form_Load()

'CARREGAR LISTVIEW

With ListView1

.ListItems.Clear

With .ColumnHeaders

.Clear

.Add , , "Cod", 1500

.Add , , "Descrição", 4290

.Add , , "Qtd", 1000

.Add , , "Valor", 900

.Add , , "Total", 900

End With

.View = lvwReport

.LabelEdit = lvwManual

.FullRowSelect = True

End With

End Sub

 

Aqui carreguei os itens, aqui vem a primeira primeira pergunta

tipo carreguei o codigo do produto ex 100 com quantidate 2 E VALOR 10,00 VALOR TOTAL 20,00

se eu add o codigo 100 de novo ele cria um novo item ,ao invez de só alterar A QUANTIDADE E O VALOR TOTAL

 

Private Sub cmdincluir_Click()

Adodc1.Recordset.Filter = "codproduto='" & txtcod.Text & "'"

If Adodc1.Recordset.EOF Then

Adodc1.Refresh

MsgBox "Código de item inválido...", vbCritical

Exit Sub

End If

'garantir a digitação da quantidade!

If txtqtd.Text = "" Then

MsgBox "Informe a quantidade...", vbCritical

Exit Sub

End If

Dim objList As MSComctlLib.ListItem

Set objList = ListView1.ListItems.Add(, , txtcod.Text)

objList.SubItems(1) = txtdescricao.Text

objList.SubItems(2) = txtqtd.Text

objList.SubItems(3) = txtvalor.Text

objList.SubItems(4) = Val(objList.SubItems(3)) * Val(txtqtd.Text)

txtvtotal = Val(objList.SubItems(4)) + Val(txtvtotal.Text)

txtcod.Text = ""

End Sub

 

AQUI VEM A SEGUNDA

DEI DUPLO CLIQUE NO ITEM ELE DELETOU O ITEM ,ATÉ AE TUDO BEM + ELE TERIA Q TIRAR O VALOR TOTAL DO ITEM LA DO TXTVTOTAL E ISSO NAO OCORRE!

 

Private Sub ListView1_DblClick()

'MENSSAGEM DO DUPLO CLIQUE

If (MsgBox("DELETAR O ITEM ?", 36) = 6) Then

'REMOVER ITEM SELECIONADO NO DUPLO CLICK

If ListView1.ListItems.Count > 0 Then

ListView1.ListItems.Remove ListView1.SelectedItem.Index

End If

End If

End Sub

 

Private Sub cmdconfirma_Click()

aqui nao tenho ideia de como mandar os itens da listview o db dbinformatica para a tabela tblsaida

q seria o adodc2

 

nossa acabou ficando bravo o negocio aqui e q sou muito novo nisso

agradeço desde ja

Compartilhar este post


Link para o post
Compartilhar em outros sites

Aqui carreguei os itens, aqui vem a primeira primeira perguntatipo carreguei o codigo do produto ex 100 com quantidate 2 E VALOR 10,00 VALOR TOTAL 20,00se eu add o codigo 100 de novo ele cria um novo item ,ao invez de só alterar A QUANTIDADE E O VALOR TOTAL

Percorra os itens da ListView (o que pode ser feito com um For Each). Ao achar o item cujo código é o mesmo que foi digitado, você só vai alterar o respectivo subitem da quantidade.

AQUI VEM A SEGUNDADEI DUPLO CLIQUE NO ITEM ELE DELETOU O ITEM ,ATÉ AE TUDO BEM + ELE TERIA Q TIRAR O VALOR TOTAL DO ITEM LA DO TXTVTOTAL E ISSO NAO OCORRE!

Por que "teria"??? Você não colocou código nenhum para que isso fosse feito. Você é que tem que subtrair o valor.

aqui nao tenho ideia de como mandar os itens da listview o db dbinformatica para a tabela tblsaidaq seria o adodc2

Você também deverá percorrer os itens da ListView, só que desta vez você estará criando um registro em ADODC2 e preenchendo os campos com os valores dos itens.Abraços,Graymalkin

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sou muito novato nisso veioagradeço a ajuda mais teria como me explicar em codigo ?Ou sei la ,conhece alguem aqui da zona sul Saúde q poderia me dar uma aula ,pago a hora sem problemasAbraçosSe alguem tiver alguma duvida sobre LINUX eu ajudo tbm LINUX X VB Só q vb estou muito devagar pois fiz um curso na S.O.S e so aprendi criar botoes label etc...só estou conseguindo fazer algo aqui ,graças a voces lento topicos anteriores apostila e a biblia do vbvlw

Aqui carreguei os itens, aqui vem a primeira primeira perguntatipo carreguei o codigo do produto ex 100 com quantidate 2 E VALOR 10,00 VALOR TOTAL 20,00se eu add o codigo 100 de novo ele cria um novo item ,ao invez de só alterar A QUANTIDADE E O VALOR TOTAL

Percorra os itens da ListView (o que pode ser feito com um For Each). Ao achar o item cujo código é o mesmo que foi digitado, você só vai alterar o respectivo subitem da quantidade.

AQUI VEM A SEGUNDADEI DUPLO CLIQUE NO ITEM ELE DELETOU O ITEM ,ATÉ AE TUDO BEM + ELE TERIA Q TIRAR O VALOR TOTAL DO ITEM LA DO TXTVTOTAL E ISSO NAO OCORRE!

Por que "teria"??? Você não colocou código nenhum para que isso fosse feito. Você é que tem que subtrair o valor.poderia me mostrar como exemplo

aqui nao tenho ideia de como mandar os itens da listview o db dbinformatica para a tabela tblsaidaq seria o adodc2

Você também deverá percorrer os itens da ListView, só que desta vez você estará criando um registro em ADODC2 e preenchendo os campos com os valores dos itens.Abraços,Graymalkin

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sou muito novato nisso veioagradeço a ajuda mais teria como me explicar em codigo ?

Um exemplo:
Dim item As ListItem	For Each item In ListView1.ListItems	If item.Text = CÓDIGO_DIGITADO Then		item.SubItems(1) = item.SubItems(1) + QUANTIDADE_DIGITADA	End IfNext item
Por este aí dá pra ter uma idéia, né? ;)Abraços,Graymalkin

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sou muito novato nisso veioagradeço a ajuda mais teria como me explicar em codigo ?

Um exemplo:
Dim item As ListItem	For Each item In ListView1.ListItems	If item.Text = CÓDIGO_DIGITADO Then		item.SubItems(1) = item.SubItems(1) + QUANTIDADE_DIGITADA	End IfNext item
Por este aí dá pra ter uma idéia, né? ;)Abraços,vlw aew ,estou dando trabalhoo codigo acima era para nao criar um item em cima do outro né tipo só alterar a quantidadeé isso ?se for aconteceu o seguinte100 descricao qtd valor vtotal100 teste 1 10 10no segundo item aconteceu isso 100 teste 11 10 10ele juntou o 1 com o 1heheeheheehehe mesmo assim criou uma linha a +DelvasAbraços !!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom, quanto a ter juntado, você pode alterar a linha...

 

item.SubItems(1) = item.SubItems(1) + QUANTIDADE_DIGITADA

... para:

 

item.SubItems(1) = Val(item.SubItems(1)) + Val(QUANTIDADE_DIGITADA)

Agora, se está criando outra linha é porque você deixou algum resquício do seu código anterior, já que não existe nenhum Add no código que te passei.

 

Abraços,

 

Graymalkin

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vlw agora assim esta calculando certo + continuo adcionando uma nova linhatipo ele altera qtd e valor total da existente so q cria uma nova com o ultimo valor digitadovocê é o cara !! eheheheehestou te enchendo ja hauahauahuapode me ajudar achar o erroPrivate Sub txtcod_KeyPress(KeyAscii As Integer)If KeyAscii = 13 Then'A linha a seguir evita ouvir um bipKeyAscii = 0Adodc1.Recordset.Filter = "codproduto='" & txtcod.Text & "'"If Adodc1.Recordset.EOF ThenAdodc1.RefreshMsgBox "Código de item inválido...", vbCriticaltxtcod.SetFocusExit Sub End If'garantir a digitação da quantidade!If txtqtd.Text = "" Then' MsgBox "Informe a quantidade...", vbCritical txtqtd.SetFocus Exit Sub End IfDim item As ListItemFor Each item In ListView1.ListItems If item.Text = txtcod.Text Then item.SubItems(2) = Val(item.SubItems(2)) + Val(txtqtd) item.SubItems(4) = Val(item.SubItems(2)) * Val(item.SubItems(3)) End IfNext itemDim objList As MSComctlLib.ListItemSet objList = ListView1.ListItems.Add(, , txtcod.Text)objList.SubItems(1) = txtdescricao.TextobjList.SubItems(2) = txtqtd.TextobjList.SubItems(3) = txtvalor.TextobjList.SubItems(4) = Val(objList.SubItems(3)) * Val(txtqtd.Text)txtvtotal = Val(objList.SubItems(4)) + Val(txtvtotal.Text)txtcod.Text = ""txtqtd.Text = ""End IfExit SubEnd Sub

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mal ae realmente ,eu esta dando um ADD depois eheheeheheheheobrigadao !!!!!!abraçosagora vou para o segundo passo no final pegar os valores e jogar para o bdsaidaPrivate Sub Command1_Click()Adodc1.Recordset.Filter = "codproduto='" & txtcod.Text & "'" If Adodc1.Recordset.EOF Then Adodc1.Refresh MsgBox "Código de item inválido...", vbCritical txtcod.SetFocus Exit Sub End If Dim objList As MSComctlLib.ListItem Dim item As ListItem For Each item In ListView1.ListItems If item.Text = txtcod.Text Then item.SubItems(2) = Val(item.SubItems(2)) + Val(txtqtd) item.SubItems(4) = Val(item.SubItems(2)) * Val(item.SubItems(3)) Exit Sub End If Next item Set objList = ListView1.ListItems.Add(, , txtcod.Text) objList.SubItems(1) = txtdescricao.Text objList.SubItems(2) = txtqtd.Text objList.SubItems(3) = txtvalor.Text objList.SubItems(4) = Val(objList.SubItems(3)) * Val(txtqtd.Text) txtvtotal = Val(objList.SubItems(4)) + Val(txtvtotal.Text) txtcod.Text = "" txtqtd.Text = ""Exit SubEnd Sub

Compartilhar este post


Link para o post
Compartilhar em outros sites

agora vou para o segundo passo no final pegar os valores e jogar para o bdsaida

Sim, agora você já tem a base de como percorrer os itens. Então, é só preencher os campos no Recordset com os valores ou gerar instruções SQL para inserção.Abraços,Graymalkin

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pode me ajudar só nessa???

If KeyAscii = 13 Then

'A linha a seguir evita ouvir um bip

KeyAscii = 0

Adodc1.Recordset.Filter = "codproduto='" & txtcod.Text & "'"

If Adodc1.Recordset.EOF Then

Adodc1.Refresh

MsgBox "Código de item inválido...", vbCritical

txtcod.SetFocus

Exit Sub

End If

'garantir a digitação da quantidade!

If txtqtd.Text = "" Then

' MsgBox "Informe a quantidade...", vbCritical

txtqtd.SetFocus

Exit Sub

End If

' Dim objList As MSComctlLib.ListItem

' Dim item As ListItem

For Each item In ListView1.ListItems

If item.Text = txtcod.Text Then

txtvtotal = ???????????????????? ele pega o valor e item.SubItems(4) + val (txttotal.txt) o calculo da errado item.SubItems(2) = Val(item.SubItems(2)) + Val(txtqtd)

item.SubItems(4) = Val(item.SubItems(2)) * Val(item.SubItems(3))

 

txtcod.Text = ""

 

Exit Sub

End If

Next item

Set objList = ListView1.ListItems.Add(, , txtcod.Text)

objList.SubItems(1) = txtdescricao.Text

objList.SubItems(2) = txtqtd.Text

objList.SubItems(3) = txtvalor.Text

objList.SubItems(4) = Val(objList.SubItems(3)) * Val(txtqtd.Text)

txtvtotal = Val(objList.SubItems(4)) + Val(txtvtotal.Text)

txtcod.Text = ""

txtqtd.Text = 1

End If

Exit Sub

End Sub

Compartilhar este post


Link para o post
Compartilhar em outros sites

If item.Text = txtcod.Text Then	item.SubItems(2) = Val(item.SubItems(2)) + Val(txtqtd.Text)	item.SubItems(4) = Val(item.SubItems(2)) * Val(item.SubItems(3))	txtvtotal.Text = val(txtvtotal.Text) + val(item.SubItems(4))...

Não seria assim?

 

Graymalkin

Compartilhar este post


Link para o post
Compartilhar em outros sites

vlw eu testei assim + ele dava diferençaae somei na entrada If item.Text = txtcod.Text Then txtvtotal = Val(txtqtd.Text) * Val(txtvalor.Text) + Val(txtvtotal.Text) item.SubItems(2) = Val(item.SubItems(2)) + Val(txtqtd) item.SubItems(4) = Val(item.SubItems(2)) * Val(item.SubItems(3)) txtcod.Text = "" txtqtd.Text = 1 Exit Sub End IfVlw aew ,você é 10 cara sempre ajudandoabraços !!!!me da uma dica ae e como seria o código do botao salvar ?Adodc2.Recordset.AddNewitem = codprodsubitens(2) = descricaoprod sendo codprod e descricaoprod itens da tabela saidaseria isso nao né ?VARIOS ITENS AO MESMO TEMPO NO BD ELE VAI CRIAR VARIAS LINHAS NO DB ? TIPO COD 100 DESCRICAO TESTE QTD 3 COD 101 DESCRICAO TESTE2 QTD 2SE FOSSE SERIA + FACIL NÉ AE VINCULO COM O NUMERO DA OSHEEHHEHEHEEHoBRIGADO + UMA vez pela paciencia !!

Compartilhar este post


Link para o post
Compartilhar em outros sites

vlw eu testei assim + ele dava diferençaae somei na entrada If item.Text = txtcod.Text Then txtvtotal = Val(txtqtd.Text) * Val(txtvalor.Text) + Val(txtvtotal.Text) item.SubItems(2) = Val(item.SubItems(2)) + Val(txtqtd) item.SubItems(4) = Val(item.SubItems(2)) * Val(item.SubItems(3)) txtcod.Text = "" txtqtd.Text = 1 Exit Sub End IfVlw aew ,você é 10 cara sempre ajudandoabraços !!!!

:)

VARIOS ITENS AO MESMO TEMPO NO BD ELE VAI CRIAR VARIAS LINHAS NO DB ? TIPO COD 100 DESCRICAO TESTE QTD 3 COD 101 DESCRICAO TESTE2 QTD 2SE FOSSE SERIA + FACIL NÉ AE VINCULO COM O NUMERO DA OS

Exatamente.

e como seria o código do botao salvar ?Adodc2.Recordset.AddNewitem = codprodsubitens(2) = descricaoprod sendo codprod e descricaoprod itens da tabela saidaseria isso nao né ?

Seria algo assim:
Adodc2.Recordset.AddNewAdodc2.Recordset.Fields("codprod").Value = item.TextAdodc2.Recordset.Fields("descricaoprod").Value = item.SubItems(2)...Adodc2.Recordset.Update
Isto, é claro, dentro de um loop For Each.Certo? ;)Graymalkin

Compartilhar este post


Link para o post
Compartilhar em outros sites

Veio Só da erro no salvarpode me dar um exemplo de 1 campopq esta osso para ele aceitaro problema é com o adodc ?acho q o problema sou eu mesmo!

Compartilhar este post


Link para o post
Compartilhar em outros sites

no caso assim só grava o primeiro codigo dA LISTAPrivate Sub cmdsalvar_Click()For Each item In ListView1.ListItems Adodc2.Recordset.AddNew Adodc2.Recordset.Fields("codprod").Value = item.Text Adodc2.Recordset.Update Exit Sub Next itemEnd SubHELPHELPEHEHEHEHABRAÇOSPUTS ESQUECE MUITO BURRO EU AUHAAUAUAHPrivate Sub cmdsalvar_Click()For Each item In ListView1.ListItems Adodc2.Recordset.AddNew Adodc2.Recordset.Fields("codprod").Value = item.Text Adodc2.Recordset.Update 'Exit Sub Next itemEnd Sub

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.