Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Impresión
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

 
 
Herramientas Buscar en Tema Desplegado
  #4  
Antiguo 07-06-2013
Avatar de santiago14
santiago14 santiago14 is offline
Miembro
 
Registrado: sep 2003
Ubicación: Cerrillos, Salta, Argentina
Posts: 585
Poder: 23
santiago14 Va por buen camino
Wink

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;
  //directorio_actual:string;
  h:TQRPHandler;
begin
  with Application, DataModule1 do
  begin
 //Código que no viene al caso, son las llamadas a sql's y voy armando los informes particulares
 
  end;
//Caravanas particulares para los informes particulares de los animales
  caravana_particular:=TStringList.Create;
  caravana_particular.Add('');
//Creamos el espacio para guardar las direcciones donde se guardan los .qrp
  reportes_previosQRP:=TStringList.Create;
//Creamos la estructura del directorio para guardar los archivos
  Crear_directorio('reportes');
  for i:=0 to (nros_caravana.Count - 1) do
  begin
  //Más sql's   

  //Me manda el reporte combinado a un archivo .qrp
    QRCompositeReport1.Prepare;
    TQuickRep(QRCompositeReport1.Reports.Items[0]).Printer.Save('reportes\Reporte' + IntToStr(i) + '.QRP');

    reportes_previosQRP.Add('reportes\Reporte' + IntToStr(i) + '.QRP');
  end;
//¡¡Aquí el gran truco!!
//El primer parámetro es donde se guarda el .qrp consolidado
  CombineQRP('reportes\Historia_clinica.qrp', reportes_previosQRP);
//Lo vemos en el preview
  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.
Archivos Adjuntos
Tipo de Archivo: zip QR3RNGD4.ZIP (15,6 KB, 6 visitas)
__________________
Uno es responsable de lo que hace y de lo que omite hacer.
Responder Con Cita
 


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Como detectar si se imprime un documento con QuickReport y QRComposite?? smacli Impresión 0 30-01-2006 21:35:54


La franja horaria es GMT +2. Ahora son las 04:49:09.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi