Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Go Back   Foros Club Delphi > Principal > Impresión
Register FAQ Members List Calendar Guía de estilo Today's Posts

Reply
 
Thread Tools Search this Thread Display Modes
  #1  
Old 21/05/2008
metroyd metroyd is offline
Miembro
 
Join Date: Oct 2007
Posts: 78
Poder: 19
metroyd Va por buen camino
Como Hacer Un Reporte De Ventas??

Hola, me interesa hacer un reporte de las ventas realizadas en el dia. Tengo dos tablas: VENTA (id_venta,fecha_venta,total_venta) y DETALLE_VENTA(id_venta,id_producto,cantidad_vendida,precio_venta).

El reporte me gustaria que quedara asi:

-------------------------------------------------------------------------
REPORTE DE VENTAS EN EL DIA
------------------------------------------------------------------------

ID VENTA: 1 FECHA: 12/05/2008 TOTAL: $354.00

DETALLE:
2 Chocolates
4 Cervezas
------------------------------------------------------------------------

ID VENTA: 2 FECHA: 12/05/2008 TOTAL: $114.00

DETALLE:
1 cigarros
9 Refrescos cola
-------------------------------------------------------------------------
ID VENTA: 3 FECHA: 12/05/2008 TOTAL: $451.00

DETALLE:
3 huevos
6 latas de atun
2 gomas mascar
------------------------------------------------------------------------

Algo asi. Utilizo quickreport, y qrsubdetail.
Si hago una consulta uniendo ambas tablas y lo mando al reporte, me imprime un registro por cada espacio en un QRSubdetail.
Espero su ayuda, gracias!!!!!
Reply With Quote
  #2  
Old 21/05/2008
ContraVeneno's Avatar
ContraVeneno ContraVeneno is offline
Miembro
 
Join Date: May 2005
Location: Torreón, México
Posts: 4,740
Poder: 26
ContraVeneno Va por buen camino
pues solo te faltaría agregar una banda TQRGroupBand en la propiedad "Expression" colocar el nombre del campo de la ID de la venta. En esa misma banda, pondrías El id de la venta, la fecha y el total sería un TQRExpr con la expresión Sum(Total) y la propiedad ResetAfterPrint establecida a verdadero.
__________________

Reply With Quote
  #3  
Old 22/05/2008
metroyd metroyd is offline
Miembro
 
Join Date: Oct 2007
Posts: 78
Poder: 19
metroyd Va por buen camino
Quote:
Originally Posted by ContraVeneno View Post
pues solo te faltaría agregar una banda TQRGroupBand en la propiedad "Expression" colocar el nombre del campo de la ID de la venta. En esa misma banda, pondrías El id de la venta, la fecha y el total sería un TQRExpr con la expresión Sum(Total) y la propiedad ResetAfterPrint establecida a verdadero.
El QRGroup Band va antes de los detalles de la venta??? Esta banda me servira para capturar aquellos registros repetidos?? Es decir, El ID de la venta, la fecha y el total?????
Y en subdetail pondria los detalles de las ventas???????
Reply With Quote
  #4  
Old 22/05/2008
ContraVeneno's Avatar
ContraVeneno ContraVeneno is offline
Miembro
 
Join Date: May 2005
Location: Torreón, México
Posts: 4,740
Poder: 26
ContraVeneno Va por buen camino
Quote:
Originally Posted by metroyd View Post
El QRGroup Band va antes de los detalles de la venta??? Esta banda me servira para capturar aquellos registros repetidos?? Es decir, El ID de la venta, la fecha y el total?????
Y en subdetail pondria los detalles de las ventas???????
La banda de agrupación se ajusta automáticamente en el orden que le corresponde, es decir, tu solo la pones en el reporte y ella busca su lugar, antes o después de donde le corresponda. Si es de agrupación, se pone antes del detalle, si le dices que la banda es de sumatoria, se pone al final.

Los registros se agruparán automáticamente dependiendo del campo que tu especifiques en la propiedad Expression de la QRGRoupBand y dependiendo del orden de tu consulta. Los campos comunes, como ID y fecha, los puedes poner en esta banda, para evitar que se vean repetidos (como si los pusieras en la banda detalle). El total tendría que ir en una banda GroupFooter para que sume los resultados de cada grupo.

El detalle de las ventas, pues tendrías que ponerlo en la banda QRDetail.
__________________

Reply With Quote
  #5  
Old 22/05/2008
metroyd metroyd is offline
Miembro
 
Join Date: Oct 2007
Posts: 78
Poder: 19
metroyd Va por buen camino
Hola, Pues con lo que me has explicado ya puedo lograr imprimir el resultado de una sola venta, por ejemplo:

ID VENTA:2 FECHA: 22/05/2008 TOTAL: $44.00

DETALLE: CANTIDAD VENDIDA COSTO ($)
-----------------------------------------------------------------------------------
Refrescos 2 10.0
chocolate 4 6.0


Pero ahora me gustaria poder imprimir las ventas realizadas en un rango de fechas, por ejemplo, el resultado seria asi:

ID VENTA:2 FECHA: 22/05/2008 TOTAL: $44.00

DETALLE: CANTIDAD VENDIDA COSTO ($)
-----------------------------------------------------------------------------------
Refrescos 2 10.0
chocolate 4 6.0
__________________________________________________________________________

ID VENTA:3 FECHA: 25/05/2008 TOTAL: $180.00

DETALLE: CANTIDAD VENDIDA COSTO ($)
-----------------------------------------------------------------------------------
Papas 10 15.0
chocolate 6 6.0
Pan Tostado 2 6.0
__________________________________________________________________________

ID VENTA:5 FECHA: 25/05/2008 TOTAL: $3.00

DETALLE: CANTIDAD VENDIDA COSTO ($)
-----------------------------------------------------------------------------------
Gomas de mascar 3 1.0
__________________________________________________________________________

La consulta que hago para obtener estos resultados es:
Código SQL [-]SELECT venta.id_venta,venta.fecha_venta,venta.total_venta,productos.descripcion,detalle_venta.precio_unitar io,detalle_venta.cantidad_vendida FROM venta,productos,detalle_venta WHERE venta.fecha_venta>="aki va la fecha" AND venta.fecha_venta<="aki va la otra fecha" AND venta.id_venta = detalle_venta.id_venta AND productos.id_producto = detalle_venta.id_producto order by venta.id_venta


Si aplico esta consulta con lo que ya tengo en el quickReport, me aparece en el qrgroup los datos de la primera venta, y en el SubDetail aparecen todos los productos vendidos de todas las ventas que cumplan el rango.

Código Delphi [-]
form18.QuickRep1.DataSet:=modulo.busqueda;
         form18.QRGroup1.Expression:=modulo.busqueda.fieldbyname('id_venta').AsString;
     form18.QRSubDetail1.DataSet:=modulo.busqueda;
     form18.QRDBText1.DataSet:=modulo.busqueda;
     form18.QRDBText2.DataSet:=modulo.busqueda;
     form18.QRDBText3.DataSet:=modulo.busqueda;
     form18.QRDBText4.DataSet:=modulo.busqueda;
     form18.QRDBText5.DataSet:=modulo.busqueda;
     form18.QRDBText6.DataSet:=modulo.busqueda;
     form18.QRDBText1.DataField:='id_venta';
     form18.QRDBText2.DataField:='fecha_venta';
     form18.QRDBText3.DataField:='total_venta';
     form18.QRDBText4.DataField:='descripcion';
     form18.QRDBText5.DataField:='cantidad_vendida';
     form18.QRDBText6.DataField:='precio_unitario';
     form18.QuickRep1.Preview;

Espero tu ayuda, gracias!!!!!

Last edited by metroyd : 22/05/2008 at 18:03.
Reply With Quote
  #6  
Old 22/05/2008
ContraVeneno's Avatar
ContraVeneno ContraVeneno is offline
Miembro
 
Join Date: May 2005
Location: Torreón, México
Posts: 4,740
Poder: 26
ContraVeneno Va por buen camino
Código Delphi [-]
with Modulo.Busqueda do begin
 If active then close;
 SQL.Clear;
 SQL.Add('SELECT V.id_venta, V.fecha_venta, V.total_venta, P.descripcion,');
 SQL.Add('DV.precio_unitario, DV.cantidad_vendida ');
 SQL.Add('FROM venta V');
 SQL.Add('join Detalle_Venta DV on V.ID_Venta = DV.ID_Venta');
 SQL.Add('join Productos P on DV.Id_Producto = P.ID_Producto');
 SQL.Add('WHERE V.fecha_venta between :FechaIni and :FechaFin');
 SQL.Add('order by V.id_venta');
 ParamByName('Fechaini').AsDateTime := unDateTimePickerIni.DateTime;
 ParamByName('FechaFin').AsDateTime := unDateTimePickerFin.DateTime;
 Open;
end; //with
__________________

Reply With Quote
Reply



Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Forum Jump

Similar Threads
Thread Thread Starter Forum Replies Last Post
como hacer un reporte en php? gabrielflowers PHP 5 18/10/2007 19:24
Como hacer para que Vista no reporte "No se pudo comprobar el editor" Firma digital fcios Windows 2 16/06/2007 04:52
¿Cómo hacer un reporte en forma de matriz? dibe Impresión 6 18/08/2006 02:45
Como hacer Ejecutable un Reporte en Crystal?? Barzaugc Impresión 2 16/12/2005 22:03
Como hacer un reporte dinamico ? IVAND Impresión 1 04/11/2003 23:05


All times are GMT +2. The time now is 03:33.


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