Ahora sí

Bueno, entonces si no quieres que descuente existencias por cada línea que se va guardando... te queda solamente una opción: cuando le des a terminar/finalizar/aceptar el documento, o sea, cuando se termina, antes de salir debes de recorrer el dataset con todas las líneas y hacer la resta por cada una de ellas. Resumiendo, hacer "lo mismo" pero manualmente. Algo así (tú debes sustituir los dataset, nombres de tablas, campos, etc.), es sólo para que te hagas una idea:
Código Delphi
[-]qlineas.first;
while not qlineas.eof do
begin
update tablaexistencias set existencias=existencias - qlineas.cantidad.asinteger;
post;
qlineas.next;
end;
Aunque, desde luego, la otra opción es más efectiva.