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.
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.