PDA

Ver la Versión Completa : Demasiado tiempo para generar un informe.


Miguel45
15-04-2009, 17:22:13
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

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:

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...


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.