Logo Hardware.com.br
FlavioVissoto
FlavioVissot... Membro Junior Registrado
86 Mensagens 2 Curtidas

Listview Visual Basic 2010

#1 Por FlavioVissot... 14/11/2012 - 00:19
Ola pessoal,

Estou com um probleminha e não consigo resolver...


Queria fazer a soma de alguns valores que estão em um listview que eu preenchi. Eu consegui faze a soma de um outro medo, mas queria saber como faço para fazer a soma de uma coluna, apenas uma coluna. Não consegui fazer esse método da soma da coluna.


Alguém pode me explicar?


Eis o código que usei para criar as linhas e colunas no Listview:






Private Sub Criar_ListView()
'Private usado para Criar a ListView


Dim LV As New ListView


ListView1.Bounds = ListView1.Bounds 'New Rectangle(New Point(10, 10), New Size(300, 200))


listView1.View = View.Details 'Define a exibição
listView1.LabelEdit = False ' Usuario nao pode alterar nada na listview
listView1.AllowColumnReorder = True 'Permite alterar a ordem das linhas
ListView1.CheckBoxes = True 'Exibe os Checkbox's
listView1.GridLines = True 'Exibe as linhas
listView1.Sorting = SortOrder.Ascending 'Ordena os itens em ordem alfabética




' Cria coluna para os itens e subitens
ListView1.Columns.Add("Código", 80, HorizontalAlignment.Left)
ListView1.Columns.Add("Produto", 80, HorizontalAlignment.Left)
ListView1.Columns.Add("Quantidade", 80, HorizontalAlignment.Left)
ListView1.Columns.Add("Preço da Venda Unitária", 80, HorizontalAlignment.Left)
ListView1.Columns.Add("Valor Total", 80, HorizontalAlignment.Left)


' inclui o Listive a coleção de controles
Me.Controls.Add(listView1)


End Sub





Os itens são adicionados depois com outro comando, e eu queria fazer a soma da coluna Valor Total (Esta em vermelho) e mostrar em um textbox.
Responder
Fergo
Fergo Highlander Registrado
9.3K Mensagens 1.1K Curtidas
#2 Por Fergo
14/11/2012 - 00:28
Itere entre todas as linhas, somando o valor da última coluna:

[code=rich]
Dim i as Integer
Dim Soma as Single = 0

For i = 0 to ListView1.Items.Count - 1
Soma += Convert.ToSingle(ListView1.Items(i).Subitems(Numerodacoluna).Text)
Next
[/code]Troque Numerodacoluna pelo número da coluna que for somar. No seu caso, acredito ser a coluna 4. Não testei o código, mas acredito que dê para a entender a lógica. Basicamente acesso um subitem específico (que no seu caso representa a coluna) de cada item (linha) e somo na variável Soma. Antes disso eu converto ela para Single, caso contrário você estaria somando uma String.
Site pessoal www.fergonez.net
Portfolio
www.fbirck.com
Artigos
Informática
FlavioVissoto
FlavioVissot... Membro Junior Registrado
86 Mensagens 2 Curtidas
#3 Por FlavioVissot...
14/11/2012 - 10:03
Fergo,Mas com este codigo, o programa nao esta somando a coluna, e sim os itens adicionados. Esse codigo eu usei, eu queria somar a coluna, pois assim, se eu remover o item da lista, automaticamente, o textbox fara uma nova conta subtraindo o valor total removido.


Acho que ficou meio confuso né kkkkkk

Flavio Vissoto

boa.gif

[EMAIL="vissoto_flavio@hotmail.com"]vissoto_flavio@hotmail.com[/EMAIL]

dance.gif Monstergame - Vampiro
(Game de Browser)dance.gif
FlavioVissoto
FlavioVissot... Membro Junior Registrado
86 Mensagens 2 Curtidas
#5 Por FlavioVissot...
14/11/2012 - 13:10
Eu quero somar todos os valores da coluna 4 e mostrar o valor uma um textbox, e quando eu excluir um alinha do listview, o valor correspondente a esta linha seja subtraído do textbox.

Acho que nao tinha explicado direito... kkk

Flavio Vissoto

boa.gif

[EMAIL="vissoto_flavio@hotmail.com"]vissoto_flavio@hotmail.com[/EMAIL]

dance.gif Monstergame - Vampiro
(Game de Browser)dance.gif
FlavioVissoto
FlavioVissot... Membro Junior Registrado
86 Mensagens 2 Curtidas
#8 Por FlavioVissot...
14/11/2012 - 18:20
Fergo,

Finalmente consegui fazer o que eu queria.


Agora eu adiciono itens na lista e o textbox soma e caso eu retire, o textbox subtrai.


esta é a formula para somar os valores:


veja.pngPrivate Sub Somar_Itens_Valores()
'Private usado para somar os valroes dos itens adicionados na lita.
Dim i As Integer
Dim Soma As Single = 0


For i = 0 To ListView1.Items.Count - 1
Soma += CDbl(ListView1.Items(i).SubItems(4).Text)
Next
TextBox5.Text = CDbl(Soma)
End Sub













E esta é para deletar o item da listview e retirar o valor:




veja.pngPrivate Sub Retirar_Item_Listaview()
'Private usado para retirar o Item da Listview
Dim soma As Decimal
Dim linha As Integer = 0


Dim Resposta As DialogResult = Windows.Forms.MessageBox.Show("Confirma Exclusão do Item da Lista de Compras?", _
"Deletar Itens Lista", MessageBoxButtons.YesNo, _
MessageBoxIcon.Question)


If Resposta = Windows.Forms.DialogResult.Yes Then




For Each ListItem As ListViewItem In ListView1.Items


If ListItem.Checked Then


For x = 1 To 1
'Listitem.Index = Usado para retirar o item atual que esta selecionado.
soma += Convert.ToSingle(ListView1.Items(ListItem.Index).SubItems(4).Text) 'Retira o Valor da Soma Total
ListView1.Items.RemoveAt(ListItem.Index) 'Retira o Item da Lista
Next


End If
Next
End If
TextBox5.Text = CDbl(TextBox5.Text) - soma
FormatarValores()


End Sub











Sei que não é o melhor algorítimo, mas funcionou legal...




Vlw manolo pelas Dicas...


punk.gif

Flavio Vissoto

boa.gif

[EMAIL="vissoto_flavio@hotmail.com"]vissoto_flavio@hotmail.com[/EMAIL]

dance.gif Monstergame - Vampiro
(Game de Browser)dance.gif
Responder Tópico
© 1999-2024 Hardware.com.br. Todos os direitos reservados.
Imagem do Modal