Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Impresión (https://www.clubdelphi.com/foros/forumdisplay.php?f=4)
-   -   QR ignora paginas sucesivas (https://www.clubdelphi.com/foros/showthread.php?t=88726)

hgiacobone 22-07-2015 18:27:02

QR ignora paginas sucesivas
 
1 Archivos Adjunto(s)
Entorno desarrollo: Windows 7 + Delphi 7 + QuickReport 5.02
Entorno operativo: Windows 7 / Windows Server (2008 & 2012) / impresoras: Samsung ML1640 / HP 4015
NOTA: Por las dudas, informo que no he realizado ninguna actualización de componentes.

Hola gente,
Aqui con otro caso extraño utilizando Quick Report.
En la imagen adjunta, se puede apreciar la generación de un reporte con 2 páginas. En este caso un comprobante de pago (factura) con "Original"+"Duplicado"
Hasta la vista previa (preview) vamos bien, tal cual se observa en el adjunto.
Ahora, el enviarlo a la impresora, sale solamente la PRIMERA página.
Si lo guardamos como archivo QRP, se guardan ambas páginas, pero al reabrir e imprimir, vuelve a enviar solamente la primera página como en el caso anterior.
En cambio, si guardamos el reporte como PDF, solamente guarda la SEGUNDA página.

Alguna idea?

hgiacobone 22-07-2015 20:33:16

*resuelto*
 
Bien, de pura casualidad, encontré una solución a pesar que la exportacion a PDF (desde la vista previa) sigue emitiendo una sola página.
Este es el código:
Código Delphi [-]
                      
                  MultiFE:= TStringList.Create;
                  Try
                      TempPath:= GetEnvironmentVariable('TEMP');
                      For i:= 1 to nCopias do
                      Begin
                        cSubf:= Format('Reporte_%d.qrp', [i] );

                        QRForm1.nTipoCopia:= i ;  //vars global dentro del reporte que cambia leyendas
                        QRForm1.QR1.Prepare;
                        with QRForm1.QR1.Printer do
                        begin
                          Save(TempPath +'\'+ cSubf);
                          MultiFE.Add(TempPath +'\'+ cSubf);
                        end;
                      end;                       
                     
                      with QRForm1.QR1.Printer do
                      begin
                            Cleanup;
                            CombineQRP(TempPath+'\MiReporte.qrp', MultiFE);
                            Load(TempPath+'\MiReporte.qrp');
                            FirstPage:= 1;
                            LastPage := nCopias;

                            if (lPreview)
                             then PreviewModal
                             else Print;

                            Cleanup; //libero reporte para poder borrarlo luego
                      end;
                      //Borrando temporales
                      For i:= 0 to MultiFE.Count-1 do DeleteFile(MultiFE[i]);
                      DeleteFile(TempPath+'\MiReporte.qrp');
                  Finally
                      MultiFE.Free;
                  End;

El secreto está en que, cuando se utiliza la combinación de documentos para crear un documento de múltiples páginas, hay que especificar valores a las propiedades FirstPage y sobre todo a LastPage para que la impresión se realice de la primera a la ultima. Sino, es como que queda en 1 to 1 aunque el comando QR1.Printer.Load cargue 100 reportes.
Supongo es un bug del QR.:confused:


La franja horaria es GMT +2. Ahora son las 19:35:21.

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