lo que pasa es que cuando guardas primero el numero de la factura y todo su encabezado al no guardar los totales, en ese momento esos campos tienen el valor de null, pero cuando el motor de la base de datos hace el post fisico lo guarda con valores de 0, cuando tratas de modificarlos te marca el error, pues delphi todavia espera que tenga valores null, y no es asi, los valores cambiaron tras el post, para solucionarlo se me ocurren 3 formas: 1) cuando guardes el encabezado guarda 0's en esos campos 2) has un requery antes de guardar los totales, de esa form delphi relee cuales son los valores reales de los campos 3) especifica para esos campos el valor por defecto en 0, asi delphi espera que si no das un valor, el valor sea 0 y no nulo
saludos
PD todos mis post se perdieros con la caida, nisiquiera existía mi usuario ahahahahahahahaha