Hola, el with sirve para trabajar con un objeto específico es útil para reducir el código, ejemplo:
Código Delphi
[-]With Tabla1 do
begin
Close;
SQL.Clear;
SQL.Text := 'sentencia....';
Open;
end;
Aquí sin el with...do:
Código Delphi
[-] Tabla1.Close;
Tabla1.SQL.Clear;
Tabla1.SQL.Text := 'sentencia....';
Tabla1.Open;
¿Ves la diferencia?, con el
First se coloca desde el primer registro de la tabla, como estás tratando de realizar facturas es lógico que deberías estar usando
tablas de memorias o una
tabla temporal, porque si no, te sumará todos los registros viejos, por eso se recomienda usar
tablas de memorias o
temporales donde puedes trabajar solamente con esos registros de manera individual a los registros viejos. Espero que se te claro sino me avisas.
Saludos.