Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

 
 
Herramientas Buscar en Tema Desplegado
  #8  
Antiguo 24-11-2007
Avatar de salvica
salvica salvica is offline
Miembro
 
Registrado: mar 2004
Ubicación: Albacete (España) ... En un lugar de la Mancha ...
Posts: 304
Poder: 23
salvica Va por buen camino
Hola chavi, yo lo hago de la siguiente forma:
- Tengo un formulario para cada informe a incluir en el Composite.
- Tengo un formulario con el Composite. (en el uses deben estar los anteriores)
- Tengo un formulario principal con un botón, en el cual:
a) - Creo los forms a utilizar en el composite
b) - En cada formulario puse un procedimiento público, para que rellene el Dataset que le corresponda y lo llamo después de crear el form correspondiente
c) - Llamo al Composite para que genere el informe completo
d) - Cuando vuelve de imprimir, cierro los Dataset
e) - Elimino los forms

El composite, en su procedimiento solo tiene:
Código Delphi [-]

uses
  frmQReportTitulo,   { Form_QReportTitulo   }
  frmQReportExtremas, { Form_QReportExtremas }
  frmQReportPresion,  { Form_QReportPresion  }
  frmQReportNubes,    { Form_QReportNubes    }
  frmQReportCifrado;  { Form_QReportCifrado  }

{$R *.dfm}

procedure TForm_QReportDatos.QRCompositeReport_OnAddReports(
  Sender: TObject);
begin
{ añadir informes a la hoja }
  with QRCompositeReport do begin
       Reports.Add( Form_QReportTitulo.QuickRep_TITULO     );
       Reports.Add( Form_QReportExtremas.QuickRep_EXTREMAS );
       Reports.Add( Form_QReportPresion.QuickRep_PRESION   );
       Reports.Add( Form_QReportNubes.QuickRep_NUBES       );
       Reports.Add( Form_QReportCifrado.QuickRep_CIFRADO   );
  end;
end;
Y el evento OnClick del botón de form principal (es un poco largo, pero bueno)
Código Delphi [-]

procedure TForm_Impresion.Button__OnClick(Sender: TObject);
begin
{ impresion de los cuadernos }
  if( FormatDateTime('dd', FECHA_HOJA)='01' ) then begin
      MsgBox( 'IMPRESIÓN DE PORTADAS',
              'Se va a imprimir la portada del cuaderno'+OS_CRLF2+
              'Si desea utilizar una cartulina, pongala en la impresora.'+OS_CRLF2+
              'Pulse el botón para comenzar imprimir...',
               btnAccept, smbAtencion, btnAccept );
    { impresion de la portada del cuaderno }
      Application.CreateForm(TForm_QReportPortada, Form_QReportPortada);
      with Form_QReportPortada do begin
           RellenarPortada( DIR_MAIN+OS_Separador+USUARIO+OS_Separador, FECHA_HOJA );
           QuickRep__Portada.Preview;
           Free;
      end;
  end;
{ crear los forms que compondrán la página }
  Application.CreateForm(TForm_QReportTitulo, Form_QReportTitulo);
  with Form_QReportTitulo do begin
       PonerTituloAlInforme(       FECHA_PARTE, HAY_MYSQL,
                                   DIR_MAIN+OS_Separador+USUARIO+OS_Separador );
  end;
  Application.CreateForm(TForm_QReportExtremas, Form_QReportExtremas);
  with Form_QReportExtremas do begin
     { en el informe de EXTREMAS }
       AbrirDatasetExtremas( FECHA_HOJA, HAY_MYSQL,
                                   DIR_MAIN+OS_Separador+USUARIO+OS_Separador );
  end;
  Application.CreateForm(TForm_QReportPresion, Form_QReportPresion);
  with Form_QReportPresion  do begin
     { en el informe de PRESION  }
       AbrirDatasetPresion(  FECHA_HOJA, HAY_MYSQL,
                                   DIR_MAIN+OS_Separador+USUARIO+OS_Separador );
  end;
  Application.CreateForm(TForm_QReportNubes, Form_QReportNubes);
  with Form_QReportNubes do begin
     { en el informe de NUBES  }
       AbrirDatasetNubes(    FECHA_HOJA, HAY_MYSQL,
                                   DIR_MAIN+OS_Separador+USUARIO+OS_Separador );
  end;
  Application.CreateForm(TForm_QReportCifrado, Form_QReportCifrado);
  with Form_QReportCifrado do begin
     { en el informe de CIFRADO  }
       AbrirDatasetCifrado(  FECHA_HOJA, HAY_MYSQL,
                                   DIR_MAIN+OS_Separador+USUARIO+OS_Separador );
  end;
{ impresion de los datos de la hoja del cuaderno }
  Application.CreateForm(TForm_QReportDatos, Form_QReportDatos);
  with Form_QReportDatos do begin
       QRCompositeReport_.Preview;
       Free;
  end;
{ eliminar los forms que compondrán la página }
  with Form_QReportTitulo do begin
       Free;
  end;
  with Form_QReportExtremas do begin
       CerrarDatasetExtremas( HAY_MYSQL );
       Free;
  end;
  with Form_QReportPresion  do begin
       CerrarDatasetPresion(  HAY_MYSQL );
       Free;
  end;
  with Form_QReportNubes    do begin
       CerrarDatasetNubes(    HAY_MYSQL );
       Free;
  end;
  with Form_QReportCifrado  do begin
       CerrarDatasetCifrado(  HAY_MYSQL );
       Free;
  end;
end;
Espero que te sirva

Saludos
Salvica
Responder Con Cita
 



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
Unir imagenes jpg alain Gráficos 6 09-04-2008 22:10:29
Unir dos informes - Crystal Reports TONIAM Impresión 2 04-07-2006 16:18:57
Unir dos DBgrids Nbull Conexión con bases de datos 2 02-02-2006 09:19:00
Unir tres qry alcides SQL 6 11-07-2005 17:34:33
Unir Columnas vtdeleon SQL 4 15-06-2005 00:34:49


La franja horaria es GMT +2. Ahora son las 00:22:56.


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