Después de tanto luchar, ¡llegamos a buen puerto!
Encontré la manera de hacerlo, lo cuento:
1) Generamos los .qrp, uno por cada informe independiente que tengo
2) Los guardamos en disco, cada uno con nombre. reporte0.qrp, reporte1.qrp, ... reporteN.qrp
3) Los levantamos y juntamos en un solo .qrp
4) Lo mostramos usando TQRPHandler de la unit QRExtra
¿Cómo hacemos el paso 3?
Resulta que hace algún tiempo la gente de qusoft armó una pequeña unidad llamada "QRQRP", que no es mas que un .pas común y lo puso en un archivo llamado QR3RNGD4.ZIP, lo podemos encontrar en:
http://www.quickreport.co.uk/webinfo...?WebInfoID=620
Este .zip tiene, entre otras cosas, un .pas (qrqrp.pas) donde encontramos un procedimiento llamado "combineQRP" que hace el trabajo. De igual manera, analizando un poco el procedimiento no lo hace de la manera convencional, usa TStream y otras cositas... pero eso es tema de debate posterior.
Para facilitar la cosa, subí a este post el .zip: QR3RNGD4.ZIP
En definitiva, el código quedaría así:
Código Delphi
[-]
procedure TFrmBuscarPesajes.componer_informe_completo(una_pagina_por_animal:Boolean);
var
i:Integer;
caravana_particular:TStringList;
reportes_previosQRP:TStringList;
h:TQRPHandler;
begin
with Application, DataModule1 do
begin
end;
caravana_particular:=TStringList.Create;
caravana_particular.Add('');
reportes_previosQRP:=TStringList.Create;
Crear_directorio('reportes');
for i:=0 to (nros_caravana.Count - 1) do
begin
QRCompositeReport1.Prepare;
TQuickRep(QRCompositeReport1.Reports.Items[0]).Printer.Save('reportes\Reporte' + IntToStr(i) + '.QRP');
reportes_previosQRP.Add('reportes\Reporte' + IntToStr(i) + '.QRP');
end;
CombineQRP('reportes\Historia_clinica.qrp', reportes_previosQRP);
h:=TQRPHandler.Create;
with h do
begin
FQuickrep.PreviewHeight:=700;
FQuickrep.PreviewWidth:=1050;
FQuickrep.PrevInitialZoom:=qrZoom100;
Filename:='reportes\Historia_clinica.qrp';
Preview;
Free;
end;
end;
Con esto resolví el dilema, mi cliente contento y las vaquitas preocupadas porque las probabilidades de ir al asador aumentan.
Saludos.