Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Impresión (https://www.clubdelphi.com/foros/forumdisplay.php?f=4)
-   -   Demasiado tiempo para generar un informe. (https://www.clubdelphi.com/foros/showthread.php?t=64710)

Miguel45 15-04-2009 17:22:13

Demasiado tiempo para generar un informe.
 
Hola compañeros.

Como bien dice el título, mi problema es el excesivo tiempo que tarda un informe para realizar el preview y el posterior print.
Trabajo con Delphi 7, QReport 5 y Firebird.
Al realizar un informe, si lo previsualizo por pantalla mediante el comando Preview, para confeccionar dos o tres hojas se pasa un par de minutos largos pensando. Si lo imprimo directamente usando el comando Print, el tiempo se duplica, además, en la pantalla de progreso "Printing Progress" el progressbar se reinicia infinidad de veces hasta que se imprime.
Lo único que hago en el reporte es una sentencia select del tipo
Código Delphi [-]
 with Query1 do   begin    Close;    sql.clear;    sql.add('SELECT * FROM PROYECTOS WHERE NUM_PROYECTO=:P0');
   params[0].AsInteger := QCab.FieldByName('NUM_PROYECTO').AsInteger;
   open;
  end;

Este problema sólo lo tengo en este informe, lo comparo con otros
informes y no veo nada que esté mal.

espero que alguien me pueda orientar en algo. Gracias anticipadas.

Saludos.

El_Perrito 15-04-2009 18:36:06

Hola Miguel, dos cosas, la primera y es solo por descartar me imagino que tienes un indice por el campo que pones en el where (Num_Proyecto) y la otra quizas te pueda ayudar el hecho de no usar parametros para el query
por ejemplo:
Código Delphi [-]
with Query1 do   begin    
  Close;    
  sql.clear;    
  sql.add('SELECT * FROM   PROYECTOS WHERE     NUM_PROYECTO='+IntToStr(QCab.FieldByName('NUM_PROYECTO').AsInteger));
  Prepare;
  open;
end;

Fuera de eso no se cual pudiera ser el problema.

Saludos.

pcicom 15-04-2009 20:38:04

Creo yo que el problema lo tienes en el REPORTE, no en la instruccion, ya que esta es muy simple..

REVISA tu reporte en QUICKREPORT algo debe de andar mal..

marcoszorrilla 15-04-2009 21:32:29

Si pones una rejilla para visualizar los datos que devuelve la consulta verás lo que realmente tarda en hacerse con los datos a mostrar, yo sospecho que el problema esta en la consulta y no en QuickReport, pero ya nos contarás...

Pon un botón en el formulario para previsualizar con el QuickReport.



Un Saludo.

Miguel45 16-04-2009 18:01:13

Hola de nuevo.

Gracias por las ideas que me habeis dado.
Ya he resuelto el problema.
Resulta que antes de imprimir una banda de detalle, hacía un par de consultas para la búsqueda de unos datos específicos. Esto se hacía demasiadas veces con lo cual ralentizaba demasiado el reporte.
Lo he solucionado replanteando todo el proceso de impresión, lo cual era más sencillo de lo que en principio me había planteado, y ahora funciona perfecto.
En ocasiones nosotros mismos hacemos las cosas más complicadas de lo que son.

Gracias a todos y saludos.

pcicom 16-04-2009 20:26:47

Entonces YO ACERTE !!! :D

SALUDOS...


Cita:

Empezado por Miguel45 (Mensaje 345195)
Hola de nuevo.

Gracias por las ideas que me habeis dado.
Ya he resuelto el problema.
Resulta que antes de imprimir una banda de detalle, hacía un par de consultas para la búsqueda de unos datos específicos. Esto se hacía demasiadas veces con lo cual ralentizaba demasiado el reporte.
Lo he solucionado replanteando todo el proceso de impresión, lo cual era más sencillo de lo que en principio me había planteado, y ahora funciona perfecto.
En ocasiones nosotros mismos hacemos las cosas más complicadas de lo que son.

Gracias a todos y saludos.



La franja horaria es GMT +2. Ahora son las 08:50:02.

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