QuickReport问题 ( 积分: 20 )

  • 主题发起人 主题发起人 ldljzxc
  • 开始时间 开始时间
L

ldljzxc

Unregistered / Unconfirmed
GUEST, unregistred user!
用QuickReport作报表,并用QRPreview自定义预览窗口,
在Query窗口中生成数据并Qrep.Preview,
预览正常,但:
执行打印并关闭QRPreview后,Query无法关闭,为什么?
 
用QuickReport作报表,并用QRPreview自定义预览窗口,
在Query窗口中生成数据并Qrep.Preview,
预览正常,但:
执行打印并关闭QRPreview后,Query无法关闭,为什么?
 
不可能关闭不了!
你的代码有其它的问题。
 
query是否動態創建的?如果是,則需要free。
 
是动态创建的。我用Qrep.PreviewModal是可以关闭的。自定义QRPreview窗口也是用Show打开的,好象用showmodal不能预览到数据,只能用show?另外没有执行打印时是可以关闭的。
 
那qrp是不是動態創建的呢?
1、釋放qrp
2、釋放query窗體
要不你把你創建時的那段代碼貼出來。
 
//Query窗口报表Button
procedure TfrmQuery.CreateReport(Sender : TObject);
begin
with TfrmReport.Create(Application)do
begin
qlDateRange.Caption:=datetostr(dp_Start.Date)+' '+timetostr(tp_start.Time)+
' 至 '+datetostr(dp_end.
Date)+' '+timetostr(tp_end.
Time);
qr_Report.Preview;
end;
end;
//report的OnPreview(多个表用同一个)
procedure TfrmReport.ReportPreview(Sender : TObject);
begin
with TfrmPreview.Create(Application)do
begin
QRPreview.QRPrinter:=TQRPrinter(Sender);
CurRep:=TQuickRep(sender);
Show;
end;
end;
//Preview的Formclose;
procedure TfrmPreview.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
CurRep := nil;
Action := caFree;
end;
//Report的FormClose;
procedure TfrmReport.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
Action:=caFree;
end;
在frmpreview中未执行打印时一切正常
 
我跟踪了一下,发现在关闭report时不能关闭,因为report 的
QRPrinter一直未close,QRPrinter.ShowingPreview一直为true,
将QRPrinter.ShowingPreview设为false时,Report及Qurey均关闭。
为什么?
 
//看来只能这样了
procedure TfrmPreview.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
QRPreview.QRPrinter.ShowingPreview:=False;
CurRep := nil;
Action := caFree;
end;
 
后退
顶部