Ver Mensaje Individual
  #5  
Antiguo 21-11-2007
Avatar de jhonny
jhonny jhonny is offline
Jhonny Suárez
 
Registrado: may 2003
Ubicación: Colombia
Posts: 7.058
Reputación: 30
jhonny Va camino a la famajhonny Va camino a la fama
Cita:
Empezado por eduarcol Ver Mensaje
alli hay un error de logica, el campo suma siempre va a ser cero si lo que quieres es la suma tendrias que declarar una variable global y ahi ir acumulando, cada vez que se reciba una cadena se graba el valor de la variable no del campo y te explico porq: luego de un append todos los registros quedan en blanco y estas sumando igual un valor nulo siempre
Exacto, la logica que estan usando nuestros dos compañeros (cHackAll y eduarcol) es la correcta, pero si lo que quieres es ir acumulando el valor (Como al parecer todos lo hemos entendido asi), entonces tambien podrias hacerlo asi:

Código Delphi [-]
procedure TDMSerie.ProcesaCadena(Sender: TObject; const Str: String)
begin
  with TblCaptura do
    begin
        Edit; //<-- En lugar de Append usas Edit, para que no se mueva el cursor...
        FieldByName('hfCaptura').Value := Now;
        FieldbyName('ID').Value := MidStr(Str,1,1);
        FieldByName('Valor').Value := MidStr(Str,3,7);
        FieldByName('Suma').Value :=
                      StrToFloat(MidStr(Str,3,7)) + FieldByName('Suma').Value;
      Post;
    end;
  DataCnx.ConsultaTotales;
end;

Pero si lo que quieres es ir añadiendo registros con cada valor acumulado y de esa manera llevar el "historial", lo mejor es usar la sugerencia que han especificado nuestros compañeros, usando dicha variable acumuladora .
__________________
Lecciones de mi Madre. Tema: modificación del comportamiento, "Pará de actuar como tu padre!"

http://www.purodelphi.com/
http://www.nosolodelphi.com/
Responder Con Cita