Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Impresión (https://www.clubdelphi.com/foros/forumdisplay.php?f=4)
-   -   Imprimir reporte de maestro/ detalle (https://www.clubdelphi.com/foros/showthread.php?t=91186)

Belen12 28-11-2016 01:54:46

Imprimir reporte de maestro/ detalle
 
Hola buenas tardes tengo un problema. Tengo un formulario en el cual poseo 2 dbGrid en cual listo las ventas y sus repectivos detalles de ventas.
Esto funciona de la siguiente manera al abrir el formulario se listan todas las ventas y al ir moviendome por el dbgrid de "ventas" en el segundo dbgrid que esta asociado al detalle se van listando todo los detalles de dicha venta seleccionada en el dbgrid 1 ademas agregue 1 boton para ir filtrando busqueda de ventas por fechas. Hasta aca esta todo perfecto.
El problema es al intentar imprimir esto me pasa lo siguiente. En la parte del reporte en la banda de ventas me lista todas las ventas. pero en el detalle me lista solo uno. y yo lo que deseo es hacer lo siguiente " que al pararme en la fila 2 por ejemplo o en la 5(del dbgrid1) se me liste sus detalles(en el dbgrid2) al darle imprimir se imprima esa venta y ese detalle solamente y no todas las ventas que esten visualizadas en el dbgrid.

la estructura es la siguiente la aplicacion esta echa en delphi 2010 componentes query de zeos y rave report

en el query tengo la siguiente consulta
query venta
Código SQL [-]
SELECT 
  `clientes`.`apellidocli`,
  `clientes`.`nombrecli`,
  `venta`.`fechavent`,
  `clientes`.`dnicli`,
  `venta`.`horavent`,
  `venta`.`totalventa`,
`venta`.idventa,
  `venta`.`idcliente`
FROM
  `venta` inner join 
  `clientes` on (venta.`idcliente`=clientes.`idcliente`)

query detalle


Código SQL [-]
query detalle

SELECT 
`detalle_venta`.idventa,
  `detalle_venta`.`idproducto`,
  `detalle_venta`.`cantidad_venta`,
    `detalle_venta`.`subtotal`,
  producto.precio_ventas,
  producto.`nombrepr`

FROM
  `detalle_venta` 
INNER JOIN producto on (producto.`idproducto`=detalle_venta.idproducto)

boton buscar
Código Delphi [-]
begin
if finicio.Date<=fhasta.Date then
begin
fmodulo.Venta.Close;
fmodulo.Venta.SQL.clear;
fmodulo.Venta.SQL.Add('select * from venta inner join clientes on(venta.idcliente=clientes.idcliente)');
fmodulo.Venta.SQL.Add('where fechavent BETWEEN :Finicio AND :Fhasta');
fmodulo.Venta.SQL.Add('Order By idventa');
fmodulo.Venta.Params[0].AsDate:=finicio.Date;
fmodulo.Venta.Params[1].AsDate:=fhasta.Date;
fmodulo.Venta.Open;
fmodulo.Venta.Refresh;
fmodulo.DetalleVenta.Refresh;

end else
begin
showmessage('la fecha de inicio tiene que ser menor a la fecha de "hasta"');
end;

boton imprimir
Código Delphi [-]
fmodulo.rvListadoVentas.Execute;

aclaro en el query de detalle ya tengo establecida dicha relacion maestro detalle atravez de sus propiedades
linked fiels idventa
master fields idventa
mastersource dsventa
luego cada query se conecta a un trvDatasetConnection para generar el reporte. En dicho reporte ya seleccione tambien la clave primara del maestro y del detalle. y aun asi esto no me funciona.
Habria una forma de hacer lo que planteo de solo imprimir la fila que tengo seleccionada del grid1 y por defecto se impriman las del detalle que se muestran al tener ya seleccionada esa fila del dbgrid1


La franja horaria es GMT +2. Ahora son las 12:47:19.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi