Hola
A ver si esta vez bateo mejor.
Código Delphi
[-]var Dato: Real; begin
try
DM.IBDataSet_FacturasVentasNUMERO.Value:= DM.IBQuery_NumerosNUMERO.Value; DM.IBDataSet_FacturasVentasCONDICION.Value:=ComboBox_CondicionVenta.Text;
DM.IBDataSet_FacturasVentasTIPO_FACTURA.Value:=Label_Factura.Caption;
DM.IBDataSet_FacturasVentasFECHA.Value:=DTPFecha.Date;
IF ComboBox_Comprador.Text ='CLIENTE' THEN
DM.IBDataSet_FacturasVentasID_CLIENTE.Value:= DM.IBDataSet_ClientesID_CLIENTE.Value
ELSE
DM.IBDataSet_FacturasVentasID_EMPLEADO.Value:=DM.IBDataset_EmpleadoID_EMPLEADO.Value;
if CheckBox_Reparto.Checked=True then
DM.IBDataSet_FacturasVentasREPARTO.Value:='SI'
else
DM.IBDataSet_FacturasVentasREPARTO.Value:='NO';
DM.IBDataSet_FacturasVentasESTADO.Value:=1;
DM.IBDataSet_FacturasVentas.Post;
DM.IBDataSet_DetalleVentasESTADO.Value:=1;
DM.IBDataSet_DetalleVentasID_FAC_V.Value:= DM.IBDataSet_FacturasVentasID_FAC_V.Value;
DM.ibdataset_detalleventasPRODUCTO.Value:=DBLookupComboBoxAltaProductoFactura.Text;
DM.IBDataSet_DetalleVentasPRECIO_UNITARIO.Value:=DM.IBDataSet_ProductosPRECIO_UNITARIO.Value;
DM.IBDataSet_DetalleVentas.Post;
DM.Transaction.CommitRetaining;
ShowMessage('Producto agregado.');
with (DM.IBQuery_DetalleVenta)do
begin
SQL.Clear;
SQL.Add('SELECT SUM(T1.TOTAL) AS TOTALP FROM DETALLE_VENTAS T1, FACTURAS_DE_VENTAS T2 WHERE T1.ID_FAC_V = T2.ID_FAC_V');
Open;
end;
Dato:= DM.IBQuery_DetalleVenta.Fields[0].AsFloat; with (DM.IBQuery_DetalleVenta)do begin
Close;
SQL.Text:= 'Insert Into FACTURAS_DE_VENTAS (ID_FACTURA, TOTAL) Values (:Fact, :tot)';
Params[0].Value:= TU_NUMERO_DE_FACTURA; Params[1].Value:= Dato; ExecSQL; end;
except
DM.IBDataSet_DetalleVentas.Cancel;
DM.Transaction .RollbackRetaining;
end;
end;
Para mi es un insert no un update.
Revisa y trata de entenderlo.
Saludos