SOMAR GRUPO DATAGRIDVIEW

MORCELI 05/03/2014 10:55:10
#435527
Bom dia Galera, Preciso de uma força para terminar minha rotina:
Funciona assim, ele soma os grupo e joga total na ultima linha, assim:
coluna 1 coluna 3 coluna 4
ITEM 1 = 1
ITEM 1 = 2
ITEM 1 = 3
TOTAL = 6
ITEM 2 = 10
ITEM 2 = 5
ITEM 2 = 10
TOTAL = 25
Assim por diante

Eu monteí essa rotina,só que até agora sem sucesso
Dim Soma As Integer
Dim i As Integer
Dim categoria As String
i = 0

Do While DataGridView1.Item([Ô]Coluna1[Ô], i).Value <> [Ô][Ô]

categoria = DataGridView1.Item([Ô]Coluna1[Ô], i).Value




i = i + 1

Do While DataGridView1.Item([Ô]Coluna1[Ô], i).Value = categoria
Soma = Soma + DataGridView1([Ô]Coluna3[Ô], i).Value
i = i + 1
Loop
DataGridView1.Item([Ô]Coluna4[Ô], i - 1).Value = Soma
Soma = 0
Loop
End Sub

Aguem da uma luz ai
MOUSER 05/03/2014 12:35:19
#435537
Estive com problema similar, no meu caso era somar a coluna da dgv e apresentar o total dos valores gastos na tabela:

Dim total As Double [ô] No caso eu criei uma variável para armazenar o valor total
For Each col As DataGridViewRow In dgv.Rows
total += col.Cells([Ô]nomeDaColunaQueSeraSomada[Ô]).Value [ô]aqui ele pega o nome da coluna q irei utilizar
Next
txtTotal.Text = total [ô]a textbox é só para poder apresentar no Formulario
txtTotal.Text = FormatNumber(txtTotal.Text) [ô]formatação da textbox

Onde dgv é o nome do DataGridView
txtTotal.Text é o nome do TextBox
No seu caso vc vai ter q criar dois destes da mesma forma, um para o item 1 e outro para o item 2, criar 2 variaveis de total para armazenar o resultado e não perder as informações de ambos os itens.

Ficaria +/- assim:

Dim total1 As Double
For Each col As DataGridViewRow In dgv.Rows
total += col.Cells([Ô]Item1[Ô]).Value
Next
txtTotal.Text = total1
txtTotal.Text = FormatNumber(txtTotal.Text)

Dim total2 As Double
For Each col As DataGridViewRow In dgv.Rows
total += col.Cells([Ô]Item2[Ô]).Value
Next
txtTotal.Text = total1
txtTotal.Text = FormatNumber(txtTotal.Text)
MORCELI 05/03/2014 13:11:38
#435538
Obrigado pela atenção MOUSE, então MOUSE oque pretendo é um pouco mais complexo meu caso, pra voce entender melhor da uma olhada na imagem, o codigo que criei ta somando errado, ele sempre deixa de somar a primeira linha do grupo


Dim Soma As Integer
Dim i As Integer
Dim categoria As String
i = 0


Do While DataGridView1.Item([Ô]Coluna1[Ô], i).Value <> [Ô][Ô]

categoria = DataGridView1.Item([Ô]Coluna1[Ô], i).Value

[ô] DataGridView1.Rows.Add(i)

[ô]DataGridView1.Item([Ô]Coluna1[Ô], i).Value = categoria


i = i + 1

Do While DataGridView1.Item([Ô]Coluna1[Ô], i).Value = categoria
Soma = Soma + DataGridView1([Ô]Coluna3[Ô], i).Value
i = i + 1
Loop
DataGridView1.Item([Ô]Coluna4[Ô], i).Value = Soma
Soma = 0
Loop
Se alguem souber onde estou errando por favor da um força..
MOUSER 05/03/2014 13:29:37
#435539
Vou dar uma estudada no seu código, hj vai ser um pouco difícil te garantir uma resposta. mas vou tentar criar uma logica de linguagem do seu projeto, e se vc permitir, eu salvo a imagem do seu projeto, e também crio um modelo parecido com o seu para facilitar e mostrar para alguns professores amigos meus, mas preciso primeira mente ver a disponibilidade deles em nos ajudar, seu projeto me deu uma ideia, posso utiliza-lo no meu só modificando algumas coisas? q estou criando um projeto de vendas, e o q pretendo fazer é similar ao seu projeto, calcular o subtotal e apresentar no datagrid (dgv). Mas por favor se alguém souber, conseguir encontrar algum erro neste código, agradeceremos...
NILSONTRES 05/03/2014 15:03:44
#435542
Pessoal,
O grid tem linhas e colunas, onde:
grid.Rows.add
grid.Rows(grid.Rows.count-1).Cells(0).Value=[Ô]CodProduto[Ô]
grid.Rows(grid.Rows.count-1).Cells(1).Value=[Ô]Produto[Ô]
grid.Rows(grid.Rows.count-1).Cells(2).Value=[Ô]VlrProduto[Ô]

Acima, ultima linha inserida no grid e suas respectivas colunas
Para somar a coluan desejada. vlr do produto por exemplo.

For i = 0 to grid.Rows.Count-1
Soma+=grid.Rows(i).Cells(2).Value
next
msgbox Soma


MORCELI 05/03/2014 16:37:10
#435548
Obrigado pela atenção NELSONTRES, então ainda ta fora do que procuro, preciso fazer a soma por grupo, e não somar a coluna inteira, eu vou somando os grupos e jogando a somatoria em outra coluna datagridview
NILSONTRES 05/03/2014 18:43:10
#435555
Tenta isso aqui:

dim ii as integer
Do While DataGridView1.Item([Ô]Coluna1[Ô], ii).Value = categoria
Soma = Soma + DataGridView1([Ô]Coluna3[Ô], ii).Value
ii = ii + 1
Loop

ii=0
MORCELI 05/03/2014 19:05:38
#435559
Deu certo não NILSONTRES
MARCELOSN 05/03/2014 20:39:12
#435564
boa noite


veja este link, tem bastante exemplo

http://www.agrinei.com/gridviewhelper/gridviewhelper_pt.htm
CABRERA 07/03/2014 22:33:35
#435668
Morceli, me explica certinho, não entendi direito o que você quer fazer, qualquer coisa, me adiciona no Skype Cabrera.cajobi@hotmail.com pois já fiz isto que voe quer fazer ou parecido.
MORCELI 08/03/2014 07:31:08
#435676
Obrigado pela atenção CABRERA, então preciso somar o datagridview por grupo, tipo um relatorio só que usando datagridview, Igual o anexo..se voce tiver alguma coisa parecida pra mim adaptar, pode passar no meu E-mail fazendo um favor cleiton_morceli@hotmail.com

Página 1 de 2 [12 registro(s)]
Tópico encerrado , respostas não são mais permitidas