PDA

Ver la Versión Completa : Problema al usar QRPreview


The_Duke
05-11-2012, 17:09:13
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

procedure TForm1.SpeedButton1Click(Sender: TObject);
begin
Form2.QuickRep1.Preview;
end;


este tiene el reporte


procedure TForm2.QuickRep1Preview(Sender: TObject);
begin
//QuickRep1.Prepare;
Form1.QRPreview1.QRPrinter := quickRep1.QRPrinter;
end;




http://www.clubdelphi.com/foros/data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAABs0lEQVQ4jY2SP4viQBiHX0UQWz/AXb+VX8Iu/YqFhdhcd5BKEOTKC9jJFYrFgo3FIjYiCRauhTCQDMp4bJFklzCuLJLOWNj8rpDMJt7u7Q08xQzze953/hAR0el4QJLw8KR4fXkE/Wtch01zjP6gmxLsd9uPJafjAf1BF82WjmZLR61eRa1eVfNmS4cMxP8JksGk6FPB6XjAii1Qq1fBBYMMBL79+InvDIrbB0CzIpSmQ HF0RnF0vkiTFxZX7A+6MOzwU0FxdEZKYJpj1fp1eO5KzF0JzYreF/iekzr77QMUhh2q1zDsUIULPQl6fXkEFww53cWKLWCaY3DBVMuaFWHuSsT7fM/5W5DTXYUMBGQgUJoCpelFst9tcc84DDuE7znQrAiFnrwIkuGY/W6rBIYdQgYC7RmHZkXwPQf3jL8JiCglISLKVCaqzfhZfc9RcMFwc/eMfGd9EWQbS+R0F9nGEtnGEpnKBJnKJFWxPNygPNygPePggqE942nBdTjG9xyUhxvVcqEnsWILrNjiTfCRJN9ZI99Zp8LxWsy73z tTmYCI6ObuGV/7Tym+/PqtICL6A7F/dNYyWabFAAAAAElFTkSuQmCC

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 (http://www.grupoalbor.com/descargas/articulos/30-personalizacion-de-quickreport/download.html).

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


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

http://img38.imageshack.us/img38/9374/imgwnw.jpg

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:

quickreport - TQRPreview (http://www.quickreport.co.uk/webinfopage.aspx?WebInfoID=678)
Controlling the preview (http://www.quickreport.co.uk/webinfopage.aspx?WebInfoID=633)


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).



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