Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Impresión (https://www.clubdelphi.com/foros/forumdisplay.php?f=4)
-   -   QuickReport activar/desactivar QrExpr segun pagina (https://www.clubdelphi.com/foros/showthread.php?t=88428)

marilinspi 05-06-2015 14:56:11

QuickReport activar/desactivar QrExpr segun pagina
 
Hola a todos, necesito que por ejemplo: un reporte de 5 paginas, de la pagina 1 a 4 me muestre un QrExpr
Código Delphi [-]
QrExpr1.enable=True
QrExpr2.enable=False

y en la pagina 5 me muestre otro

Código Delphi [-]
QrExpr1.enable=False
QrExpr2.enable=True

e probando en OnEndPage y OnStarPage, pero no llego al resultado que necesito, debe ser sencillo, solo que no encuentro donde ponerlo.... gracias desde ya.

ecfisa 06-06-2015 10:34:08

Hola marilinspi.

No sé como tenes organizada la impresión pero tendrías que evaluar el número de página en el evento OnPrint de cada TQRExpr y actuar en consecuencia.

Un ejemplo:
Código Delphi [-]
...
implementation 

var
  PgNumber: Integer;

// QRBand ejemplo donde residen los QRExpr
procedure TForm1.QRBand1BeforePrint(Sender: TQRCustomBand;
  var PrintBand: Boolean);
begin
  PgNumber := QuickRep1.QRPrinter.PageNumber;
  if PgNumber = 0 then PgNumber := 1;
end;

// Evaluar página para QRExpr1
procedure TForm1.QRExpr1Print(sender: TObject; var Value: String);
begin
  if PgNumber = 5 then       // ¿ Es pag. 5 ?
    Value := '';             // no mostrar valor de QRExpr1
end;

// Evaluar página para QRExpr2
procedure TForm1.QRExpr2Print(sender: TObject; var Value: String);
begin
  if PgNumber in [1..4] then  // ¿ Es pag. 1, 2, 3, 4 ?
    Value := '';              // no mostrar valor de QRExpr2
end;
...

Saludos :)

marilinspi 08-06-2015 14:44:57

muchas gracias Ecfisa por tu respuesta... lo termine solucionando así:

en el botón que llama el reporte:
Código Delphi [-]
  FormRep.QuickRep1.Prepare ;
  FormRep.Paginas := FormRep.QuickRep1.QRPrinter.PageCount ;
  FormRep.QuickRep1.Preview;

y después en el evento OnStartPage del QuickReport:
Código Delphi [-]
  
if  QuickRep1.QRPrinter.PageNumber=Paginas then
  begin
    QRESaldoParcial.Enabled:=False;
    QRESaldoFinal.Enabled:=True;
  end
  else
  begin
    QRESaldoParcial.Enabled:=True;
    QRESaldoFinal.Enabled:=False;
  end


La franja horaria es GMT +2. Ahora son las 08:58:52.

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