Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 18-09-2012
Walterio Walterio is offline
Miembro
 
Registrado: nov 2006
Posts: 46
Poder: 0
Walterio Va por buen camino
Qreport, composite y cambios en qrlabel

Hola gente.
Estoy usando Delphi 6 y QReport.
Lo que quiero hacer es lo siguiente:
Tengo un reporte que ocupa media página A4 de la cual necesito hacer cuatro copias del reporte, es decir, dos copias del reporte en una hoja, por lo que tendría dos hojas con cuatro copias del reporte.Hasta ahi todo sale bien, el problema es que necesito poner al pié de cada reporte, un qrlabel, o lo que sea necesario con la leyenda, "Original","Copia", "Duplicado" y "Triplicado".
El problema es que con el composite, no puedo "tocar" previamente cada reporte antes de agregarlo al composite, ¿se entiende?.
No estoy en la oficina en este momento como para adjuntar el código donde hago el composite, pero creo que es claro lo que necesito y la pregunta es cómo hacerlo, pero si es necesario, adjunto mi código.

Desde ya, muchas gracias.
Responder Con Cita
  #2  
Antiguo 18-09-2012
MartinS MartinS is offline
Miembro
NULL
 
Registrado: nov 2011
Ubicación: Villa Cacique - Argentina
Posts: 283
Poder: 13
MartinS Va por buen camino
Hola Walterio: No tengo idea cuales son los Qreport que estas usando pero suponiendo que es uno solo que se repite cuatro veces podrias hacer asi:

Defini una variable (yo lo puse copia).
Aqui le asignas el valor a la variable

Código Delphi [-]
procedure TForm2.FormCreate(Sender: TObject);
begin
  Copia := 1;
end;

Aqui se agregan el mismo Qreport (QuickRep1) una y otra vez... Ojo no se si usas solo uno repetido o varios

Código Delphi [-]
procedure TForm2.QRCompositeReport1AddReports(Sender: TObject);
begin
   QRCompositeReport1.Reports.Add(QuickRep1);
   QRCompositeReport1.Reports.Add(QuickRep1);
   QRCompositeReport1.Reports.Add(QuickRep1);
   QRCompositeReport1.Reports.Add(QuickRep1);
end;

Antes de imprimir (Evento del Qreport), en este caso como es por QrComposite, antes de enviar al composite, miro el valor de copia y le asigno el texto correspondiente al Qrlabel

Código Delphi [-]
procedure TForm2.QuickRep1BeforePrint(Sender: TCustomQuickRep;
  var PrintReport: Boolean);
begin
  case Copia of
    1: QRLabel1.Caption := 'Original';
    2: QRLabel1.Caption := 'Copia';
    3: QRLabel1.Caption := 'Duplicado';
    4: QRLabel1.Caption := 'Triplicado';
  end;
end;

Despues que lo envio (Siempre del Qreport) incremento el valor de la variable copia

Código Delphi [-]
procedure TForm2.QuickRep1AfterPrint(Sender: TObject);
begin
  Inc(Copia);
end;

Saludos.-

PD: No se si es la mejor forma de hacerlo pero hice una pequeña prueba y mas o menos se adapta a lo que solicitas de acuerdo a mi imaginacion... Espero que te sirva y si no con mas datos veremos que podemos hacer.-
Responder Con Cita
  #3  
Antiguo 18-09-2012
Walterio Walterio is offline
Miembro
 
Registrado: nov 2006
Posts: 46
Poder: 0
Walterio Va por buen camino
Muchas gracias MartinS por la respuesta.
Tu ejemplo me solucionó el problema (no sé porqué no se me pasó por la cabeza usar el BeforePrint, era simple).
Efectivamente, como suponés, son cuatro copias de un mismo reporte que me entran dos por página.
El único cambio que tuve que hacer es poner el Inc(Copia) después del Case del BeforePrint :

Código Delphi [-]

 case nCopias of
    1: lblTipoCopia.Caption := 'Original';
    2: lblTipoCopia.Caption := 'Duplicado';
    3: lblTipoCopia.Caption := 'Triplicado';
    4: lblTipoCopia.Caption := 'Cuadruplicado';
  end;

  Inc(nCopias);

ya que en el AfterPrint (quién sabe el porqué) no se ejecuta.

Al imprimir sale todo bien, pero me pareció ver que en el Preview no funciona como deberia ya que me mostró las 4 etiquetas iguales.
Pruebo nuevamente y comento, pero al menos las impresiones resultaron exitosas.

Nuevamente, muchísimas gracias.

Saludos.
Responder Con Cita
  #4  
Antiguo 18-09-2012
MartinS MartinS is offline
Miembro
NULL
 
Registrado: nov 2011
Ubicación: Villa Cacique - Argentina
Posts: 283
Poder: 13
MartinS Va por buen camino
Hola nuevamente:
lo acabo de probar poniendo el incremento despues del case y funciona igual. El unico detalle es que la banda donde tengo la etiqueta que te muestra los resultados es del tipo summary (no se si tendra algo que ver) y la variable copia la asigno cuando se crea el formulario que soporta al Qreport.-

Saludos

Edito: Leo con detenimiento tu mensaje y dice que esta solucionado así que no tomes en cuenta lo que escribí arriba . Suerte!!

Última edición por MartinS fecha: 18-09-2012 a las 17:22:23.
Responder Con Cita
  #5  
Antiguo 18-09-2012
Walterio Walterio is offline
Miembro
 
Registrado: nov 2006
Posts: 46
Poder: 0
Walterio Va por buen camino
Hola MartinS.
La famosa etiqueta yo la tengo en una banda del tipo child de la banda del tipo summary que la uso como pié del reporte, habría que probarlo, pero está funcionando perfectamente.De todas formas, lo pruebo según me decís así me saco la duda, pero ya está funcionando correctamente.

Mil gracias nuevamente.

Saludos.
Responder Con Cita
Respuesta



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
QuickReport Composite nachomdq Impresión 1 18-12-2010 17:50:18
Orientacion en composite reporte Vlady Impresión 2 30-12-2008 17:28:54
Debo utilizar QR composite! deyanira90 Impresión 2 14-08-2008 22:47:57
Probleas con el Composite Reports paladincubano Impresión 2 27-01-2008 20:07:56
Patrones GoF: Composite y Observador Delphius OOP 4 31-08-2007 19:09:02


La franja horaria es GMT +2. Ahora son las 20:03:53.


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