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 11-01-2006
Avatar de Cabanyaler
Cabanyaler Cabanyaler is offline
Miembro
 
Registrado: jun 2003
Ubicación: País Valencià
Posts: 339
Poder: 21
Cabanyaler Va por buen camino
Cool Impresión informe de ocupación > 1 Página

Hola, espero sea lo más sencillo de solucionar....
He estado buscando pero no he encontrado nada.

Veamos mi estado y cual es el objetivo:
Estoy diseñando un informe donde la información a mostrar consta de una banda de cabecera rbTitle, otra rbDetail (que contiene los datos de la tabla maestra) y varias bandas de tipo TQRSubDetail de varias tablas relacionadas con la master como tablas esclavas.
El problema es que toda esa información no me cabe en una sola página y necesito añadir más bandas de tipo Subdetail para llenar si es preciso varias hojas A4 en apaisado.

Pregunta:
¿Como puedo diseñar un informe con el QReport de varias hojas?.

Gracias por vuestro tiempo y un saludo.
__________________
El meu país és tan petit, que des de dalt d'un campanar es pot veure el campanar veí.
Responder Con Cita
  #2  
Antiguo 11-01-2006
Avatar de Cabanyaler
Cabanyaler Cabanyaler is offline
Miembro
 
Registrado: jun 2003
Ubicación: País Valencià
Posts: 339
Poder: 21
Cabanyaler Va por buen camino
Lo he intentado con el componente de la paleta del QuickReport denominado TQRCompositeReport con el siguiente código:

Código:
procedure TFLisFiltro_ConCliObr.QRCompositeReportLisConCliObrAddReports(
  Sender: TObject);
begin
    QRCompositeReportLisConCliObr.Reports.Add(QRLisConCliObr1);
    QRCompositeReportLisConCliObr.Reports.Add(QRLisConCliObr2);
end;
Pero me imprime primero todas las páginas del QRLisConCliObr1 y posteriormente todas las páginas del segundo QRLisConCliObr2, mientras lo que yo quiero es que me imprima la página del QRLisConCliObr1 y seguidamente el contendo de la página del QRLisConCliObr2 para completar la información de una tupla, para continuar con la siguiente tupla imprimiendo el QRLisConCliObr1 y después el QRLisConCliObr2 y así sucesivamente.
Para ello he utilizado este código:

Código:
procedure TFLisFiltro_ConCliObr.QRBandCabezaListadoBeforePrint(
  Sender: TQRCustomBand; var PrintBand: Boolean);
begin
    QRLisConCliObr1.NewPage;
end;
... y puesto la propiedad de la banda del título del QRLisConCliObr1.ForceNewPage := True (aunque en el libro de Ian Marteens dice que esta no funciona). :confused

Si alguien me puede ayudar... se lo agradeceré. Un saludo.
__________________
El meu país és tan petit, que des de dalt d'un campanar es pot veure el campanar veí.

Última edición por Cabanyaler fecha: 12-01-2006 a las 08:42:44.
Responder Con Cita
  #3  
Antiguo 12-01-2006
Avatar de Cabanyaler
Cabanyaler Cabanyaler is offline
Miembro
 
Registrado: jun 2003
Ubicación: País Valencià
Posts: 339
Poder: 21
Cabanyaler Va por buen camino
Unhappy

Tambien he seguido estos pasos extraidos de la siguiente URL http://delphi.about.com/library/bluc/text/uc051701h.htm y que a continuación anexo:

Cita:
QRComposite Report
QRComposite report does not work in an intuitive fashion. It does much more than simply calling one report after the other. Because a metafile is created for each page and this file is used to send data to the printer, Qrcomposite report uses this feature to make all the reports behave like one big report with each page being created and sent in one operation. To use this component, follow these steps:

1. Design all the reports you are using, each one in it's separate file and form. Add the units to the calling form so it can use them.

2. Place a QRCompositeReport component on your main form.

3. Click on the Add reports event and place code there to call each report in the order you want. Like this:

Código:
procedure Tform1.
 QRCompositeReport1AddReports
 (Sender : Tobject);
begin
 with QRCompositeReport1.Reports do
 begin
  Add(RepCustomer.Report);
  Add(RepSales.Report);
  Add(RepTotals.Report);
end;
4. In your main form's code add the line to print or preview this component. Like This:

QRCompositeReport1.Preview;


When you call this, the composite component calls each report in turn and adds the second through last report's pages to the first report's pages creating one large report. This is an attempt to seamlessly stitch together different reports to give the user the idea that all this output came from one report. It can be very useful if you have one report showing detail records and then need to print a report showing summaries for example. Another approach would be to simply call each report in turn individually, but this may not give the impression to the user that you may want. Having the Composite report component gives you a choice.

Pero el resultado es el mismo, primero tira todos las páginas del primer Report y a continuación todas las páginas del segundo Report
__________________
El meu país és tan petit, que des de dalt d'un campanar es pot veure el campanar veí.
Responder Con Cita
  #4  
Antiguo 13-01-2006
Avatar de Cabanyaler
Cabanyaler Cabanyaler is offline
Miembro
 
Registrado: jun 2003
Ubicación: País Valencià
Posts: 339
Poder: 21
Cabanyaler Va por buen camino
... Bueno... visto "lo poco potente" que es este generador de informes y ante la situación de tener que sacar esto adelante y la imposibilidad de comprar otro generador de informes, lo hago de diferente forma.
No he encontrado solución, haga lo que haga, lo configure como lo configure, me sale primero todo el contenido de todas las páginas de un Report y posteriormente todas las paginas correspondientes al segundo Report; cosa indeseada.

¿De verdad que nadie conoce como poder imprimir 1 Página del Report1 + 1 Página del Report2 + 1 Página del Report1 + 1 Página del Report2 ......? en lugar de todas las paginas del Report1 y luego todas las del Report2.

Voy a acabar haciendolo del siguiente modo:Recorreré con un bucle todas las tuplas de la tabla master y en cada iteración del bucle haré una llamada al QuickReport1.Print con una banda Detalle vacia y asignando los valores de los atributos de la tabla master a etiquetas de una banda de tipo cabecera. Las tuplas de las tablas esclavas estarán en bandas detail hasta llenar el contenido de la página del Quickreport1 y después haré una segunda llamada al QuickReport2 donde encontraré más bandas detalle con el resto de las tablas esclavas. De ese modo espero conseguir el efecto de impresión de página 1 segida de la página 2 con el resto de los datos de la tupla master. Y así para cada iteración del bucle, hasta acabar con el .eof de la tabla master.
__________________
El meu país és tan petit, que des de dalt d'un campanar es pot veure el campanar veí.

Última edición por Cabanyaler fecha: 14-01-2006 a las 23:15:21.
Responder Con Cita
  #5  
Antiguo 17-01-2006
Avatar de Cabanyaler
Cabanyaler Cabanyaler is offline
Miembro
 
Registrado: jun 2003
Ubicación: País Valencià
Posts: 339
Poder: 21
Cabanyaler Va por buen camino
Talking

Fet, arreglat, sol.lucionat i funcionant.
__________________
El meu país és tan petit, que des de dalt d'un campanar es pot veure el campanar veí.
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
impresion de informe contable con string grid y QUICK REPORT ale21alito Impresión 1 29-03-2005 20:15:45
Impresion Media Pagina RolphyReyes Impresión 2 06-08-2004 14:18:00
Pagina N de M Franklim Impresión 0 14-04-2004 20:13:14
largo de pagina, impresion en Printer.Canvas jac000y Impresión 1 22-12-2003 17:29:14
Propaganda, mentiras y software cerrado (el informe NERA) ... kinobi Debates 8 14-09-2003 22:16:23


La franja horaria es GMT +2. Ahora son las 23:49:21.


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