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 15-12-2009
bubba bubba is offline
Miembro
 
Registrado: jul 2008
Posts: 15
Poder: 0
bubba Va por buen camino
Reto en QuickReport - Formulario duplicado en 1 página

Hola compañeros de penurias,

La verdad es que hace mucho tiempo que utilizo QuickReport y "he salido" casi de todo, pero hoy me han planteado un problema que no le veo solución, os comento.

La aplicación imprime los albaranes en matricial, en papel A5 (15 cm), y ahora desean cambiar la impresora por una láser (ya era hora!), y desean imprimir en papel A4 con una línea de microcorte en la mitad de la hoja y me plantean que el albarán (cabecera, detalle y pie), lo imprima en la parte superior del corte y como copia en la parte inferior del corte.

Pensándolo con QuickReport, a la que acabe el pie en la primera mitad, me va a hacer un salto de página.

He hecho pruebas con TQRCompositeReport (nunca lo había probado), y he conseguido imprimir dos reports, pero claro, de la forma que trabaja, hace una cabecera, las líneas del primer report y las líneas del segundo report a continuación. Yo no quiero eso, me interesa que tanto la cabecera, como el detalle ("n" líneas), como el pie, se repitan en la parte superior del impreso, como en la parte inferior del impreso, vamos, una copia imagen.

¿ Alguna sugerencia ?

(Al cliente le he comentado que lo mejor es hacer los formularios en A5, que creo que con una láser no tendrá problemas para cargarlos y ya está, imprimiré dos veces el report, pero me he quedado con la curiosidad).

Muchas gracias por aguantar el tocho!!

Saludos
Responder Con Cita
  #2  
Antiguo 15-12-2009
Avatar de Aleca
Aleca Aleca is offline
Miembro
 
Registrado: may 2003
Ubicación: Venado Tuerto, Argentina
Posts: 277
Poder: 22
Aleca Va por buen camino
la solucion q use una vez q me paso lo mismo (para recibos) arme los dos en la pagina (duplique los TQRLabel) y los carge manualmente, es un poco tedioso el tema, por eso la posibilidad q decis al final es la mas conveniente.
__________________
Aleca
Responder Con Cita
  #3  
Antiguo 15-12-2009
sergiovalp sergiovalp is offline
Registrado
 
Registrado: may 2007
Posts: 9
Poder: 0
sergiovalp Va por buen camino
yo he puesto multiples reportes en un form, y al imprimirlos, estos me aparecen uno tras otro en papel, sin corte de hoja.

hace mucho que hice eso, no me acuerdo si usé el composite, seguramente que si. Pero la idea es que en un mismo form pongas el reporte normal, que mida mas menos la mitad de la hoja, y en la forma, más abajo, copies el quick report anterior (la hoja completa).

al imprimirlo, deben aparecer los dos juntos, uno arriba el otro más abajo.

saludos
Responder Con Cita
  #4  
Antiguo 15-12-2009
bubba bubba is offline
Miembro
 
Registrado: jul 2008
Posts: 15
Poder: 0
bubba Va por buen camino
Cita:
Empezado por sergiovalp Ver Mensaje
yo he puesto multiples reportes en un form, y al imprimirlos, estos me aparecen uno tras otro en papel, sin corte de hoja.

hace mucho que hice eso, no me acuerdo si usé el composite, seguramente que si. Pero la idea es que en un mismo form pongas el reporte normal, que mida mas menos la mitad de la hoja, y en la forma, más abajo, copies el quick report anterior (la hoja completa).

al imprimirlo, deben aparecer los dos juntos, uno arriba el otro más abajo.

saludos
Hola Sergio y gracias también por tu respuesta, si conseguiste eso, eso es lo que me interesa!, pero no veo cómo hacerlo, es decir, he probado 2 reports, iguales, y la única manera de previsualizarlos (o imprimirlos), a la vez, es con el Composite, pero hace lo que digo en el primer post. No veo como hacer para que previsualice los dos en una misma página, de hecho, si haces un Preview, lo harás de un solo report, no de los dos.

Gracias!
Responder Con Cita
  #5  
Antiguo 15-12-2009
Avatar de afunez2007
afunez2007 afunez2007 is offline
Miembro
 
Registrado: oct 2007
Ubicación: La Ceiba, Honduras
Posts: 170
Poder: 17
afunez2007 Va por buen camino
Lightbulb

La solucion a ese tema es la siguiente:
1.- En el quick report haces lo siguiente:
-Utilizas las opciones custom size y defines el tamaño de la pagina, imagino que sera como 8.5" x 6".
-Luego que lo hayas cambiado y aceptado, vas a las opciones nuevamente y lo pones en default.
2.- A nivel de windows:
-Impresoras y Faxes: Le das click derecho, y luego le das propiedades del servidor, le das a la opcion de crear nuevo y defines el tamaño tal y como lo definiste en el quick report, 8.5" x 6".
- En las propiedades de la impresora, puedes establecer este papel por defecto y el quick report trabajara con el y no hara los saltos

Luego solo haces que el quick report imprima 2 copias del reporte y listo.

Como anotacion de este asunto yo he probado esto y funciona, pero la unica cosa es que en el PrintPreview solo se ve una, pero si lo envias directamente a la impresora si salen las 2 copias.

Espero te sirva la informacion

Saludos
__________________
Si robas, roba un beso, si mientes que sea por amor y si engañas que sea a la muerte!!
Responder Con Cita
  #6  
Antiguo 15-12-2009
bubba bubba is offline
Miembro
 
Registrado: jul 2008
Posts: 15
Poder: 0
bubba Va por buen camino
Cita:
Empezado por afunez2007 Ver Mensaje
La solucion a ese tema es la siguiente:
1.- En el quick report haces lo siguiente:
-Utilizas las opciones custom size y defines el tamaño de la pagina, imagino que sera como 8.5" x 6".
-Luego que lo hayas cambiado y aceptado, vas a las opciones nuevamente y lo pones en default.
2.- A nivel de windows:
-Impresoras y Faxes: Le das click derecho, y luego le das propiedades del servidor, le das a la opcion de crear nuevo y defines el tamaño tal y como lo definiste en el quick report, 8.5" x 6".
- En las propiedades de la impresora, puedes establecer este papel por defecto y el quick report trabajara con el y no hara los saltos

Luego solo haces que el quick report imprima 2 copias del reporte y listo.

Como anotacion de este asunto yo he probado esto y funciona, pero la unica cosa es que en el PrintPreview solo se ve una, pero si lo envias directamente a la impresora si salen las 2 copias.

Espero te sirva la informacion

Saludos
Hola!

Pues lo he probado y no me funciona. Esto lo he hecho muchas veces y me ha funcionado, pero con impresoras matriciales, que tenían papel continuo y fijaba el tamaño del formulario (tanto en QuickReport, como en Windows -Propiedades del Servidor-), pero lo he probado con mi impresora (Multifunción Brother), y no, al acabar el primer Report expulsa la hoja y supongo que una láser hará lo mismo...

No sé que debo estar haciendo mal o es que quizás con impresoras que trabajan con hojas sueltas, al finalizar la impresión hace el salto expulsando la hoja.

Muchas gracias por tu respuesta!
Responder Con Cita
  #7  
Antiguo 15-12-2009
sergiovalp sergiovalp is offline
Registrado
 
Registrado: may 2007
Posts: 9
Poder: 0
sergiovalp Va por buen camino
Cita:
Empezado por bubba Ver Mensaje
Hola Sergio y gracias también por tu respuesta, si conseguiste eso, eso es lo que me interesa!, pero no veo cómo hacerlo, es decir, he probado 2 reports, iguales, y la única manera de previsualizarlos (o imprimirlos), a la vez, es con el Composite, pero hace lo que digo en el primer post. No veo como hacer para que previsualice los dos en una misma página, de hecho, si haces un Preview, lo harás de un solo report, no de los dos.

Gracias!

Me acordé como se hace:

1) creas una forma (form1)
2) en la forma agregas los dos reportes (qrp1 y qrp2)
3) en la forma pones el composite (comp)
3) en el evento OnAddReports agregas estas lineas:

Código Delphi [-]
procedure TForm1.compoAddReports(Sender: TObject);
begin
  compo.Reports.Add(qrp1);
  compo.Reports.Add(qrp2);
end;

4) y para llamar a los reportes unidos:


Código Delphi [-]
 
procedure TForm1.Button1Click(Sender: TObject);
begin
  compo.OnAddReports := form1.CompoAddReports;
  compo.preview;
end;


Eso seria, que te resulte

saludos

Sergio
chile
Responder Con Cita
  #8  
Antiguo 16-12-2009
bubba bubba is offline
Miembro
 
Registrado: jul 2008
Posts: 15
Poder: 0
bubba Va por buen camino
Cita:
Empezado por sergiovalp Ver Mensaje
Me acordé como se hace:

1) creas una forma (form1)
2) en la forma agregas los dos reportes (qrp1 y qrp2)
3) en la forma pones el composite (comp)
3) en el evento OnAddReports agregas estas lineas:


Eso seria, que te resulte

saludos

Sergio
chile
Hola Sergio,

Gracias por la respuesta, pero es lo que comento en el post inicial, he utilizado el Composite y me pone un report a continuación del otro, sólo el detalle, cuando me interesa tanto la cabecera, como el pie.

Finalmente estuve probando la idea de duplicar todo en una sola banda (Headerband para ser exactos), con TQRLabels, sin TDataset y programando el evento OnNeedData y me funciona, de hecho voy contando las líneas y voy rellenando los QRLabels de la parte superior y la parte inferior, cuando llego al nº máximo de líneas, hago un NewPage y al finalizar hago el correspondiente Preview y me salió perfecto, aún debo perfeccionarlo, ya que hice una prueba con varios TQRLabels (tantos como filas caben en el impreso), pero lo he pensado y no hace falta, basta con tener una variable que me indique la posición inicial (Top), de la fila de los TQRLabels y cada vez que cambio de línea (registro en la tabla), le sumo "n" puntos, cuando llego al contador de líneas que caben, pues forzo el NewPage como comento y esta variable la inicializaría de nuevo con la posición Top inicial y ya está.

El código que he utilizado de momento y en el que debo cambiar por la idea esta de tener una variable con la posición Top es este:

Código Delphi [-]
procedure TfrmDobleQR2.qrAlbaranNeedData(Sender: TObject;
  var MoreData: Boolean);
var
   nLin, n, i: Integer;
begin
   i := 1;
   nLin := 18;
   for n := 1 to nLin do begin
      (FindComponent('qrlCodigo'+IntToStr(i)) as TQRLabel).Caption := 'Código ' + IntToStr(n);
      (FindComponent('qrlCodigo2'+IntToStr(i)) as TQRLabel).Caption := 'Código ' + IntToStr(n);
      (FindComponent('qrlDescripcion'+IntToStr(i)) as TQRLabel).Caption := 'Descripción ' + IntToStr(n);
      (FindComponent('qrlDescripcion2'+IntToStr(i)) as TQRLabel).Caption := 'Descripción ' + IntToStr(n);
      Inc(i);
      if i > 5 then begin
         i := 1;
         qrAlbaran.NewPage;
      end;
   end;
   if i <> 1 then begin
      for n := i to 5 do begin
         (FindComponent('qrlCodigo'+IntToStr(n)) as TQRLabel).Caption := '';
         (FindComponent('qrlCodigo2'+IntToStr(n)) as TQRLabel).Caption := '';
         (FindComponent('qrlDescripcion'+IntToStr(n)) as TQRLabel).Caption := '';
         (FindComponent('qrlDescripcion2'+IntToStr(n)) as TQRLabel).Caption := '';
      end;
      qrAlbaran.NewPage;
   end;
   MoreData := False;
end;

Muchas gracias a todos!

Saludos
Responder Con Cita
  #9  
Antiguo 15-12-2009
bubba bubba is offline
Miembro
 
Registrado: jul 2008
Posts: 15
Poder: 0
bubba Va por buen camino
Cita:
Empezado por Aleca Ver Mensaje
la solucion q use una vez q me paso lo mismo (para recibos) arme los dos en la pagina (duplique los TQRLabel) y los carge manualmente, es un poco tedioso el tema, por eso la posibilidad q decis al final es la mas conveniente.
Hola Aleca,

Gracias por tu respuesta, pero la verdad es que eso ya me ha ocurrido (malditos recibos!), y apliqué una solución similar a la tuya (yo utilicé QRDBText y simplemente hice mas larga la Detailband, sin Headerband, ni Footerlband, ajustándolo a 3 recibos por página que era lo que necesitaba el cliente), pero este caso es diferente, me interesa que haya tanto la Header, como la Detail y la Footer.

Igual te refieres a poner TQRLabels y con un contador ir montando yo las líneas, pero deberé controlar el salto de página y demás..., en fín, lo probaré a ver que tal.

Gracias!
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
Salto de Pagina Quickreport look Impresión 4 02-06-2008 15:00:45
Nueva página en quickreport vivamotos C++ Builder 2 10-01-2008 10:00:40
Formulario a página web en HTML? SoulSoldier C++ Builder 3 07-10-2006 00:15:00
Imprimir mas de una pagina en un QuickReport luxus Impresión 1 22-08-2006 00:49:19
Numero de página en QuickReport KayserSoze Impresión 2 01-02-2004 18:15:26


La franja horaria es GMT +2. Ahora son las 05:47:28.


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