Ver Mensaje Individual
  #3  
Antiguo 30-05-2003
Avatar de marcoszorrilla
marcoszorrilla marcoszorrilla is offline
Capo
 
Registrado: may 2003
Ubicación: Cantabria - España
Posts: 11.221
Reputación: 10
marcoszorrilla Va por buen camino
Prueba con este código:


//Cálculo del Dígito de Control de una Cuenta bancaria...
Código:
procedure TDataModule1.TableBancosCalcFields(DataSet: TDataSet); 
Var 
DC1,DC2 : String; 
Function CCC(cTemp : String) : Integer; 
Var 
K,I,nNum,nSum : Integer; 
cPesos,cNum  : String; 
Begin 
cPesos := '06030709100508040201'; 
nSum := 0; 
FOR I := 1 TO length(cTemp) DO 
    Begin 
    cNum := Copy(cTemp, length(cTemp) - I + 1, 1); 
    nNum := StrToInt(cNum); 
    nSum := nSum + (nNum * StrToInt(Copy(cPesos, ((i - 1) * 2) + 1, 2))); 
    End; 

K := 11 -  (nSum MOD 11); 

Case K OF 
     10:Result := 1; 
     11:Result := 0; 
     Else Result := K; 
End; 
End; 

Begin 
With TTable(DataSet)DO 
Begin 
     if  (FieldByName('CodEntidad').AsInteger = 0 ) or 
         (FieldByName('CodSucursal').AsInteger = 0) or 
         (FieldByName('CodCuenta').AsInteger = 0) then Exit; 
   Dc1 :=  IntToStr(CCC(FieldByName('CodEntidad').Text + 
             FieldByName('CodSucursal').Text)) ; 
   Dc2 := IntToStr(CCC(FieldByName('CodCuenta').Text)); 
FieldByName('CodControl').AsString := Dc1 + Dc2; 
End; 

end;
Un Saludo.

Última edición por marcoszorrilla fecha: 31-05-2003 a las 15:38:28.
Responder Con Cita