Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Impresión (https://www.clubdelphi.com/foros/forumdisplay.php?f=4)
-   -   Varias copias al imprimir muchas facturas (https://www.clubdelphi.com/foros/showthread.php?t=9901)

Salomon 05-05-2004 11:58:05

Varias copias al imprimir muchas facturas
 
muy buenas.

tengo un problemilla al imprimir un monton de facturas, y es que en algunas, no todas, tengo que hacer varias copias, el decir, para que quede mas claro, tengo una tabla de facturas, con un campo que COPIAS_FACTURA, que generalmente es 1, pero en algunos es 2 o mas, al imprimir tengo que imprimir el numero de copias que viene en el campo.

he probado a cambiar la propiedad
"QRFacturas.PrinterSettings.Copies := ADOQFacturas.FieldByName('COPIAS_FACTURA').AsInteger" en
tiempo de ejecucion, cocretamente en el evento
"BeforePrint" del QReport, y pasa bastante de mi.

alguien sabe como puedo hacerlo, o si de lo contrario no se puede, para no romperme mas la cabeza.

Un saludo

SALO

__cadetill 05-05-2004 12:22:55

Una pregunta

Las imprimes todas de golpe en el mismo listado o lanzas el listado por cada factura?

Si es lo primero, olvídate de usar la propiedad Copies, ya que eso sólo sirve para TODO el listado. Si lanzas el listado para cada factura, lo de Copies debería de funcionarte.

jachguate 05-05-2004 16:31:47

Suponiendo que lanzas un reporte por factura, yo creo que el evento BeforePrint no es el adecuado.

Supongamos que el código de QuickReport.Print es como sigue:

Código Delphi [-]
Procedure TQuickRep.Print;

Var
  i : Integer;

Begin
  for i := 1 to Copies do
  begin
    LanzarEventoBeforePrint;
    Imprimir;
  end;
end;

No funcionará cambiar copies en ese evento... en todo caso, en el ciclo que lanza la impresión, antes de llamar a print... alli si que debiera funcionar establecer el número de copias.

Hasta luego.

;)

Salomon 05-05-2004 16:59:14

Cita:

Empezado por cadetill
Una pregunta

Las imprimes todas de golpe en el mismo listado o lanzas el listado por cada factura?

Si es lo primero, olvídate de usar la propiedad Copies, ya que eso sólo sirve para TODO el listado. Si lanzas el listado para cada factura, lo de Copies debería de funcionarte.

las imprimo todas de golpe, en el mismo paquete, con una select * from....

lo que me quieres decir es que no hay solucion, que lo tengo que hacer aparte?, por que si es eso me espera un tinglao de lo ostia, pero!!, esa es la vida del programador, el usuario manda y nosotros .... le decimos que eso no se puede, jejejejeje, no es serio, me tendre que comer la cabeza para sacarlo, de todos modos muchas gracias

Un saludo

SALO!!

jachguate 06-05-2004 00:24:37

si tu base de datos es interbase/firebird... no está muy complidado hacer un stored procedure que te devuelva el número de registros requeridos para cada factura...

Hasta luego.

;)

marcoszorrilla 06-05-2004 07:55:03

Una solución como ya apunta el amigo Cadetill sería, una vez obtenidas las facturas a imprimir, no enviarlas todas en un informe, sino con un bucle de tal manera que se harían tantas llamadas como facturas hubiese, sino funcionara la opción "copies", simplemente pones un If y la que tenga 2 copias llamas 2 veces a quickreport.

Un Saludo.

Salomon 06-05-2004 14:16:22

Lo que dice jachguate parece buena idea, el problema es que nunca he creado un stored procedure y no se como se realiza. Investigare por ahi a ver si lo saco, de lo contrario tendre que hace lo que comenta marcoszorrilla, mandar las facturas en un bucle, aunque el problema es al visualizar e imprimirlas por ahi.

muchas gracias igualmente.

saludos

SALO

jachguate 06-05-2004 18:53:05

Cita:

Empezado por Salomon
Lo que dice jachguate parece buena idea

Te gatanrizo que no solo parece... lo es, y probablemente es lo que menos cambios provoque en tu aplicación. Un sutil cambio en el from del select... y listo.

Aqui en los foros hay algunos ejemplos y mucha información para crear un stored procedure que devuelva un DataSet.

La idea es anidar dos ciclos... un For Select con el query que ya tenes actualmente en tu Query actual... quizas con algunos parámetros... y dentro de este un ciclo que repita tantas veces como sea necesario cada factura.

Las relaciones maestro/detalle para imprimir las líneas seguirán funcionando tan bien como hasta ahora!!

En fin... ya te he dicho bastante.

Hasta luego.

;)


La franja horaria es GMT +2. Ahora son las 15:37:22.

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