Ver Mensaje Individual
  #14  
Antiguo 07-10-2011
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Reputación: 27
Caral Va por buen camino
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; // creamos la variable que contendra el dato
begin
             try

             //FACTURA_DE_VENTAS

               DM.IBDataSet_FacturasVentasNUMERO.Value:= DM.IBQuery_NumerosNUMERO.Value;//NUMERO DE FACTURA...
               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;
               //DM.IBDataSet_FacturasVentasID_CAJA
               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;
              //DETALLE_VENTAS

               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;
              
           // aqui lo hacemos todo
              Dato:= DM.IBQuery_DetalleVenta.Fields[0].AsFloat; // pasamos el valor
              with (DM.IBQuery_DetalleVenta)do  // usamos el mismo query
               begin
              Close;
              // hacemos el update pasandole el dato en el campo que coincida con el numero de factura
              SQL.Text:= 'Update DETALLE_VENTAS set TOTAL.FACTURAS_DE_VENTAS = :Tot where ID_FACTURA = T1.ID_FAC_V'; 
              Params[0].Value:= Dato;
              ExecSQL; // lo ejecutamos
               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
__________________
Siempre Novato

Última edición por Caral fecha: 07-10-2011 a las 22:43:49.
Responder Con Cita