Estoy exportando un informe generado desde una BD en Firebird con QuickReport con Builder 6 y mediante este código:
Código:
void EmiteListado(TQuickRep *Informe, int Destino, int PrinterSelect)
{
[...]
cAux = ExtractFilePath(cEntorno) + "Informes\\" + UpperCase(Informe->ReportTitle + Now().FormatString("_hhnnss") + cExtInf[Destino - 2]);
try
{
if (ExtractFileExt(cAux) == ".PDF")
{
TQRPDFDocumentFilter *filtro = new TQRPDFDocumentFilter(cAux);
filtro->AddFontMap("Arial:Helvetica");
filtro->StartConcat();
Informe->ExportToFilter(filtro);
filtro->EndConcat();
delete filtro;
}
else if (ExtractFileExt(cAux) == ".XLS")
{
TQRXLSFilter *filtro = new TQRXLSFilter(cAux);
Informe->ExportToFilter(filtro);
delete filtro;
}
else if (ExtractFileExt(cAux) == ".RTF")
{
TQRRTFExportFilter *filtro = new TQRRTFExportFilter(cAux);
Informe->ExportToFilter(filtro);
delete filtro;
}
else if (ExtractFileExt(cAux) == ".TXT")
{
TQRAsciiExportFilter *filtro = new TQRAsciiExportFilter(cAux);
Informe->ExportToFilter(filtro);
delete filtro;
}
}
catch(...)
{
}
}
Uso esta función SIEMPRE que voy a emitir cualquier listado y me funciona bien en cualquier sitio de la aplicación menos en un listado concreto que, por otra parte, se emite bien si lo visualizo o lo mando directamente a imprimir. El error que da es este:
y tiene lugar cuando se ejecuta cualquiera de los Informe->ExportToFilter(filtro);