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 26-07-2005
oliviagadel oliviagadel is offline
Miembro
 
Registrado: oct 2003
Posts: 18
Poder: 0
oliviagadel Va por buen camino
mostrar informes

Hola,
Tengo una aplicacion con unos 20 listados que tarda mucho en ejecutarse porque tengo todos los forms (q contienen quick report), creados desde el principio. Hago esto porque es la forma en la que consigo se muestren los informes correctamente(los informes se basan en una consulta que cambio dinamicamente) ¿Como puedo evitar esto?
Gracias
Responder Con Cita
  #2  
Antiguo 26-07-2005
Avatar de ContraVeneno
ContraVeneno ContraVeneno is offline
Miembro
 
Registrado: may 2005
Ubicación: Torreón, México
Posts: 4.738
Poder: 23
ContraVeneno Va por buen camino
si entendí bien, tengo la imagen de 20 formularios, cada uno con un quickreport...
si es así, supongo que un TPageControl invisible con 20 Tabs (o páginas) podría servir....

Colocas un TPageControl en tu formulario, le agregás páginas y en cada página pones un reporte diferente.... de esta forma al menos no tendrá que cargar 20 formularios...
__________________

Responder Con Cita
  #3  
Antiguo 27-07-2005
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Lo que tal vez puedes hacer es evitar que los formularios se creen al inicio del programa y crearlos tú mismo uno a uno según los necesites y destruirlos también uno a uno luego de que no te sean precisos.

Para evitar que los formularios se creen automáticamente al inicio del programa puedes utilizar el menú de Delphi > Project > Options. En la pestaña "Forms" de las opciones verás una lista con una etiqueta arriba de nombre "Auto-CreateForms".

También puedes impedir la creación automática de los formularios editando convenientemente el archivo ".dpr" (Delphi Project) de tu programa.

En todo caso cuando precisaras mostrar un formulario podrías utilizar un procedimiento parecido al siguiente, cuyo nombre "ficticio" y otros identificadores relacionados pretenden además darte alguna idea al respecto:

Código Delphi [-]
    procedure TfrmPrincipal.MostrarPrimerReporte;
    var
      frm: TPrimerReporte;
    begin
      frm := TPrimerReporte.Create(Self);
      try
        with frm do begin
          // Si hay que hacer algo antes...
          ShowModal;
          // Si hay que hacer algo después...
        end;
      finally
        frm.Free;
      end;
    end;
Ahora, bien, tratándose de que utilizas los componentes "QuickReport" y que no tengo ninguna experiencia con los mismos, ¿he metido la pata? ¿se me pasó por alto algo que me impidió verlo antes? Si es así no me abandonéis sino hacédmelo saber.
__________________
David Esperalta
www.decsoftutils.com

Última edición por dec fecha: 27-07-2005 a las 03:37:11. Razón: (corrección del texto)
Responder Con Cita
  #4  
Antiguo 27-07-2005
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 29
Lepe Va por buen camino
No se te escapa mucho dec, unicamente que en lugar de usar ShowModal, tienes que usar:
- Reporte.Preview;
- Reporte.PreviewModal;
- Reporte.PreviewModeless;

en función de como quieres el resultado final.

Otra cosa, la mayoria de nosotros colocamos el QuickReport dentro de un Form, y despues creamos el Form. Si desde File --> New --> Other elegimos QuickReport, ya no tendremos que crear el Form, simplemente creamos el QuickReport, es decir, nos ahorramos una ventana por QuickReport, en tema de recursos usados, es más eficiente.

Un saludo.
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #5  
Antiguo 27-07-2005
oliviagadel oliviagadel is offline
Miembro
 
Registrado: oct 2003
Posts: 18
Poder: 0
oliviagadel Va por buen camino
Gracias a todos, voy a intentar estas cosas que me indicais. Os comunicare los resultados
Responder Con Cita
  #6  
Antiguo 29-07-2005
oliviagadel oliviagadel is offline
Miembro
 
Registrado: oct 2003
Posts: 18
Poder: 0
oliviagadel Va por buen camino
gracias, con el siguiente codigo que me habeis indicado funciona perfectamente:

frm:=tquickreport1b.create(self);
try
with frm do begin
qtodo.close;
qtodo.sql.Clear;
qtodo.sql.add(s);
qtodo.open;
preview;
end;
finally frm.Free; end;
Responder Con Cita
  #7  
Antiguo 30-07-2005
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 29
Lepe Va por buen camino
Vamos a ahorrarnos una variable
Código Delphi [-]
 with tquickreport1b.create(self) do
  try
    qtodo.close;
    qtodo.sql.Clear;
    qtodo.sql.add(s);
    qtodo.open;
    preview;
  finally Free; end;

chau
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
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


La franja horaria es GMT +2. Ahora son las 14:32:11.


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