Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Impresión (https://www.clubdelphi.com/foros/forumdisplay.php?f=4)
-   -   Numerador de hojas en el Beforeprint (https://www.clubdelphi.com/foros/showthread.php?t=91627)

ingel 22-03-2017 14:55:18

Numerador de hojas en el Beforeprint
 
Buendia a todos , utilizo QReport y estoy tratando de numerar las hojas de un reporte desde un Nº x que ingreso manualmente . El Nro de hoja lo voy incrementando en el BeforePrint , el problema que tengo es que cuando se hace el Preview pasa x el beforeprint y lo incrementa bien y se ve bien , pero cuando lo mando a imprimir VUELVE A PASAR por el beforeprint y me sigue incrementando el numero de hoja y se imprime mal..
por ej. Inicio en Nro hoja = 5 ..
voy a imprimir 2 hojas ... en el preview veo Nº hojas 5 y 6 ( correcto ) , pero al imprimir me imprime la 7 y la 8 ( incorrecto )
No logro encontrar como hacer para que pase una sola vez por el beforeprint o no se si lo pedo solucionar de otra manera..
Lei en otros hilos algunas situaciones parecidas , pero no logre solucionarlo..

gracias ..

ecfisa 22-03-2017 19:55:12

Hola.

Intenta al modo de este ejemplo:
Código Delphi [-]
// BeforePrint, iniciar contador de páginas
procedure TForm1.QuickRep1BeforePrint(Sender: TCustomQuickRep;
  var PrintReport: Boolean);
begin
  FPageNo := 1;  // (*)
end;

// OnStartPage mostrar contador en etiqueta e incrementarlo
procedure TForm1.QuickRep1StartPage(Sender: TCustomQuickRep);
begin
  QRLabel2.Caption := IntToStr( FPageNo );
  Inc( FPageNo );
end;
(*) En el ejemplo FPageNo es una variable privada de TForm1.

Saludos :)

ingel 23-03-2017 14:19:28

Hola ecfisa , gracias por tu respuesta...
Probe lo que me indicaste , pero sigue comportandose de la misma forma.. Hago el preview y lo veo bien y
al imprimir pasa nuevamente por ese evento y me incrementa el numerador...

Sabes si tengo alguna forma en el QReport de saber si estoy en modo Preview o en Print al recorrer un evento ?
Gracias

ecfisa 23-03-2017 17:11:00

1 Archivos Adjunto(s)
Hola.

Es muy extraño lo que te sucede ya que el evento TQuickRep.BeforePrint se dispara con el método Print tanto como con el método Preview, por lo que la variable que contabiliza las páginas se inicializa en ambos casos.

Hice una prueba muy básica para que puedas corroborar el comportamiento que te describí antes. Te adjunto los fuentes de la misma mas la tabla country.db (que viene con Delphi) para que puedas revisarla con tranquilidad.
Solo crea una carpeta, descomprime el adjunto allí y compílalo, espero te sirva de ayuda.

Saludos :)

ingel 28-03-2017 15:55:18

Gracias Ecfisa ..
Lo solucione con una par de variables de control que puse en los eventos que me indicaste ..


La franja horaria es GMT +2. Ahora son las 12:44:17.

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