Buenos días. No sé si el título no será un poco confuso; a ver si logro explicarme.
Tengo esta función:
Código:
bool ExportaListado(TQuickRep *Informe, AnsiString cInforme)
{
try
{
if (UpperCase(ExtractFileExt(cInforme)) == ".PDF")
{
TQRPDFDocumentFilter *filtro = new TQRPDFDocumentFilter(cInforme);
filtro->AddFontMap("Arial:Helvetica");
Informe->ExportToFilter(filtro);
delete filtro;
}
else if (UpperCase(ExtractFileExt(cInforme)) == ".RTF")
{
TQRRTFExportFilter *filtro = new TQRRTFExportFilter(cInforme);
Informe->ExportToFilter(filtro);
delete filtro;
}
else if (UpperCase(ExtractFileExt(cInforme)) == ".TXT")
{
TQRAsciiExportFilter *filtro = new TQRAsciiExportFilter(cInforme);
Informe->ExportToFilter(filtro);
delete filtro;
}
else if (UpperCase(ExtractFileExt(cInforme)) == ".XLS")
{
TQRXLSFilter *filtro = new TQRXLSFilter(cInforme);
Informe->ExportToFilter(filtro);
delete filtro;
}
}
catch(...)
{
DeleteFile(cInforme);
Mensaje(1, "Ha tenido lugar un error en la exportación del listado.", "Continuar");
return false;
}
return true;
}
que uso en diversos sitios de una aplicación para emitir los informes diseñados con QuickReport. Sin embargo hay casos en los que un informe está compuesto por varios QR diferentes que gestiono con un TQRCompositeReport a la hora de visualizar o imprimir, pero cuando tengo que exportar esos informes no puedo usar esta función porque hay más de TQuickReport. Ahora, ya que con el TQRCompositeReport no me funciona la llamada a esa función, lo hago así:
Código:
try
{
TQRPDFDocumentFilter *filtro = new TQRPDFDocumentFilter(cInforme);
filtro->AddFontMap("Arial:Helvetica");
filtro->StartConcat();
fIndSed->qIndSed->ExportToFilter(filtro);
fRecSed->qRecSed->ExportToFilter(filtro);
filtro->EndConcat();
delete filtro;
if (MoveFileEx(cInforme.c_str(), (AnsiString(cEntorno) + "Informes\\" + ExtractFileName(cInforme)).c_str(), MOVEFILE_REPLACE_EXISTING) == 0)
throw("");
Mensaje(4, "Se ha creado el informe " + ExtractFileName(cInforme) + "\nen la carpeta " + AnsiString(cEntorno) + "Informes", "Continuar");
}
catch(Exception &Exc)
{
Screen->Cursor = crArrow;
Mensaje(-1, "Ha tenido lugar un error en la generación del documento " + ExtractFileName(cInforme) + "\n" +
Exc.Message + "¦" + ExtractFileName(AnsiString(__FILE__)) + FormatFloat("' - '0", __LINE__), "Continuar");
DeleteFile(cInforme);
cInforme = "";
}
Mi pregunta es la siguiente: ¿Cómo podría pasar a la función de arriba ExportaListado en vez de la referencia de un único TQuickReport una lista de todos los que necesito exportar? No sé si he logrado explicarmen bien.