Ver Mensaje Individual
  #1  
Antiguo 20-11-2007
[FGarcia] FGarcia is offline
Miembro Premium
 
Registrado: sep 2005
Ubicación: Cordoba, Veracruz, México
Posts: 1.123
Reputación: 20
FGarcia Va por buen camino
Calcular un valor antes de guardar en una tabla

Hola!

Tengo este procedimiento aun en fase de prueba, cuando hago click en un boton se envia a traves del puerto serie (Com) la cadena:

Código Delphi [-]
procedure TMain.Button1Click(sender: TObject);
begin
   ComPort.WriteStr('1,   4356' + #13#10);
end;

Cuando se recibe esta cadena se ejecuta este procedimiento:

Código Delphi [-]
procedure TDMSerie.ProcesaCadena(Sender: TObject; const Str: String)
begin
  with TblCaptura do
    begin
      Append;
        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;

El Campo Suma esta declarado como Float, con valor por defecto 0 y no debe ser Null.

El problema es que no efectua la suma y me envia el mensaje de error "el campo Suma no puede ser NULL"
Supongo es una tontera pero ¡¡ya se me trabaron las ultimas neuronas que sobreviven sin alcohol!!
Mi logica es:
Total vale inicialmente 0, cuando se recibe un dato de valor entonces se suma:
Suma = Valor + 0; 4356 = 4356 + 0;
La siguiente vez :
Suma = Valor + Suma; 8712 = 4356 + 4356;
y asi sucesivamente es decir estoy totalizando todos los valores.

Agradesco su ayuda!!
Responder Con Cita