Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Impresión (https://www.clubdelphi.com/foros/forumdisplay.php?f=4)
-   -   Error al exportar un informe QR (https://www.clubdelphi.com/foros/showthread.php?t=90590)

Angel.Matilla 20-07-2016 12:29:21

Error al exportar un informe QR
 
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);

Angel.Matilla 20-07-2016 12:43:21

He seguido haciendo pruebas para ver si detectaba el error. Las opciones del listado se eligen en este formulario:

y me he dado cuenta que el error aparece siempre que se marca que sí se quiere resumen del listado. Y me sorprende porque exactamente el mismo informe es el que se usa en als dos primeras opciones.

Angel.Matilla 21-07-2016 13:11:34

Solucionado. Era una soberbia tontería. Al exportar un listado el formulario que lo contiene se pasas dos veces (no sé por qué). Entre ambas veces cambiaba el valor de una bariable y era lo que provocaba el error.


La franja horaria es GMT +2. Ahora son las 19:33:20.

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