PDA

Ver la Versión Completa : Error al llamar por segunda vez al QReport


Ana Cristina
08-07-2004, 16:56:49
saben tengo un problema con los qreport (directos que no tienen form) , la segunda vez que lo llamo me sale el mensaje de que ya existe el quicreport masomenos asi:

Proyect P_Principal.exe raised excepcion class EAccessviolation with message
'acces violation at address 4244522E read of address 4244522E'

o el siguiente mensaje

' a Tcomponent named QRStandarpreview report already exists'

el codigo que tengo es el siguiente:

//***************************//
try
//pero ojo el reporte no esta dentro de un form de que otra forma lo llamo
Application.CreateForm(TqrAsientoDoc,qrAsientoDoc);
//aqui mando parametros para los querys
qrAsientoDoc.Prepare;
qrAsientoDoc.Preview;
finally
qrAsientoDoc.free; //tambien he provado con release

//******************//

talvez puedan ayudarme a mejorar ese codigo que es un desastre

agradezco cualquier ayuda que puedan brindarme
gracias

PD: Lo necesito urgente

AngelMarvin
08-07-2004, 17:51:14
A mi me sucede algo parecido. Me salta un mensaje de que el reporte se encuentra abierto. No se si esta solución es correcta pero pude lograr que nunca mas me salga dicho mensaje.
En tu bloque finally antes de liberar la venana de tu reporte tenés que liebrar otro objeto:

finally
qrAsientoDoc.QRPrinter.Free;
qrAsientoDoc.Free;
end;

Coneso bastará. Al menos me funciona siempre. Suerte! :)

Ana Cristina
08-07-2004, 22:17:30
Sigo con el mismo problema

marcoszorrilla
09-07-2004, 07:27:28
Prueba:


Application.ProcessMessages;
FreeAndNil(qrAsientoDoc);


Un Saludo.

keys
09-07-2004, 08:31:36
Prueba a poner el informe en un formulario, y creas el formulario y luego lo destruyes, eso es lo que hago yo y no tengo ningún problema. Acuerdate de quitarlo de Autocreate Forms.

Formulario := TFormulario.create(nil);
try
Formulario.informe.prepare;
Formulario.informe.preview;
finally
FreeAndNil(Formulario);
end;

Un Saludo. Agur :cool: