Dentro del evento onAddReports tengo lo siguiente:
delphi
with QRCompositeReport.Reports do begin Add(qrReporte1); Add(qrReporte2); end;
La forma para imprimir los reportes es dentro de 1 ciclo, con el fin de que la 1era impresión salga la leyenda ORIGINAL y las otras 2 diga COPIA:
delphi
.. // Asigna valores a etiquetas (qrLabel ) ejemplo qrLabel1.Caption := 'Cliente:' PreparaQRLabel; // Iniciamos Ciclo for x := 1 to 2 do begin // Original if x = 1 then QRCompositeReport.PrinterSettings.Copies := 1 // Original else QRCompositeReport.PrinterSettings.Copies := 2; // Copias // Preparar Reporte para tomar el Num de páginas qrReporte1.Prepare; NPages := qrReporte1.QRPrinter.PageCount; // Imprimimos QRCompositeReport.Print; end;
En ocasiones imprime muy bien las 3 impresiones, pero en otras no, marca el error que les señalo en la imagen adjunta a este tema, y cuando marca el error solo imprime la ORIGINAL, el error salta dentro de la función del QRPrinter:
delphi
function TCustomQuickRep.PrepareQRPrinter : boolean; var aReceiver : TWinControl; begin Result := Available; if Result then begin if assigned(FQRPrinter) then AReceiver := QRPrinter.Client [b]<<- Aqui es donde marca el error[/b] else AReceiver := nil; // standard printer option QRPrinter := TQRPrinter.Create( self ); QRPrinter.Client := AReceiver; QRPrinter.AfterPreview := PreviewFinished; QRPrinter.AfterPrint := PrintFinished; end; end;