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); 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
|