PDA

Ver la Versión Completa : Quick Report A Pdf.


pakorochamx
19-11-2015, 18:40:50
Hola a todos:
Tengo el quick report 5.6 que estoy probando para hacer mis reportes y exportalo a PDF.
La cuestion es que no encuentro la clase TQRPDFDocumentFilter, ya he buscado en el directorio de instalacion y no esta. Saben que .h o .bpp tengo que agregar para que me funcione.
quiero hacer esta rutina, pero pues sin esta clase simplmente no me funciona.

if SaveDialog.Execute then begin
Cur := Screen.Cursor;
Screen.Cursor := crHourGlass;
FName := ChangeFileExt(SaveDialog.FileName,'');
// Según el tipo de archivo del SaveDialog (1=txt, 2=doc, 3=xls, 4=pdf, 5=html
case SaveDialog.FilterIndex of
1: QrPrinter.ExportToFilter(TQRPDFDocumentFilter.Create(FName+'.pdf'));
2: QrPrinter.ExportToFilter(TQRRTFExportFilter.Create(FName+'.rtf'));
3: QrPrinter.ExportToFilter(TQRXLSFilter.Create(FName+'.xls'));
4: QrPrinter.ExportToFilter(TQRGHTMLDocumentFilter.Create(FName+'.html'));
5: QrPrinter.ExportToFilter(TQRAsciiExportFilter.Create(FName+'.txt'));
end;
Screen.Cursor := Cur;
end;

De antemano les agradezco su ayuda.

Saludos.

AgustinOrtu
19-11-2015, 19:30:15
Yo lo hago de la siguiente forma:


uses
QRPDFFilt;

FImprimir := TFImprimir.Create(NIL); // form con el reporte
try
PDFExport := TQRPDFDocumentFilter.Create(RutaAlPdf);
try
FImprimir.Rep.ExportToFilter(PDFExport);
finally
PDFExport.Free;
end;
finally
FImprimir.Free;
end;

Casimiro Notevi
19-11-2015, 19:36:00
Hola a todos
Recuerda poner los tags al código fuente, ejemplo:

http://www.clubdelphi.com/images/UtilizarTAGs.png

Gracias :)

pakorochamx
20-11-2015, 16:41:56
Gracias por contestar Agustin.

Me duda es en donde va al use si en el .h o en el .cpp, pues ya he probado en los dos y me sigue marcando que no encuentra la clase TQPDFDocumentFilter, Esta clase esta integrada en el QRPDFFilt?

ah...estoy utilizando RadStudio XE6

Saludos y Gracias.

darkerbyte
21-11-2015, 21:09:36
Hola a todos:
Tengo el quick report 5.6 que estoy probando para hacer mis reportes y exportalo a PDF.
La cuestion es que no encuentro la clase TQRPDFDocumentFilter, ya he buscado en el directorio de instalacion y no esta. Saben que .h o .bpp tengo que agregar para que me funcione.
quiero hacer esta rutina, pero pues sin esta clase simplmente no me funciona.

if SaveDialog.Execute then begin
Cur := Screen.Cursor;
Screen.Cursor := crHourGlass;
FName := ChangeFileExt(SaveDialog.FileName,'');
// Según el tipo de archivo del SaveDialog (1=txt, 2=doc, 3=xls, 4=pdf, 5=html
case SaveDialog.FilterIndex of
1: QrPrinter.ExportToFilter(TQRPDFDocumentFilter.Create(FName+'.pdf'));
2: QrPrinter.ExportToFilter(TQRRTFExportFilter.Create(FName+'.rtf'));
3: QrPrinter.ExportToFilter(TQRXLSFilter.Create(FName+'.xls'));
4: QrPrinter.ExportToFilter(TQRGHTMLDocumentFilter.Create(FName+'.html'));
5: QrPrinter.ExportToFilter(TQRAsciiExportFilter.Create(FName+'.txt'));
end;
Screen.Cursor := Cur;
end;

De antemano les agradezco su ayuda.

Saludos.

Mmm segun veo este codigo esta en Delphi, porque en tu mensaje anterior preguntas por el codigo en .h o .cpp? estas usando también C en tu proyecto?

Bueno respecto a este código agrega "QRPDFFilt" al uses que esta después de interface (al principio de el codigo de tu form o unit). Claro si es que ya has trabajado con Quickreport y no te ha dado problema si no quizá tengas que agregar la carpeta de QR al path de delphi.

Yo diseñé mi propio Preview para QR y en el preview puse un botón que me exporta a PDF el reporte.


procedure TFormQRPreview.bt_pdfClick(Sender: TObject);
begin
SaveDialog.Title := 'Guardar como PDF';
SaveDialog.DefaultExt := '.pdf';
SaveDialog.Filter :='pdf';
if SaveDialog.Execute() then
if SaveDialog.FileName <> '' then QRPrev.QRPrinter.ExportToFilter(TQRPDFDocumentFilter.Create(SaveDialog.FileName));
end;


y me funciona perfectamente, sí que lo primero que quiero que revises es si estas generando el reporte antes de tu rutina donde lo exportas ya sea con un "QReporte.PreviewModal" o si uno usas previsualización con un ".QReporte.Prepare"

AgustinOrtu
21-11-2015, 21:27:15
Gracias por contestar Agustin.

Me duda es en donde va al use si en el .h o en el .cpp, pues ya he probado en los dos y me sigue marcando que no encuentra la clase TQPDFDocumentFilter, Esta clase esta integrada en el QRPDFFilt?

ah...estoy utilizando RadStudio XE6

Saludos y Gracias.


Proba soltar desde la paleta de componentes un PDFFilter y guardar. Ahi deberia incluirte las units correctas automaticamente (nunca use C++ :()

pakorochamx
23-11-2015, 22:25:07
Ya resolvi el problema, es correcto lo que me comentas de poner el filtro a pdf en la forma.
Me estaba dando dolor de cabeza ya que no sabia a que forma pertenecia el filtro si a la forma principal o a la forma del quick reporte y es del quick reporte.

Gracias por la ayuda.
Saludos.