JUNTAR E SOMAR

 Tópico anterior Próximo tópico Novo tópico

JUNTAR E SOMAR

VB / VBA

 Compartilhe  Compartilhe  Compartilhe
#478619 - 22/12/2017 10:59:57

ISABELLASILVA
BLUMENAU
Cadast. em:Novembro/2017


Bom dia pessoal,
estou usando vb6
e precisaria da ajuda dos amigos,

Ao fazer filtro na listview1 ele agrupar os valores das descrições iguais, e somar o resultado, Exemplo:

Cartão de credito 250,00
boleto 100,00
cheque 50,00
cartão de credito 250,00
boleto 50,00

então na listview2, somar exemplo:
2 cartão de credito 500,00
2 boleto 150,00
1 cheque 50,00

>>>> tentei usar o DISTINCT e o GROUP eles até funcionam para o banco de dados, mas para a Listview não deu muito certo, não posso fazer pelo banco porque quero que forme grupo somente do que filtrar na listviw1

exemplo de códigos que tentei usar

      Dim Valor As Double
      ListView2.ListItems.Clear
      If ListView1.ListItems.Count = 0 Then Exit Sub
      Dim i As Integer
      ConnectDB
         rs.Open "Select DISTINCT (FormaPgto) from Tb7FormaPgto", db, 2, 3
            Do Until rs.EOF
               For i = 1 To ListView1.ListItems.Count
                  If ListView1.ListItems(i).SubItems(6) = rs(0) Then
                     Set Item = ListView2.ListItems.Add(, , rs(0))
                     Valor = Valor + (ListView1.ListItems(i).ListSubItems(5))
                  End If
               Next
               Item.SubItems(1) = Format(Valor, "#,##0.00")
               Valor = 0
               rs.MoveNext
            Loop
      FechaDB

Isabella


#478632 - 23/12/2017 16:21:11

DAMASCENO.CESAR
ADAMANTINA
Cadast. em:Fevereiro/2009


popule o listview1 primeiro, após popular:
Consete a sintaxe rsrsrs, nao trabalho com vb 6, então...
Dim bln as boolean
for a = 0 to listview1.Listitems.count -1  'Partindo do principio que o Index comece no zero
     bln=false
     if Listview2.listitems.count = 0 then
             ListView2.ListItems.Add(listview1.Listitems(a).subitems que deseja)
    else
            for b= 0 to Listview2.listitems.count-1
               If ListView1.ListItems(a).SubItems("cartão, boleto, cheque") = Listview2.listitems(a).SubItems("cartão, boleto, cheque") Then 'não sei em qual subitem está o tipo
                   Listview2.listitems(b).SubItems("valor ") =  Listview2.listitems(b).SubItems("valor ") +  Listview1.listitems(a).SubItems("valor ")
                   bln = true
                   exit for
              else
                  bln=false
              end if
         next
              if bln= false then
                  ListView2.ListItems.Add(listview1.Listitems(a).subitems que deseja)
             end if
next
            


O conhecimento é como o dinheiro: quanto mais temos, mais queremos ter (Josh Billings)  


Resposta escolhida #478693 - 27/12/2017 13:59:19

LOVO12
BRASIL
Cadast. em:Maio/2012


Dim Tbacha As ADODB.Recordset
Dim item As ListItem

ListView1.View = lvwReport
ListView1.ColumnHeaders.Add , , "FormaPgto"
ListView1.ColumnHeaders.Add , , "ValorSoma"

Set Tbacha = ConBD.Execute("SELECT [FormaPgto], SUM(Valor) as ValorPagamentos " & _
                     "FROM Tb7FormaPgto " & _
                     "GROUP BY Tb7FormaPgto.FormaPgto,Tb7FormaPgto.ValorPagamentos")

ListView1.Enabled = False

Do While Not Tbacha.EOF
    Set item = ListView1.ListItems.Add(, , Tbacha("FormaPgto").Value)
    item.SubItems(1) = Tbacha("ValorPagamento").Value
    Tbacha.MoveNext
Loop

ListView1.Enabled = True

o código acima ele agrupa e traz o valor total de cada forma de pagamento , deve resolver , adapta a seu gosto rs.
é um exemplo de como pode ser feito rs.



#478704 - 27/12/2017 15:37:11

OMAR2011
MONTES CLAROS
Cadast. em:Setembro/2011


Isto sim,e um Count cairia muito bem para saber quantos boletos,cartões ou cheques.
Simples e de fácil compreensão.




#478705 - 27/12/2017 15:52:17

LOVO12
BRASIL
Cadast. em:Maio/2012


Última edição em 27/12/2017 16:28:38 por LOVO12

Citação:
:
Isto sim,e um Count cairia muito bem para saber quantos boletos,cartões ou cheques.
Simples e de fácil compreensão.

OMAR2011 , Ficaria sim , é de fácil implementação também no código




 Tópico anterior Próximo tópico Novo tópico


Tópico encerrado, respostas não sao permitidas
Encerrado por ISABELLASILVA em 28/12/2017 09:36:58