PDA

Ver la Versión Completa : Exportando QRPs a PDFs


ruedabeat2003
22-05-2007, 23:53:02
Hola, tengo implementadas algunas instrucciones para que al momento de visualizar un Reporte(Impresion), pueda con un boton generar mi visualizacion en un Archivo de tipo PDF. Antes debo comentar que los reportes en mi sistema son visualizados con la ayuda de un un TQRPreview en una forma auxiliar, de tal forma que uso lo siguiente:

frmVistaPreliminar := TfrmVistaPreliminar.Create(Self);
frmVistaPreliminar.Caption:='VISTA PRELIMINAR ';
qrpReporte.Prepare;
frmVistaPreliminar.QRPreview1.Zoom := 100;
qrpReporte.QRPrinter.PreviewModal;

O sea que cualquier Reporto lo visualizo utilizando lo anterior mencionado.

En mi forma auxiliar de visualizacion tengo un boton que lo que hace es Exportar el QRP al formato PDF de la siguiente manera:

procedure TfrmVistaPreliminar.spdBtnPDFClick(Sender: TObject);
var
PDFFilt:TQRPDFDocumentFilter;
begin

PDFFilt := TQRPDFDocumentFilter.Create('Archivopdf.PDF');
frmReporte.qrpReporte.ExportToFilter(PDFFilt);
PDFFilt.Free;
end;

Esto actualmente solo sirve para uno solo de los reportes, el que estoy especificando. MI pregunta es respecto a si puedo, al momento de yo ejecutar el click en el boton, saber que QRP esta activo para de esta manera no tener que poner todos los diferentes casos de cada uno de los reportes del sistema, algo asi como 50 reportes. Mi forma de Visualizacion sabe que QRP esta activo? :confused: De esa forma puedo mandar a ejecutar cualquiera que la forma auxiliar este visualizando. :rolleyes:

keys
23-05-2007, 10:31:11
Me imagino que en el formulario que has creado para mostrar los informes tendras un objeto TQrPreview, a traves de el puedes acceder a el informe que esta visualizando.

vista.QrPrinter.ExportToFilter(PDFFilt);

Vista es el objeto TQrPreview

Un Saludo. Agur :)

karlaoax
23-05-2007, 16:42:55
Es un Post muy interesante, una pregunta ruedabeat2003 que componente tienes instalado para hacer que tu reporte se guarde en formato PDF ? :confused: Karla

ruedabeat2003
23-05-2007, 21:14:54
Hola, muchas gracias KEYS funcionò a la perfecciòn,:eek: finalmente mi rutina quedo asì:


procedure TfrmVistaPreliminar.spdBtnPDFClick(Sender: TObject);
var
PDFFilt:TQRPDFDocumentFilter;
Ruta:Pchar;
dir:String;
begin
if nombrePDF = '' then
begin
Ruta := StrAlloc(100);
GetCurrentDirectory(100,Ruta);
dir := strPas(Ruta)+'\';
SaveDialog1.InitialDir := dir;
SaveDialog1.FileName := 'NombreArchivo.PDF';
SaveDialog1.Filter := 'Archivos PDF |*.PDF';
try
if SaveDialog1.Execute then
nombrePDF := SaveDialog1.FileName;
if copy(nombrePDF, length(nombrePDF)-4,4) <> '.PDF' then
nombrePDF := nombrePDF + '.PDF';
except
On e : Exception do
begin
if e.ClassName = 'EInOutError' then
ShowMessage('Error en la creacion de Archivo, favor de verificar.');
end;
end;
end;
PDFFilt := TQRPDFDocumentFilter.Create(NombrePDF);
QRPreview1.QRPrinter.ExportToFilter(PDFFilt);
PDFFilt.Free;
end;

Solo me queda una duda, en este caso QRPrinter es del mismo tipo que un TQuickRep?, cualquier explicacion no esta de màs para mi, :rolleyes: gracias de antemano por la ayuda. :o

Respecto a la pregunta de Karlaoax, el componente y los filtros son parte del QuickReport v4.0. ;)

Saludos.

//Lo Edite para colocar etiquetas Delphi... jhonny

egostar
24-05-2007, 03:55:06
Respecto a la pregunta de Karlaoax, el componente y los filtros son parte del QuickReport v4.0. ;)

Pero esto es sólo en la versión profesional de QReport (http://www.qusoft.com/technical.html) o me equivoco?

Salud OS.

keys
24-05-2007, 10:50:51
El objeto Qrprinter no es del mismo tipo que TQuickRep, el primero es una propiedad del TQuickRep, que es el que se encarga una vez de generado el informe de imprimirlo, previsualizrlo, exportarlo, etc... Mas o menos :cool: .

Un Saludo.