Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Impresión (https://www.clubdelphi.com/foros/forumdisplay.php?f=4)
-   -   Problema al usar QRPreview (https://www.clubdelphi.com/foros/showthread.php?t=81337)

The_Duke 05-11-2012 17:09:13

Problema al usar QRPreview
 
1 Archivos Adjunto(s)
saludo estoy tratando de obterne una vista previa en un QRPreview y aun poniendo el codigo me sale la vista normal y no en el QRPreview el codigo que tengo es este:
Quickrep505


Este form tiene el QRPreview
Código Delphi [-]
procedure TForm1.SpeedButton1Click(Sender: TObject);
begin
Form2.QuickRep1.Preview;
end;

este tiene el reporte

Código Delphi [-]
procedure TForm2.QuickRep1Preview(Sender: TObject);
begin
//QuickRep1.Prepare;
Form1.QRPreview1.QRPrinter := quickRep1.QRPrinter;
end;




ecfisa 05-11-2012 18:52:19

Hola.

El componente TQRPreview no es para previsualizar sino para personalizar la previsualización. Te agrego el enlace a un artículo (documento .pdf) que explica su uso: Personalización de QuickReport.

Para previsualizar se utilizan los métodos Preview o PreviewModal del componente TQuickRep.

Saludos.

The_Duke 05-11-2012 21:29:48

gracias, en anteriores versines lo podia editar e reporte con este codigo en este evento

Código Delphi [-]
procedure TForm2.QuickRep1Preview(Sender: TObject); begin //QuickRep1.Prepare; Form1.QRPreview1.QRPrinter := quickRep1.QRPrinter; end;

pero aal parecer an modificado los componente y cambiaron la forma de operar de ellos

en esta imagen se muestra su antiguo funcionamiento


ecfisa 05-11-2012 22:51:22

Hola The_Duke.

Ahora, viendo la imágen, entiendo lo que deseas hacer. Te hice un ejemplo simple basado en la tabla biolife que viene con Delphi.
Como no sé que versión de Delphi estes usando y para asegurarme que lo puedas correr, también incorporé la tabla al adjunto. Es decir que descomprimiendo el archivo en una carpeta temporal tendrías que poder ejecutarlo sin problemas.

En la página del producto hay un poco más de información sobre el componente:
Saludos.

Lepe 06-11-2012 14:01:21

No sé que versiones estáis usando, pero la manera más simple es diciendo a QuickReport que vas a usar tu propia clase para previsualizar:

1º- RegisterPreviewClass(TQRCustomPreviewInterface); le dice a QuickReport qué clase tiene que crear para previsualizar los informes.

2º- Por supuesto tu clase tiene que heredar de TQRPreviewInterface. y ya QR llamará a Show o ShowModal (según el usuario utilice qr.Preview o qr.PreviewModal).


Código Delphi [-]
  TQRCustomPreviewInterface = class(TQRPreviewInterface)
  private
  public
    function Show(AQRPrinter: TQRPrinter): TWinControl;
    function ShowModal(AQRPrinter : TQRPrinter)  : TWinControl; override;
  end;

implementation


function TQRCustomPreviewInterface.ShowModal(AQRPrinter: TQRPrinter): TWinControl;
var
  frm : TPrevForm ;
begin
// este frm es mi ventana que dentro tiene un TQrPreview llamado "Prev"
  frm                     := TMiPresentacionPreliminar.Create( Application ) ;
  frm.Prev.QRPrinter := AQRPrinter ; 
  frm.ShowModal ;
  frm.Free;
end;

initialization
  RegisterPreviewClass(TQRCustomPreviewInterface);

A mí me funciona.

Saludos


La franja horaria es GMT +2. Ahora son las 19:43:16.

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