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.