Gracias Marcos por tu respuesta, funciona perfecto , pero cuando el locate salta y encuentra el registro se sale del bucle , se puede guardar una posicion dentro de la busqueda y luego volver a esa posicion despues del locate ?
Código Delphi
[-]
rx.Last;
While Not rx.Bof do
begin
nume := Length(Trim(rx.fieldByname('codigo').value));
saldo := Saldo + Rx.FieldByName('Saldo').Value;
rx1.insert;
rx1.fieldbyname('codigo').value:=rx.fieldByname('codigo').value;
rx1.post;
for X := Nume - 1 downto 1 do begin
if x = 0 then
Saldo := 0;
J := Copy(Trim(rx.fieldByname('codigo').value), 1, X);
if rx.Locate('codigo', j, []) then
begin
saldo := Saldo + Rx.FieldByName('Saldo').Value;
Rx.Edit;
Rx.FieldByName('Saldo').Value := saldo;
rx.Post;
end;
end;
Rx.prior; end;
Gracias por sus comentarios