Ver Mensaje Individual
  #8  
Antiguo 15-12-2009
bubba bubba is offline
Miembro
 
Registrado: jul 2008
Posts: 15
Reputación: 0
bubba Va por buen camino
Hola,

Para recuperar un fichero QRP, como te dicen, desde el formulario que se crea al hacer un Preview desde cualquier QuickReport lo puedes hacer.

Entiendo que a lo mejor no tienes un listado para que salga en el Preview, yo me encontré en esa situación y lo único que hice para construirme un Visualizador de QuickReports es crear un formulario con un QuickReport, en el FormCreate puse:

QuickRep1.Visible := False;

La propiedad PrintIfEmpty la puse a True y un botón [Visualizar], y en el evento OnClick hago un QuickRep1.Preview y me sale el Preview estándar de QuickReport, pero sin mostrarme nada y pulsando el botón de abrir el usuario puede abrir cualquier fichero QRP.

Si quieres utilizar el TQRPreview, entonces lo que harás es sustituir el formulario que se crea dinámicamente por el QuickReport, yo tengo uno propio y evidentemente te lo has de "currar" tú todo, puse una ToolBar con los botones necesarios (página Primera|Anterior|siguiente|Última, imprimir, Ampliar, etc), y por supuesto un componente TQRPreview.

Para usuar mi formulario de previsualización, en el evento OnPreview de cualquier QuickReport, escribo lo siguiente:

procedure TForm1.QuickRep1Preview(Sender: TObject);
begin
FormVisualizarQR.qrpListado.QRPrinter := TQRPrinter(Sender);
FormVisualizarQR.Show;
end;

Y en el evento OnShow del formulario que utilizo para previsualizar tengo lo siguiente:

procedure TFormVisualizarQR.FormShow(Sender: TObject);
begin
WindowState := wsMaximized;
Caption := qrpListado.QRPrinter.Title;
qrpListado.QRPrinter.PreviewModal;
end;

Y automáticamente me aparece el formulario por mí diseñado con la previsualización del QuickReport .

En tu caso, deberías tener un botón que sirva para "Leer QuickReport",
y deberias escribir esto en el evento OnClick de dicho botón (en mi caso es un TToolButton):

procedure TVISQR.ToolButton6Click(Sender: TObject);
begin
qrpListado.QRPrinter.Load('C:\LISTADO.QRP');
qrpListado.QRPrinter.Preview;
end;


Espero haberte ayudado, yo lo he probado y me ha funcionado.

Saludos
Responder Con Cita