PDA

Ver la Versión Completa : Cerrar QuickReport


chozas
21-07-2006, 14:25:24
Tengo un report en cuyo evento BeforePrint realizo una serie de comprovaciones y en función de esto muesto o no el report, algo tal que así:

procedure TForm2.QReportBeforePrint(Sender: TCustomQuickRep; var PrintReport: Boolean);
begin
if cerrar then
begin
PrintReport:=false;
exit;
end;
...
end;

Con este código si cerrar es 'true' no muestro el report y salgo del evento. Y el problema es que para cerrar la pantalla de preview del report tengo que pulsar el botón close, no consigo hacer esto de forma automática desde código. Alguien me da una idea de como hacerlo?. Saludos.

marcoszorrilla
21-07-2006, 15:37:22
Por qué no cierras el formulario que contiene el Objeto QuickRep:

public
{ Public declarations }
Cerrar:Boolean;
end;

var
Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.Button1Click(Sender: TObject);
begin
QuickRep1.PreviewModal;
end;

procedure TForm1.FormActivate(Sender: TObject);
begin
Cerrar:=True;
end;

procedure TForm1.QuickRep1BeforePrint(Sender: TCustomQuickRep;
var PrintReport: Boolean);
begin
If Cerrar = True then
form1.Close;
end;

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Application.ProcessMessages;
Action:=CaFree;
end;

Un Saludo.

AGAG4
21-07-2006, 16:53:33
Porque las Comprobaciones que mencionas no las haces antes del Preview ????

chozas
24-07-2006, 08:35:50
Al cerrar el form que contiene el report desde el evento BeforePrint me da un error.

Las comprobaciones a las que me referia son carga de consultas necesarias, esto lo hago con un hilo que puedo terminar si la consulta tarda excesivamente. Ahora sólo queda cerrar el preview cuando se anule la carga de la consulta.