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 25-08-2024
mattaldi mattaldi is offline
Miembro
 
Registrado: may 2007
Posts: 22
Poder: 0
mattaldi Va por buen camino
Reporte facturas y los items

Hola. Quiero generar un reporte con QuickReport que me liste las facturas y los items de las mismas
Algo así:
FACTURA 0011-263565 $16.500 Juan Perez
Producto A 1 $2.500 $2.500
Producto B 2 $2.500 $5.000
Producto C 3 $3.000 $9.000
FACTURA 0011-263566 $17.500 Juan Rodriguez
Producto D 2 $1.500 $3.000
Producto B 2 $2.750 $5.500
Producto C 3 $3.000 $9.000
---
---
---
Las facturas están en la tabla FACTURAVENTA y los items estan en la tabla ITEMSFACTURAVENTA.
Anteriormente realicé muchos reportes, pero sobre consultas en una sola tabla.
No sé como se configura el detalle de los itemas bajo de cada factura.
Responder Con Cita
  #2  
Antiguo 26-08-2024
manelb manelb is offline
Miembro
 
Registrado: mar 2017
Posts: 297
Poder: 8
manelb Va por buen camino
Si como comentas has realizado muchos informes con QuickReport estarás familiarizado con los diferentes sistemas de bandas y su utilización.

Supongo que estas dos tablas de facturas, cabecera y líneas, tendrán un campo común que las enlace.
Voy a llamarlo id en la tabla de Facturas, e idFactura en la tabla de líneas
Si como veo, la información de la cabecera es mínima, ja que es un simple listado estadístico, puedes hacer un join entre líneas y cabeceras y podrás realizar un informe de una sola tabla como estás acostumbrado.

Si necesitas recuperar información del cliente, también podrías recuperarla en la misma consulta SQL con otro join, aunque sería más eficiente tener una tabla de clientes enlazada por el código de cliente.
En cualquier banda solo es necesario mostrar la información del cliente.

Por supuesto deberás crear al menos una banda de cabecera de grupo, una de detalle, y si es necesario otra de pie de grupo y/o sumatorio

Hay otras formas de realizar un informe de este tipo, pero entiendo que esta es la más simple.

Saludos
Responder Con Cita
  #3  
Antiguo 26-08-2024
mattaldi mattaldi is offline
Miembro
 
Registrado: may 2007
Posts: 22
Poder: 0
mattaldi Va por buen camino
Muchas gracias por la respuesta.
Los reportes que realizo siempre son listados de datos de una tabla, Solamente con las bandas rbTitle, rbColumnHeader y rbDetail es suficiente, pero no tengo bien claro la función algunos tipos de bandas, por ejemplo la rbSubDetail.
Es correcta la estructura de BD que me decis, cabecera y líneas, con campo en común.
El tema de la consulta lo tengo bien claro y está implemetada.

He tratado de seguir un ejemplo del libro La Cara Oculta de Delphi 4 de la página 712, donde habla de informes master/detail pero obtengo lo siguiente:
FACTURA 0011-263565 $16.500 Juan Perez
Producto A 1 $2.500 $2.500
FACTURA 0011-263565 $16.500 Juan Perez
Producto B 2 $2.500 $5.000
FACTURA 0011-263565 $16.500 Juan Perez
Producto C 3 $3.000 $9.000
FACTURA 0011-263566 $17.500 Juan Rodriguez
Producto D 2 $1.500 $3.000
FACTURA 0011-263566 $17.500 Juan Rodriguez
Producto B 2 $2.750 $5.500
FACTURA 0011-263566 $17.500 Juan Rodriguez
Producto C 3 $3.000 $9.000

En este ejemplo se utilizan las bandas rbTitle, rbColumnHeader, rbDetail para los datos de la cabecera y TQRSubDetailGroupBands para los datos de las lineas de la factura.
Supongo que el error está en la consulta que viene como ejemplo en el libro:

Código SQL [-]
select C.CustNo, C.Company, O.OrderNo, O.SaleDate, O.ItemsTotal
from Customer C, Orders O
where C.CustNo = O.CustNo

Debería hacerse con un JOIN y mantener la estrucutra de bandas que uso siempre???

Voy a probar eso.

Última edición por mattaldi fecha: 26-08-2024 a las 16:48:01.
Responder Con Cita
  #4  
Antiguo 26-08-2024
mattaldi mattaldi is offline
Miembro
 
Registrado: may 2007
Posts: 22
Poder: 0
mattaldi Va por buen camino
Utilizando el Join me muestra el mismo resultado que el mensaje anterior. Me repite los datos de la cabecera en cada linea de la factura

Código SQL [-]
select * from FACTURAVENTA F JOIN ITEMFACTURAVENTA I
on F.CODIGO = I.NUMEROFACTURA

Entonces debo estar utilizando mal las bandas.
Los datos de la cabecera en que tipo de nadas van???
Los datos de las lineas en que tipo de nadas van???
Responder Con Cita
  #5  
Antiguo 27-08-2024
manelb manelb is offline
Miembro
 
Registrado: mar 2017
Posts: 297
Poder: 8
manelb Va por buen camino
En un informe de este tipo, y teniendo todos los datos en una sola consulta, necesitarias una banda de tipo TQRGroup, y en su propiedad expression indicarias el campo por el que debe hacer la rotura de grupo.
En este caso seria el id de la factura.
A continuación una banda TQRBand con BandType=rdDetail

El generador va a imprimir la banda de grupo una sola vez por cada id de factura y a continuación imprimirá tantas bandas de detalle como items tenga la factura.

Por supuesto puedes decorarlo tanto como quieras: Bandas de Título, de Cabecera, Pies de Grupo, Sumatorios, ...

Si tienes una tabla de clientes relacionada con la facura, solo tendras que nostrar los datos del cliente en la banda de grupo.
En esa banda vas a poner aquellos datos que solo deben aparecer una vez por cada factura
Responder Con Cita
  #6  
Antiguo 28-08-2024
mattaldi mattaldi is offline
Miembro
 
Registrado: may 2007
Posts: 22
Poder: 0
mattaldi Va por buen camino
Graciasssss manelb
Tu última respuesta me vino al pelo, funcionó como necesitaba.
Muchas graciasssssssss!!!
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
FActuras de ejemplo SII vboloradito Internet 39 20-12-2017 01:42:53
Sql para reporte de facturas Petolansa SQL 4 05-12-2007 22:26:23
Detalles en Reporte de Facturas magnu9 Impresión 7 02-08-2007 22:34:49
Tabla de Facturas vs Detalles de Facturas magnu9 Conexión con bases de datos 9 27-07-2007 18:27:37
Campos calculados, facturas y detalles de facturas. Letty Conexión con bases de datos 7 07-11-2003 12:19:44


La franja horaria es GMT +2. Ahora son las 02:32:42.


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