PDA

Ver la Versión Completa : QuickReport v4.04 Professional


edy_aca
07-06-2005, 16:45:36
hola de antemano muchas gracias. en la empresa en la que trabajo tienen el QuickReport v4.04 Professional mi problema consiste en que no se como exportar un reporte tal cual como se ve en la vista previa a Excel.

muchas gracias de nuevo por su valiosa ayuda

sitrico
07-06-2005, 21:28:05
La "exportación" de QuickReport no genera precisamente "un reporte tal cual como se ve en la vista previa" pero yo lo genero de esta forma:


Procedure TCustomQRep.ExportarArchivo;
Var
fName : String;
Cur : TCursor;
Begin
SaveDialog.FileName := ReportTitle;
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: ExportToFilter(TQRAsciiExportFilter.Create(FName+'.txt'));
2: ExportToFilter(TQRRTFExportFilter.Create(FName+'.doc'));
3: ExportToFilter(TQRXLSFilter.Create(FName+'.xls'));
4: ExportToFilter(TQRPDFDocumentFilter.Create(FName+'.pdf'));
5: ExportToFilter(TQRGHTMLDocumentFilter.Create(FName+'.html'));
End;
Screen.Cursor := Cur;
End;
End;

edy_aca
07-06-2005, 23:48:07
muchas gracias amigo pero que crees me marca error
(lo deje solo asi para probar)

*****************************************
procedure TFVENTAS.Button2Click(Sender: TObject);
Var
fName : String;
Cur : TCursor;
Begin
SaveDialog.FileName := 'ReportTitle';
If SaveDialog.Execute Then
Begin
Cur := Screen.Cursor;
Screen.Cursor := crHourGlass;
FName := ChangeFileExt(SaveDialog.FileName,'.xls');
reporte_1.Reporte_a.ExportToFilter(reporte_1.QRExcelFilter.Create(FName+'.xls'));
Screen.Cursor := Cur;
End;
End;
******************************************

En esta linea

reporte_1.Reporte_a.ExportToFilter(reporte_1.QRExcelFilter.Create(FName+'.xls'));

[Error] pventas.pas(361): Incompatible types: 'TComponent' and 'String'

reporte_1 = es el nombre del form donde esta el quikreport
Reporte_a = es el nombre del quikreport

nota puse el objeto QRExcelFilter (con ese nombre) sobre del quickreport

sitrico
08-06-2005, 17:32:50
Creo que tienes un problema con la definición del reporte dentro de un formulario (yo creo los reportes directo File->New-> Report).

De cualquier manera no es necesario incluir los componentes de importación (QRExcelFilter), basta con incluir las unidades correspondientes:


Uses ....., QRExport, QRExtra, QRPDFFilt, QRWebFilt


la línea:


ExportToFilter(TQRXLSFilter.Create(FName+'.xls'));


Usa TQRXLSFilter que no es un componente del reporte sino un objeto de la unidad QRExport.

Prueba cambiar la línea:

reporte_1.Reporte_a.ExportToFilter(reporte_1.QRExcelFilter.Create(FName+'.xls'));

por:

reporte_1.Reporte_a.ExportToFilter(TQRXLSFilter.Create(FName+'.xls'));

y Borra el componente QRExcelFilter.

edy_aca
09-06-2005, 16:51:37
muchas gracias tenias mucha razon lo he hecho como me dices y funciona muy bien muchas gracias de nuevo