Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Impresión
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 21-05-2008
metroyd metroyd is offline
Miembro
 
Registrado: oct 2007
Posts: 78
Poder: 18
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!!!!!
Responder Con Cita
  #2  
Antiguo 21-05-2008
Avatar de ContraVeneno
ContraVeneno ContraVeneno is offline
Miembro
 
Registrado: may 2005
Ubicación: Torreón, México
Posts: 4.738
Poder: 24
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.
__________________

Responder Con Cita
  #3  
Antiguo 22-05-2008
metroyd metroyd is offline
Miembro
 
Registrado: oct 2007
Posts: 78
Poder: 18
metroyd Va por buen camino
Cita:
Empezado por ContraVeneno Ver Mensaje
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???????
Responder Con Cita
  #4  
Antiguo 22-05-2008
Avatar de ContraVeneno
ContraVeneno ContraVeneno is offline
Miembro
 
Registrado: may 2005
Ubicación: Torreón, México
Posts: 4.738
Poder: 24
ContraVeneno Va por buen camino
Cita:
Empezado por metroyd Ver Mensaje
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.
__________________

Responder Con Cita
  #5  
Antiguo 22-05-2008
metroyd metroyd is offline
Miembro
 
Registrado: oct 2007
Posts: 78
Poder: 18
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!!!!!

Última edición por metroyd fecha: 22-05-2008 a las 19:03:01.
Responder Con Cita
  #6  
Antiguo 22-05-2008
Avatar de ContraVeneno
ContraVeneno ContraVeneno is offline
Miembro
 
Registrado: may 2005
Ubicación: Torreón, México
Posts: 4.738
Poder: 24
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
__________________

Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
como hacer un reporte en php? gabrielflowers PHP 5 18-10-2007 20:24:44
Como hacer para que Vista no reporte "No se pudo comprobar el editor" Firma digital fcios Windows 2 16-06-2007 05:52:49
¿Cómo hacer un reporte en forma de matriz? dibe Impresión 6 18-08-2006 03:45:25
Como hacer Ejecutable un Reporte en Crystal?? Barzaugc Impresión 2 16-12-2005 23:03:50
Como hacer un reporte dinamico ? IVAND Impresión 1 05-11-2003 00:05:56


La franja horaria es GMT +2. Ahora son las 01:53:36.


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
Copyright 1996-2007 Club Delphi