Ver Mensaje Individual
  #19  
Antiguo 10-01-2013
novato_erick novato_erick is offline
Miembro
 
Registrado: ago 2010
Ubicación: Panamá
Posts: 396
Reputación: 14
novato_erick Va por buen camino
Cita:
Casimiro Notevi:
Puedes seguir aquí, se trata de resolver un problema/duda y estamos con el mismo problema/duda, no es ninguna duda distinta, supongo.
Pero si vas a preguntar cómo funciona dbexpres o algo así, entonces es mejor en otro hilo, para que se pueda ver por el título de qué trata.
para nada no voy a preguntar como funciona realice lo siguiente:

dos Conexiones TsqlConnection uno para la dbInventario y otra para dbVentas
dos TsqlQuery el cual:
qConsultaArancel tiene en su propiedad SQL lo siguiente y conectado a inventario:
Código SQL [-]
select  I.COD_BARRAS, i.CODIGO3, i.NOMBRE2,  i.PESONETO from INVENTARIO i where i.CODIGO3 =:Arancel
group by i.COD_BARRAS, i.CODIGO3, i.NOMBRE2, i.PESONETO

qConsultaVentaFactura tiene en su propiedad SQL y conectado a ventas:
Código SQL [-]
    select DETALLE_FACTURAS.CODIGO_ARTICULO,
         DETALLE_FACTURAS.DESCRIPCION,
         DETALLE_FACTURAS.CANTIDAD,
         DETALLE_FACTURAS.IMPORTE_UNITARIO,
         detalle_facturas.IMPORTE_TOTAL,
         detalle_facturas.IMPORTE_DESCUENTO,
         (detalle_facturas.IMPORTE_TOTAL-detalle_facturas.IMPORTE_DESCUENTO) TOTAL_VENTA
  from DETALLE_FACTURAS where detalle_facturas.CODIGO_ARTICULO = :Codigo AND DETALLE_FACTURAS.FECHA between :FechaInicio and :FechaFin
   GROUP BY DETALLE_FACTURAS.CODIGO_ARTICULO, 
            DETALLE_FACTURAS.DESCRIPCION,
            DETALLE_FACTURAS.CANTIDAD,
            DETALLE_FACTURAS.IMPORTE_UNITARIO,
            detalle_facturas.IMPORTE_TOTAL,
            detalle_facturas.IMPORTE_DESCUENTO,
            TOTAL_VENTA

Entonces tengo ya este codigo que me trae la información poniendolos hasta en tres ClientDataSet:

Código Delphi [-]
procedure TfrmSecundario.Button1Click(Sender: TObject);
Var
  i: integer;
begin
  begin
    CodArancel := trim(Edit1.Text);
    dmLogica.cdsInventarioConsulta.Close;
    with dmConecta.qConsultaArancel do
    begin
      Close;
      ParamByName('Arancel').AsString := CodArancel;
      open;
    end;
    dmLogica.cdsInventarioConsulta.open;
    i := dmLogica.cdsInventarioConsulta.RecordCount;
    Edit2.Text := IntToStr(i);   // para conocer en el edit la cantidad de registros devueltos
  end;
  dmLogica.cdsInventarioConsulta.First;
  for i := 1 to dmLogica.cdsInventarioConsulta.RecordCount do
  begin
    dmLogica.cdsConsultaVentaFacturas.Close;
    begin
      CodBarra := dmLogica.cdsInventarioConsultaCOD_BARRAS.AsString;
      NomArancel := dmLogica.cdsInventarioConsultaNOMBRE2.AsString;
      with dmConecta.qConsultaVentaFactura do
      begin
        Close;
        ParamByName('Codigo').AsString := CodBarra;
        ParamByName('FechaInicio').AsDateTime := dtpInicioFecha.DateTime;
        ParamByName('FechaFin').AsDateTime := dtpFinalFecha.DateTime;
        open;
      end;
      dmLogica.cdsInventarioConsulta.Next;
      dmLogica.cdsConsultaVentaFacturas.open;
    end;
    dmLogica.cdsAgregaValorFacturas.AppendData
      (dmLogica.cdsConsultaVentaFacturas.Data, True);
  end;
end;

al final el ClientDataSet llamado cdsAgregaValorFacturas recibe un AppenData de mi cdsConsultaFActuraVentas.Data ya que como dije en el pos un codigo3 puede estar con 50 articulos diferentes... pero al final la información se va a reducir en esto: (es aquí donde estoy trabado)

Cita:
TInventario--------TInventario-------TDFactura--------TInventario--------TDFactura
Codigo3------------nombre2 ---------cantidad---------PesoTotal----------Totalventa
800231----------- Cocinas ---------- 50 ------------ 420 ---------- 4,200.00

Última edición por novato_erick fecha: 10-01-2013 a las 20:58:45.
Responder Con Cita