Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Impresión (https://www.clubdelphi.com/foros/forumdisplay.php?f=4)
-   -   Numero aleatorio de productos (https://www.clubdelphi.com/foros/showthread.php?t=53826)

principiante22 02-03-2008 04:02:54

Numero aleatorio de productos
 
Hola a todos, tengo una duda y es que tengo que hacer un programa que imprima una factura sin saber la cantidad de productos (con esto me refiero a que puede tener tanto 2 productos como puede tener 15) y lo que necesito es una ayuda sobre como empezar, si me pueden ayudar diciendome que componentes puedo usar o cual reporte usar o si saben algun link de una guia o que debo de hacer para que el reporte se expanda segun la cantidad de productos o algo asi :confused:.

Les agradesco por adelantado :)

marcoszorrilla 02-03-2008 12:53:28

No tienes más que utilizar una tabla de cabecera (Facturas) y otra de Detalle(Líneas).

A partir de ahí cada factura podrá tener cuantas líneas sean necesarias, yo tengo sistemas que a veces una factura ocupa más de 42 páginas, da lo mismo el diseño es igual, Cabecera factura y luego líneas (las que sean).

En cuanto el constructor de informes a utilizar para este propósito te puedo decir que con el mismo QuickReport que viene con Delphi puedes hacerlo y por lo tanto con cualquier otro que conozca y se integre con Delphi.

Un Saludo.

principiante22 03-03-2008 17:24:48

Gracias por responderme, pero quisiera saber como hacer la factura de detalle :confused:.

Gracias de nuevo :)

marcoszorrilla 03-03-2008 18:52:11

En realidad lo que tienes que utilizar son 2 tablas:
Facturas
Lineas_de_Factura

Numero será el campo que esté en las dos tablas, es decir tanto Factura, como Lineas_de_Factura tendrán ese campo.

Por ejemplo:
Facturas.Numero:08-00001
Facturas.CodClie:4301234
Facturas.Fecha:01/01/08
etc...

Lineas_de_Factura.Numero:08-00001- Producto:Aguafuerte
Lineas_de_Factura.Numero:08-00001- Producto:Alcohol
Lineas_de_Factura.Numero:08-00001- Producto:Alcanfor
Lineas_de_Factura.Numero:08-00001- Producto:Cera líquida

Facturas.Numero (Es un campo llave - Clave única)
Lineas_de_Factura.Numero(Es índice pero no llave).

Ambas tablas tienen lo que se llama una relación maestro-detalle, como hacerlo puede depender un poco del tipo de tablas que utilices, pero básicamente es lo mismo.

Creo que con este te hagas una idea.

Un Saludo.

principiante22 03-03-2008 22:23:49

Gracias de nuevo por tu respuesta, y lamento molestarte de nuevo pero quisiera saber si me puedes decir como se hace si uso una tabla de Access

marcoszorrilla 03-03-2008 22:36:03

Pues como te he comentado, Factura le declaras "LLave" el campo número de Factura, en Lineas_de_Factura, pones un campo autoincremental y lo pones llave y luego al número de factura (indexado con duplicados).

Puede establecer integridad referencial y actualización en cascada en el propio motor de la base de datos (Apartado relaciones).

Te conecata a la base de datos mediante un TAdoConnection y luego con 2 AdotAbles uno apuntando a Factura y el otro a las líneas, en este último en su propiedad MasTerSource lo concectas con Facturas y en MasterFields conectas el campo número de factura de la tabla Facturas con el del mismo nombre de la Tabla Lineas_de_Factura.

Un Saludo.

principiante22 04-03-2008 01:24:08

Gracias de nuevo, pero tengo otro problema, como puedo conectar esos TAdoTable al rave project ya que no tengo el QuickReport.

Gracias


La franja horaria es GMT +2. Ahora son las 06:24:41.

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