PDA

Ver la Versión Completa : QR ignora paginas sucesivas


hgiacobone
22-07-2015, 18:27:02
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
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:

MultiFE:= TStringList.Create;
Try
TempPath:= GetEnvironmentVariable('TEMP');
For i:= 1 to nCopias do
Begin
cSubf:= Format('Reporte_%d.qrp', );

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 [I]QR1.Printer.Load cargue 100 reportes.
Supongo es un bug del QR.:confused: