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 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
  #5  
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
  #6  
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
  #7  
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
  #8  
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
  #9  
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
  #10  
Antiguo 16-12-2009
dtomeysoto dtomeysoto is offline
Miembro
 
Registrado: dic 2005
Posts: 173
Poder: 19
dtomeysoto Va por buen camino
mi solucion

Hola amigo, te respondo lo que hice tiempo atrás para logras lo que necesitas.

Usé una tabla temporal, en ella puse los campos de los datos que tenía que visualizar en el reporte. Además agregué como primer campo uno de tipo entero.

Luego los datos que tengo que mostrar los puse en la tabla temporal y el campo adicional lo puse en 1. Repeti el proceso pero poniendo en 2 el campo adicional.

Luego en el reporte use un grupo y como expresion use el campo temporal, al usar el grupo substitui la banda para el encabezado de pagina, lo mismo hice con el pie de pagina que lo substitui por el pie del grupo.

Me dio un tin de trabajo pero logré mi objetivo, incluso al pie del grupo le agregué una banda tipo child con la linea de corte y la habilite cuando el campo adicional era 1 y desabilite cuando era 2.

Bueno espero que con esta idea logres hacer lo que necesitas.
Responder Con Cita
  #11  
Antiguo 16-12-2009
Avatar de jafera
jafera jafera is offline
Miembro
 
Registrado: may 2007
Ubicación: Llagostera (Girona)
Posts: 582
Poder: 17
jafera Va por buen camino
Buenas tardes, yo cuando he necesitado hacer algo similar, he optado por colocar dosveces el report en el papel A4 poniendo una linea de corte en la mitad y no me da ningun problema.

Actualmente he pasado todos mis reports de QR5 a QRDesign, así se pueden modificar desde la aplicaciónsin tener que recurrir al código, solo se tiene que vigilar que el usuario no sea un "manitas", lo toque y luego diga que no va o bien se protege el acceso por contraseña.

Cualquir cosa ya sabes.

Josep
Responder Con Cita
  #12  
Antiguo 16-12-2009
bubba bubba is offline
Miembro
 
Registrado: jul 2008
Posts: 15
Poder: 0
bubba Va por buen camino
Cita:
Empezado por dtomeysoto Ver Mensaje
Hola amigo, te respondo lo que hice tiempo atrás para logras lo que necesitas.

Usé una tabla temporal, en ella puse los campos de los datos que tenía que visualizar en el reporte. Además agregué como primer campo uno de tipo entero.

Luego los datos que tengo que mostrar los puse en la tabla temporal y el campo adicional lo puse en 1. Repeti el proceso pero poniendo en 2 el campo adicional.

Luego en el reporte use un grupo y como expresion use el campo temporal, al usar el grupo substitui la banda para el encabezado de pagina, lo mismo hice con el pie de pagina que lo substitui por el pie del grupo.

Me dio un tin de trabajo pero logré mi objetivo, incluso al pie del grupo le agregué una banda tipo child con la linea de corte y la habilite cuando el campo adicional era 1 y desabilite cuando era 2.

Bueno espero que con esta idea logres hacer lo que necesitas.
Hola,

Muy buena tu idea, lo que pasa es que creo ver un inconveniente...

Entiendo lo de tener indexado por el campo temporal con valor 1 ó 2, tambien las bandas de GroupHeader y GroupFooter (muy bueno, en serio, no lo había pensado), para repetir la impresión, pero sin probarlo, creo que QuickReport si hay muchos registros de detalle, antes de imprimirte cuando llegue a los registros con valor 2 (el segundo grupo), te ocuparía toda la página y haría el salto, no?

Saludos y gracias!
Responder Con Cita
  #13  
Antiguo 16-12-2009
bubba bubba is offline
Miembro
 
Registrado: jul 2008
Posts: 15
Poder: 0
bubba Va por buen camino
Cita:
Empezado por jafera Ver Mensaje
Buenas tardes, yo cuando he necesitado hacer algo similar, he optado por colocar dosveces el report en el papel A4 poniendo una linea de corte en la mitad y no me da ningun problema.

Actualmente he pasado todos mis reports de QR5 a QRDesign, así se pueden modificar desde la aplicaciónsin tener que recurrir al código, solo se tiene que vigilar que el usuario no sea un "manitas", lo toque y luego diga que no va o bien se protege el acceso por contraseña.

Cualquir cosa ya sabes.

Josep
Hola Josep,

No entiendo lo de "colocar dos veces el Report en el papel A4" :-?

Gracias y un saludo!
Responder Con Cita
  #14  
Antiguo 17-12-2009
Avatar de jafera
jafera jafera is offline
Miembro
 
Registrado: may 2007
Ubicación: Llagostera (Girona)
Posts: 582
Poder: 17
jafera Va por buen camino
Pues sencillamente colocar todos los componentes dos veces en un solo papel A4, el cual se divide en dos B5.

Ejemplo si en la primera mitad de reporte tienes esta la etiqueta1, el campo de texto1 y el memo1, en la segunda mitad pones la etiqueta2, el campo de texto2 y el memo2 con los mismos valores de la tabla.

Posiblemente no sea lo mas ortodoxo pero a mi así me funciona

Josep
Responder Con Cita
  #15  
Antiguo 21-12-2009
luis vazquez luis vazquez is offline
Miembro
 
Registrado: oct 2007
Posts: 53
Poder: 17
luis vazquez Va por buen camino
Thumbs up solucion facil

La verdad yo no soy muy experto en reportes pero me toco hacerlo a un cliente para sus nomina y use la cabecera nada mas y la extire hasta cubrir la hoja y repeti los dbtext y demas componebtes dos veces y simplemente los separe uno de otro hasta quedar la raya perforada en medio, tal ves no sea la opcion mas ortodosa ni la mas guiada por las reglas pero me funciono al pelo, todos los datos los tenia en una base de datos y cada pagina salia con un solo empleado, si te sirve me alegro en contribuir.
Responder Con Cita
  #16  
Antiguo 21-12-2009
bubba bubba is offline
Miembro
 
Registrado: jul 2008
Posts: 15
Poder: 0
bubba Va por buen camino
Hola,

Gracias a todos, pero la única solución que tengo es la que escribí más arriba jugando con QRLabels y controlando desde código el salto de línea. Creo que QuickReport no tiene esta prestación, la de duplicar un report (con su cabecera, pie y sobre todo, detalle), en una misma hoja. Sería bueno sugerirlo a quSoft.

A Luis Vázquez y Jafera, esto de duplicar los controles de QuickReport no me sirve, ya lo he hecho en otros informes (tipo recibos, o como indicáis puede servir en una nómina, etc), son informes sin detalle, o sólo un registro de detalle por página, por lo que lo puedes solventar con una sola banda (Header o Detail), el problema era teniendo varias líneas de detalle una debajo de la otra en la misma hoja y si por ejemplo en la parte superior salen 12 líneas (con su cabecera previa y su pie al final), pues que en la parte inferior de la hoja salga lo mismo. Igualmente gracias por vuestro tiempo!

Saludos
Responder Con Cita
  #17  
Antiguo 14-02-2014
Avatar de mRoman
mRoman mRoman is offline
Miembro
 
Registrado: nov 2003
Posts: 599
Poder: 21
mRoman Va por buen camino
Hola BUBBA...

Consultanto aqui y alla....di con tu hilo acerca de QuickReport....imprimir 2 recibos (original y copia) en una misma hoja.....tengo ese problema ahora.....
lo pudiste solucionar?....

Saludos.
__________________
Miguel Román

Afectuoso saludo desde tierras mexicanas....un aguachile?, con unas "cetaseas" bien "muertas"?, VENTE PUES !!
Responder Con Cita
  #18  
Antiguo 14-02-2014
Avatar de mRoman
mRoman mRoman is offline
Miembro
 
Registrado: nov 2003
Posts: 599
Poder: 21
mRoman Va por buen camino
Cita:
Empezado por bubba Ver Mensaje
Hola,

Gracias a todos, pero la única solución que tengo es la que escribí más arriba jugando con QRLabels y controlando desde código el salto de línea. Creo que QuickReport no tiene esta prestación, la de duplicar un report (con su cabecera, pie y sobre todo, detalle), en una misma hoja. Sería bueno sugerirlo a quSoft.

A Luis Vázquez y Jafera, esto de duplicar los controles de QuickReport no me sirve, ya lo he hecho en otros informes (tipo recibos, o como indicáis puede servir en una nómina, etc), son informes sin detalle, o sólo un registro de detalle por página, por lo que lo puedes solventar con una sola banda (Header o Detail), el problema era teniendo varias líneas de detalle una debajo de la otra en la misma hoja y si por ejemplo en la parte superior salen 12 líneas (con su cabecera previa y su pie al final), pues que en la parte inferior de la hoja salga lo mismo. Igualmente gracias por vuestro tiempo!

Saludos
Lo pudiste solucionar !!?
__________________
Miguel Román

Afectuoso saludo desde tierras mexicanas....un aguachile?, con unas "cetaseas" bien "muertas"?, VENTE PUES !!
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 18:31:57.


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