PDA

Ver la Versión Completa : Generar varios Reports


Igna
15-07-2004, 11:59:36
Hola.

Tengo una aplicación en la que, en un momento dado, lee datos de una tabla, y, dependiendo de esos datos, crea un nuevo form, y (dependiendo de otros campos) un nuevo informe (hecho con QuickReport).

El código sería más o menos:


With Query 1 do
begin
first;
While not(eof) do
begin
if fields[1].AsInteger=1 then
try
application.createform(tform1, form1);
form1.showmodal;
finally
form1.release;
end
if fields[2].AsInteger=1 then
try
application.createform(Tform2, form2);
form2.quickrep1.preview;
finally
form2.release;
end;
Next;
end;
end;


El problema viene cuando dos registros cumplen las condiciones para que se cree el form1 y el form2 (con el quickrep1). La pantalla muestra un error del tipo "Acces violation at address.....", incluso hay veces que me da un error del tipo "invalid floating point operator". He intentado quitando los bloques try (aunque no tuviera mucho sentido, estaba un poco desesperado), pero nada, sigue igual.

El caso es que hay veces que, aunque salga el error, la ejecución del programa no se interrumpe, y saca los dos Reports (con el único fastidio de que el usuario vea cada vez el error).

Creo que el problema viene a la hora de generar el segundo report, ya que quitando esa parte de código, me funciona sin problemas.

Agradecería una pequeña ayuda(hombre, si es grande, mejor).

Un saludo.

Igna
15-07-2004, 12:23:19
Vale, cada día estoy peor.

No había visto este mensaje que es más o menos lo que me sucede a mi:

mensaje (http://www.clubdelphi.com/foros/showthread.php?t=12186)

Con la solución que da marcoszorilla (por cierto, gracias), se arregla el problema, por lo menos el mío. Simplemente añadiendo Application.ProcessMessages antes de liberar el form.

Gracias de nuevo, y perdón por repetir post (había hecho la busqueda sobre el error "invalid floating ...." y no encontré ese mensaje).