Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Impresión
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 15-04-2009
Miguel45 Miguel45 is offline
Miembro
 
Registrado: oct 2005
Ubicación: Gandía (Valencia) -España-
Posts: 41
Poder: 0
Miguel45 Va por buen camino
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.
Responder Con Cita
  #2  
Antiguo 15-04-2009
El_Perrito El_Perrito is offline
Miembro
 
Registrado: ene 2004
Ubicación: Los Mochis, Mexico
Posts: 97
Poder: 21
El_Perrito Va por buen camino
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.
Responder Con Cita
  #3  
Antiguo 15-04-2009
pcicom pcicom is offline
Miembro
 
Registrado: may 2003
Ubicación: MONTERREY MEXICO
Posts: 253
Poder: 21
pcicom Va por buen camino
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..
__________________
Poco ha de saber el que no pregunta.. Yo por eso soy un pregunton
Responder Con Cita
  #4  
Antiguo 15-04-2009
Avatar de marcoszorrilla
marcoszorrilla marcoszorrilla is offline
Capo
 
Registrado: may 2003
Ubicación: Cantabria - España
Posts: 11.221
Poder: 10
marcoszorrilla Va por buen camino
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.
__________________
Guía de Estilo de los Foros
Cita:
- Ça c'est la caisse. Le mouton que tu veux est dedans.
Responder Con Cita
  #5  
Antiguo 16-04-2009
Miguel45 Miguel45 is offline
Miembro
 
Registrado: oct 2005
Ubicación: Gandía (Valencia) -España-
Posts: 41
Poder: 0
Miguel45 Va por buen camino
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.
Responder Con Cita
  #6  
Antiguo 16-04-2009
pcicom pcicom is offline
Miembro
 
Registrado: may 2003
Ubicación: MONTERREY MEXICO
Posts: 253
Poder: 21
pcicom Va por buen camino
Entonces YO ACERTE !!!

SALUDOS...


Cita:
Empezado por Miguel45 Ver Mensaje
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.
__________________
Poco ha de saber el que no pregunta.. Yo por eso soy un pregunton
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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
generar bd My Sql en tiempo de ejecucion meosre MySQL 7 05-01-2008 16:54:30
Generar informe en word Ivan_25 C++ Builder 5 29-11-2005 12:24:13
Como generar informe, y convertirlo en un documento de word. Crazyro Impresión 0 21-06-2005 12:08:36
como generar un informe ? maruenda Impresión 1 24-11-2004 18:52:24
Asignar en tiempo de diseño un datafield dentro de un informe melanthea C++ Builder 7 25-06-2004 19:35:35


La franja horaria es GMT +2. Ahora son las 07:57:26.


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