Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Impresión (https://www.clubdelphi.com/foros/forumdisplay.php?f=4)
-   -   Original, Duplicado triplicado (https://www.clubdelphi.com/foros/showthread.php?t=60343)

tulio 29-09-2008 14:02:23

Original, Duplicado triplicado
 
Hola Foro

Tengo un problema hace varios dias y no se como solucionarlo, hay que hacer una emision a un negocio de por ejemplo 100 recibos, pero tienen que salir con triplicado, y ponerle en la parte de abajo del recibo 'original' en el primero, 'duplicado' en el segundo y 'triplicado' en el tercero, y no se como hacerlo.
La opcion de poner en printsetting copies = a 3 no me soluciona porque no se como saber cual es el recibo original,duplicado etc

saludos y gracias

duilioisola 29-09-2008 14:22:45

Y si imprimes tres veces cada recibo?

tulio 29-09-2008 15:02:36

Primero gracias por responder, probe lo que decis vos, pero como son muchos recibos hay que hacer muchos print y no queda bien, yo queria saber si chequeando alguna variable podia poner desde el reporte la leyenda de original duplicado etc.

Si conocen algun modo se lo agradezco

saludos

mightydragonlor 29-09-2008 17:36:36

primero que todo deberias decirnos que reporteador estas usando, así es mas probable que te demos una respuesta.

Lepe 29-09-2008 17:39:19

Sin saber el generador de informe que usas es difícil, pero así a voz de pronto, yo crearía un parámetro donde le mandas el string.

Código Delphi [-]
var copias : array [0..2] of string = ('Original', 'Duplicado', 'Triplicado')
...
procedure Imprime;
begin
  for i:= low(copias) to high(copias)
  begin
    report.paramsbyname('copia').AsString := copias[i];
    report.print;
  end;

El truco estaría en no mostrar progreso mientras se imprime (así no sale el cartelito con la barra de progreso), Tampoco usarías presentación preliminar, simplemente envías a imprimir en segundo plano. Si lo quieres bien, puedes mostrar tu propia ventana que muestre una barra de progreso total.

Saludos

AzidRain 29-09-2008 19:39:57

Como dicen le falta el reporteador pero creo que tendria que escribir un manejador para el evento BeforePrint del reporte (al menos QuickReport si lo trae) y ahi verificar que numero de copia está imprimiéndose. Vamos es como imprimer el numero de página pero en su lugar poner las leyendas correspondientes.

tulio 29-09-2008 19:53:29

Gracias a los dos por responder

el reporteador es QuickReport, me gusto lo que dijo azidrain, como es que hay que ponerlo en el beforeprint del reporte, como se hace.

Muchas gracias.

Minio 07-11-2008 19:08:19

tulio podrías comentar que solucion le diste??? yo trato de hacer algo parecido pero no se bien como.

Gracias.

tulio 11-11-2008 10:56:40

Hola Minio

lo que termine haciendo fue imprimir tres veces el reporte y antes de cada impresion ponia, Original, Duplicado triplicado. Pero me gusta la propuesta que dio en este tema el compañero azidrain que no lo pude hacer

Saludos y Gracias

tulio

Minio 11-11-2008 13:15:41

Gracias por responder, al final logre sacarlo. Lo hice en el BeforePrint:

Código Delphi [-]
  case QuickRep1.PageNumber of
    0: QRLabel1.Caption := 'Original factura';
    1: QRLabel1.Caption := 'Copia de cortesia';
    2: QRLabel1.Caption := 'Copia contabilidad';
    3: QRLabel1.Caption := '';
  end;

He añadido un QRCompositeReport al que le añado informes según una variable donde guardo la cantidad de copias que quiero. En su evento OnAddReports pongo esto:
Código Delphi [-]
var
  NCopias: Integer;
begin
  NCopias := 0;
  while NCopias < Form1.CopiasFactura do
    begin
      QRCompositeReport1.Reports.Add(Form2.QuickRep1);
      NCopias := NCopias + 1;
    end;

Y para terminar en el botón imprimir esto:
Código Delphi [-]
Application.CreateForm(TForm2, Form2);
 QRCompositeReport1.Reports.Clear;
QRCompositeReport1.Prepare;
QRCompositeReport1.ExportToFilter(TQRPDFDocumentFilter.Create('Factura.pdf'));
Form2.Destroy;
ShellExecute(FmFacCli.Handle, nil, PChar('Factura.pdf'),'', '', SW_SHOWNORMAL);

Con esto ultimo genero la factura la guardo como PDF con la ayuda del componente QRPDFFilter y lo abro con Acrobat Reader y me sale directamente, y tengo guardada una copia en disco.

Bueno gracias a todos.


La franja horaria es GMT +2. Ahora son las 12:00:07.

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