Cita:
Empezado por eduarcol
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; 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

.