線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1921
推到 Plurk!
推到 Facebook!

請問如何於自定的form report view , 取得列印報表總頁數

尚未結案
ptc1311
一般會員


發表:8
回覆:3
積分:2
註冊:2004-04-06

發送簡訊給我
#1 引用回覆 回覆 發表時間:2006-07-07 13:55:18 IP:59.125.xxx.xxx 訂閱
我使用一個form,裡頭罷個TQRPreview元件 -->該form用來做自定的report preview
而我有2個以上的form,裡頭放置了QuickRep元件
最後使用TQRCompositeReport元件將各個form報表組合起來
大概程式碼如下
xxx.unit :
QRPreview1: TQRPreview;

form1.unit
QuickRep1: TQuickRep;
form2.unit
QuickRep1: TQuickRep;
.....
formN.unit
QuickRep1: TQuickRep;

bind.unit:
QRCompositeReport1: TQRCompositeReport;
...
...
...
QRCompositeReport1.Prepare;

//i := FormPreviewUI.FormPreview.QRPreview1.QRPrinter.PageCount;
-->上述..會發生violation access的錯誤 ..


QRCompositeReport1.Preview;-->即去將各form的QuickReport Add起來

請問,我要如何在TQRCompositeReport preview 的時候將總頁數抓出,並置於各個分別form裡的QuickRep元

請遇過此問題人,不吝賜教..please...tks...
Fishman
尊榮會員


發表:120
回覆:1949
積分:2163
註冊:2006-10-28

發送簡訊給我
#2 引用回覆 回覆 發表時間:2006-07-17 10:55:43 IP:210.65.xxx.xxx 未訂閱

1.設立兩個全域變數
...
private
{ Private declarations }
TotalPage,CurrentPage : Integer;
Public
...

2.在每個 QuickRep 的OnStartPage事件加入以下程式碼
procedure TForm1.QuickRep1StartPage(Sender: TCustomQuickRep);
begin
Inc(CurrentPage);
end;

3.在每個 QuickRep的PageHeader加入一個QRLabel並於其OnPrint事件加入以下程式碼
procedure TForm1.QRLabel7Print(sender: TObject; var Value: String);
begin
Value := IntToStr(CurrentPage) '/' IntToStr(TotalPage);
end;

4.呼叫預覽時
procedure TForm1.Button1Click(Sender: TObject);
begin
...
CurrentPage := 0;
QRCompositeReport1.Reports.Clear;
QRCompositeReport1.Prepare;
TotalPage := CurrentPage;
CurrentPage := 0;
QRCompositeReport1.Preview;
end;

PS:相同程式碼可共用,只要指定相同事件即可

------
Fishman
系統時間:2024-04-28 20:52:33
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!