用QREPORT做报表时,如何获得总页数?并在QRPRIVEW中显示.(100分)

  • 主题发起人 主题发起人 浮云一号
  • 开始时间 开始时间

浮云一号

Unregistered / Unconfirmed
GUEST, unregistred user!
用QREPORT做报表时,如何获得总页数?并在QRPRIVEW中显示.
 
用QREPORT做报表时,如何获得总页数?并在QRPRIVEW中显示.
 
procedure TFrmQry.BtnrptClick(Sender: TObject);
VAR
pagecount:integer;
begin
screen.Cursor:=crhourglass;
TRY
if frmrpt=nil then
frmrpt:=Tfrmrpt.Create(application);
FRMRPT.QuickRep1.Prepare;
pagecount:=frmRpt.QuickRep1.Printer.PageCount;
frmRpt.QRLabel9.Caption:='页(共'+inttostr(pagecount)+'页)';
frmRpt.QuickRep1.CleanupInstance ;
finally
screen.Cursor:=crdefault;
end;
frmRpt.QuickRep1.Preview;
end;
 
呵呵,在QuickRep中我也是这样做的哟,双手赞成
但如果是在在QRPreview中,我是这样处理的:
var
PageCount:Integer=0;//总页数
在QRPreview的OnPageAvailable中写:
procedure TForm_Print.QRPreview1PageAvailable(Sender: TObject;
PageNum: Integer);
begin
PageCount:=PageNum ;//pagecount就是总页数哦
//这里就是你要显示的代码 比如:
caption:='页码:'+IntToStr(QRPreview1.PageNumber)+'/'+IntToStr(PageCount);
end;
 
procedure Tfrmsumcaigou.btn_preClick(Sender: TObject);
var count:integer;
begin
frmhuizong.QR1.Prepare;
Count:=frmhuizong.qr1.QRPrinter.PageCount;
frmhuizong.QRLabel64.Caption:='共'+InttoStr(Count)+'页 第'+InttoStr(Count)+'页';
frmhuizong.QR1.Preview;
frmhuizong.Free;
end;
 
以下程序可以这样得到总页数,并在Preview中显示,但数据较多时,可能
在Preview之前需要等待一会:
procedure TForm1.Button1Click(Sender: TObject);
begin
QuickReport1.Prepare;
//必须
QuickReport1.QRLabel1.Caption := IntToStrQuickReport1.QRPrinter.PageCount);
//此处得到总页数
QuickReport1.Preview;
end;
 
楼上的都可以
 
多人接受答案了。
 
后退
顶部