simplificar soma

Delphi

28/10/2007

Olá pessoal...

tenho o seguinte codigo:
// Soma totais das costas 
procedure TFrmCtaReceber.SomaContas; 
var 
  Soma:Currency; 
Begin 
  Soma:=0; 
  ADO_CtaRecParc.First; 
  while not ADO_CtaRecParc.eof do 
  begin 
    Soma := Soma + ADO_CtaRecParc.FieldByName(´VALOR´).AsFloat; 
    ADO_CtaRecParc.Next; 
    Edit3.Value := Soma; 
 end; 

 //****************************************************************** 
      begin 
        Soma:=0; 
        ADO_CtaRecParc.Close; 
        ADO_CtaRecParc.ParamByName(´QUITADO´).AsString :=´S´; 
        ADO_CtaRecParc.Open; 
        ADO_CtaRecParc.First; 
        while not ADO_CtaRecParc.eof do 
        begin 
          Soma := Soma + ADO_CtaRecParc.FieldByName(´VALOR´).AsFloat; 
          ADO_CtaRecParc.Next; 
          Edit1.Value := soma; 
        end; 
      end; 
     Edit2.Value := Edit3.Value - Edit1.Value; 
 end; 


eu quero tirar um dos ADO_CtaRecParc.First; que tenho nesse codigo pois quando eu abro o form ele percorre a tabela 2 vezes e quando tem muito registro demora muito para ele percorrer essa tabela... deixando um apenas assim so teria uma passagem na tabela ou uma forma de somar tudo sem percorrer a tabela...


Tchucky

Tchucky

Curtidas 0

Respostas

Jarabeucp

Jarabeucp

28/10/2007

// Soma totais das costas 
procedure TFrmCtaReceber.SomaContas; 
var 
  Soma:Currency; 
begin 
  Soma:=0; 
  ADO_CtaRecParc.Close; 
  ADO_CtaRecParc.ParamByName(´QUITADO´).AsString :=´S´; 
  ADO_CtaRecParc.Open; 
  ADO_CtaRecParc.First; 
  While not ADO_CtaRecParc.eof do 
  begin 
    Soma := Soma + ADO_CtaRecParc.FieldByName(´VALOR´).AsFloat; 
    ADO_CtaRecParc.Next; 
    Edit1.Value := soma;
    Edit3.Value := Soma;  
  end; 
  Edit2.Value := Edit3.Value - Edit1.Value;  
end; 

end.
 [quote] amigo eu faria assim como descrito assima, pq vc faz as duas coisa ou seja dois codigos iguais em um mesmo lugar.




GOSTEI 0
Tchucky

Tchucky

28/10/2007

fera tentei fazer dessa forma mas ele naum faz a soma total q é armazenada do edit3, assim o outros campos naum recebe os dados correto...


GOSTEI 0
Rjun

Rjun

28/10/2007

Em vez de fazer esse while, por que você não faz um SELECT SUM?


GOSTEI 0
POSTAR