Ir para conteúdo

POWERED BY:

Arquivado

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

#Allan

While

Recommended Posts

Tenho q fazer um relatório dos maiores devedores para um cliente e não estou conseguindo!
Ele quer um relatório assim... "Fulano" esta devendo 10 parcelas de R$100,00, tenho q pegar essas 10 parcelas q são cada uma um registro e tornar em um registro só, ou seja "Fulano" fica com a dívida de R$ 1.000,00.

tive um idéia de deixar o Recer(onde fica tudo o q o cliente tem a receber) em ordem alfabética e fazer um while onde ele pega desde o primeiro registro do recer e vai somando, e no final grava em um BD chamado TEMP.

Se alguém souber me ajudar arrumar isso ou me mostrar algo mais fácil agradeço desde já!

var 
  xClien: String; 
  xValor: Currency; 

  DM.ibTemp.Open; 
  DM.ibPesqRecer.Close; 
  DM.ibPesqRecer.SQL.Clear; 
  DM.ibPesqRecer.SQL.Add('select * from RECER'); 
  DM.ibPesqRecer.SQL.Add('order by nome'); 
  DM.ibPesqRecer.Open; 
  DM.ibPesqRecer.First; 

  while not (DM.ibPesqRecer.Eof) do 
  begin 
    xClien:= DM.ibPesqRecerNOME.Text; 
    xValor:= 0; 
    while DM.ibPesqRecerNOME.Text = xClien do 
    begin 
      xValor:= xValor + DM.ibPesqRecerVLRDEV.AsCurrency; 
      Next; 
    end; 
    DM.ibTemp.Append; 
    DM.ibTempNOME.Text:= xClien; 
    DM.ibTempVALOR.AsCurrency:= xValor; 
    DM.ibTemp.Post; 
    DM.ibTemp.ApplyUpdates; 
    DM.Trans.CommitRetaining; 
    Next; 
  end;

Compartilhar este post


Link para o post
Compartilhar em outros sites

Amigo, isso é questão de sql... você pode resolver facilmente usando o comando SUM.... veja o link a seguir como exemplo: http://www.w3schools.com/sql/sql_func_sum.asp

 

No seu caso, o mais simples seria isto (considerando os campos informados no seu código)

DM.ibPesqRecer.Close;
DM.ibPesqRecer.SQL.Clear;
DM.ibPesqRecer.SQL.Add('select nome, SUM(VLRDEV) as Total from RECER Group by nome');
DM.ibPesqRecer.SQL.Add('order by nome');
DM.ibPesqRecer.Open;

Somente isso já irá lhe retornar a lista de nomes com os valores agrupados em um único registro somados.

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.