Hola
Lo que quieres hacer se llama UpDate.
Tienes un numero de factura que es la que (por logica) va a contener el total de esa venta, es asi?.....
Ya sabemos que la consulta nos da el total.
Ese total lo vamos a pasar al campo TOTAL.FACTURAS_DE_VENTAS de la MISMA tabla, es asi?....
Bien:
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:= 'Update DETALLE_VENTAS set TOTAL.FACTURAS_DE_VENTAS = :Tot where ID_FACTURA = T1.ID_FAC_V';
Params[0].Value:= Dato;
ExecSQL; end;
except
DM.IBDataSet_DetalleVentas.Cancel;
DM.Transaction .RollbackRetaining;
end;
end;
Si tienes dudas dilo.
Saludos
PD: No se si entiendo bien, tal vez es un insert, solamente se cambia la consulta sql y listo