![]() |
![]() |
![]() |
![]() |
![]() |
FTP | ![]() |
![]() |
CCD | ![]() |
![]() |
Buscar | ![]() |
![]() |
Trucos | ![]() |
![]() |
Trabajo | ![]() |
![]() |
Foros | ![]() |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
![]() |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
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 |
#2
|
||||
|
||||
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...
__________________
|
#3
|
||||
|
||||
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: 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. Última edición por dec fecha: 27-07-2005 a las 03:37:11. Razón: (corrección del texto) |
#4
|
||||
|
||||
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. |
#5
|
|||
|
|||
Gracias a todos, voy a intentar estas cosas que me indicais. Os comunicare los resultados
|
#6
|
|||
|
|||
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; |
#7
|
||||
|
||||
Vamos a ahorrarnos una variable
![]()
chau
__________________
Si usted entendió mi comentario, contácteme y gustosamente, se lo volveré a explicar hasta que no lo entienda, Gracias. |
![]() |
|
|
![]() |
|