Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   C++ Builder (https://www.clubdelphi.com/foros/forumdisplay.php?f=13)
-   -   Pasar una lista de formularios (https://www.clubdelphi.com/foros/showthread.php?t=95179)

Angel.Matilla 06-05-2021 11:32:55

Pasar una lista de formularios
 
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.


La franja horaria es GMT +2. Ahora son las 20:16:59.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi