PDA

Ver la Versión Completa : QuickReport


Tomás
08-05-2003, 19:06:13
Hola a todos:

He hecho un Report (aprendiendo) así:

En un form (FormDatos) tengo un grid con un botón (BotonListar).

En el procedure TFormDatos.BotonListarClick creo el otro form (TFormListar)

En el otro form (FormListar) tengo solo el componente QuickRep1 y en el evento OnActivate de este form he puesto:
QuickRep1.Preview;
Close;

Al ejecutar la aplicación y pinchar el botón para listar aparece el Print Preview con todos los datos correctos, lo imprimo bien pero doy a Close y vuelve a aparecer Pritn Preview, vuelvo a dar a Close y ya se cierra bien.

¿Que es lo que está incorrecto?

Muchas gracias. Tomás.

walace_soy
08-05-2003, 19:09:11
hola no me acuerdo bien del quickreport pero creo que con el close estas cerrando la ventana pero no el objeto creo que tienes una propiedad en el quickreport que es close tambien, por lo que antes de poner close deberias poner quickreport1.close;
aunque no estoy muy seguro.
Ciao.

__cadetill
08-05-2003, 19:38:17
Bueno, este es devido a que el Activate salta cada vez que el form pierde el foco. Al darle a imprimir, el form pierde el foco (sale la pantallita del progreso de impresion) y, al cerrarse dicha pantalla, el form recupera el foco por lo que se te dispara nuevamente el evento Activate (no se si me he ecplicado :) )

Para solucionarlo, en el onclick de tu boton (donde creas el form del report) pon tambien la linea del preview

FormListar.QuickRep1.Preview;

y por supuesto, quita el codigo del OnActivate

Espero te sirva

Tomás
09-05-2003, 02:42:36
Walace, el QuickReport no tiene la propiedad Close.

Cadetill, si pongo FormListar.QuickRep1.Preview; en el primer form solo veo el diseño del quickreport.

He probado poniendo el quickreport en el primer form y prescindir del segundo y va bien, pero tengo retirarlo después de diseñarlo, a una zona no visible para que no aparezca el diseño.

Aunque se poco de esto creo que puede ser debido a que el dataset de donde toma los datos el quickreport está en el primer form y el quickreport esta en el segundo form. Por eso supongo que al poner los dos en el primero funciona.
Voy a probar poniendo los dos en el segundo form a ver si va.

Muchas gracias. Tomás.

__cadetill
09-05-2003, 10:38:38
El dataset da igual en que form este. Lo importante es que el dataset que se tiene que imprimir este activo antes de lanzar el Preview

Si solo te muestra el diseño del Preview, puede ser por dos cosas. Uno, que el dataset no contanga registros. Dos, que el dataset no este activo.

Mira que no sea cualquiera de las dos posibles soluciones (la primera tambien puede venir por un filtro que haga que el dataset no contenga registros)

Suerte

Tomás
09-05-2003, 19:03:38
Hola:

Ya lo he solucionado. Tenía dos cosas mal.

Una era lo que apuntabas sobre la perdida del foco al ponerlo en el evento OnActivate, por lo que lo he puesto en OnCreate. Pero así después de cerrar el preview se quedaba viendo el diseño del QuicKReport, y esto era debido al segundo error.

Este segundo error era que había abierto el form en Showmodal. Lo he quitado y funciona bien.

Muchas gradias a todos. Tomás.