PDA

Ver la Versión Completa : Error al momento de Preview


judit25
28-09-2008, 18:28:57
Buenos dias a tod@s!!!

Mi problema es el siguiente:

Estoy trabajando con delphi 7, Access 2002, Ado. Mi problema surge cuando intento mandar a visualizar un reporte (elaborado en QuickReport) desde un formulario que tiene un boton de imprimir con la instruccion
QuickReport1.Preview, al momento de presionar ese boton aparece el siguiente error:

"Project Sistema.exe raised exception class EAccessViolation with Message 'Access Violation at address 004AB23F in module 'Sistema.exe'. Read of address 00000000'. Process Stopped. Use Step or Run to continue"

Alguien tiene idea de que puede estar causando ese error.

Gracias anticipadas por la ayuda.

Saludos

mightydragonlor
28-09-2008, 18:44:17
hola, pues no tengo el quickreport, pero si mal no recuerdo, este componente tiene un método prepare, osea que quedaría así:

TQuickReport.prepare;
TQuickReport.preview;
Espero te sirva de algo.

judit25
28-09-2008, 18:45:50
hola, pues no tengo el quickreport, pero si mal no recuerdo, este componente tiene un método prepare, osea que quedaría así:

Código Delphi [-] (http://www.clubdelphi.com/foros/#)
TQuickReport.prepare;
TQuickReport.preview;



Espero te sirva de algo.

Gracias por tu respuesta, pero ya habia probado eso y no me funciono tampoco

Lepe
28-09-2008, 19:06:44
Usa siempre QuickReport1.PreviewModal

Si utilizas preview, el informe se muestra pero sigue ejecutando las demás instrucciones, por ejemplo, imagina esto:

quicreport1.dataset := query1;
query1.Open;
quickreport1.Preview;
query1.Free;
Close;



Después de hacer el preview, se libera la consulta, por tanto el informe dará errores al intentar acceder a los campos del query1. También se manda a cerrar la ventana y el preview te puede dar más dolores de cabeza aún.

Si en lugar de Preview, usas PreviewModal, tu ventana se queda congelada en esa línea de código. Cuando cierres La presentación del Informe, sólo entonces se ejecuta el query1.Free y el cierre de la ventana.

Saludos

coso
28-09-2008, 21:50:09
Hola lepe, yo uso esa combinacion y no me da problemas nunca :confused:. Eso si, acostumbro a tener un prepare por alla metido.

judit25
28-09-2008, 21:59:13
Muchas gracias por sus respuestas y ayuda

Lepe
29-09-2008, 11:45:57
Hola coso:

Como todo, hay mil formas de hacerlo. Si tú no cierras la consulta dentro del mismo procedimiento que abre el QuickReport, no tendrás problemas. Si el listado es muy pequeño (1 registro, 1 folio con 10 registros), igual da tiempo a crearse el QuickReport y mostrarse sin problemas.

Cuando muestras un listado de varias páginas con 10 o 12 campos en columnas, ahí es donde vienen los problemas, el caso que canta es:

toolbar1ButtonImprimir.enabled := false;
try
quicreport1.Preview;
finally
toolbar1ButtonImprimir.Enabled := true;
end;


Verás como el botón sigue habilitado mientras se está mostrando el QuickReport. Usa PreviewModal y verás que se queda inhabilitado ;).

Saludos

coso
29-09-2008, 13:30:49
ni idea, ya te digo que lo uso asi casi siempre y nunca me ha dado problemas...preview y liberar...