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.
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.
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
© 1999-2024 Hardware.com.br. Todos os direitos reservados.
Imagem do Modal