全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1285
推到 Plurk!
推到 Facebook!

FASTREPOR分組報表的[PAGE]與[TOTALPAGE]

尚未結案
dengguo
一般會員


發表:41
回覆:49
積分:23
註冊:2004-01-09

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-04-21 22:17:30 IP:218.18.xxx.xxx 未訂閱
請問這個[PAGE]與[TOTALPAGE]可否按分組計? 比如說:按公司名分組後,A公司的報表有3頁,B公司的報表有5 頁,然後顯示頁次時A公司那給就顯示為 1 OF 3 2 OF 3 .... B公司顯示為 1 OF 5 2 OF 5 ....... 我的是FR3 謝謝!!
chinyu
高階會員


發表:12
回覆:157
積分:153
註冊:2002-06-14

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-04-28 22:08:51 IP:220.140.xxx.xxx 未訂閱
引言: 請問這個[PAGE]與[TOTALPAGE]可否按分組計? 比如說:按公司名分組後,A公司的報表有3頁,B公司的報表有5 頁,然後顯示頁次時A公司那給就顯示為 1 OF 3 2 OF 3 .... B公司顯示為 1 OF 5 2 OF 5 ....... 我的是FR3 謝謝!!
以下是網友討論,我記下來的,不過我沒試過,所以不要問我了,請參考。
page/totalpage   
 
1.放一個Report Head 並在onBeforePrint 寫一command 
  gpcount:=0; //紀錄群組編號     2.放一個Group Head 並在onBeforePrint 寫一command 
  gpcount:=gpcount 1; //群組編號 1 代表目前的群組為第幾個群組 
  gP:=0; //目前群組的頁次 
3.頁尾放上一個MEMO 並在MEMO的OnBeforePrint寫 
  GP:=GP 1; //計算目前群組的頁次 
  iF NOT FINALPASS THEN 
    ARR[gpcount]:=GP //紀錄該群組編號的總頁次 
  ELSE 
    AP:=ARR[gpcount]; //將總頁次放在AP這個變數 
  只要在這個MEMO MEMO屬性填入 [gp]/[ap] 
   
如果Group Head 是每頁都列印的話 在第2步驟 還要在判斷Group 欄位有變化才能去執行        
 
後來頁次的解決如下 
報表標題 
MyArr:=0; 
------------------------ 
頁首 
MyPage := MyPage   1 ; 
MyNowPage := MyPage ; 
------------------------ 
群組表頭 
MyArr:=MyArr 1; 
if FinalPass then 
begin 
MyTotalPage := Arr[MyArr] ; 
end ; 
------------------------ 
群組表尾 
if not FinalPass then 
Arr[MyArr] := MyPage ;     MyPage := 0 ; 
------------------------ 
頁尾 
一個meno [MyNowPage] / [MyTotalPage] 
chinyu
高階會員


發表:12
回覆:157
積分:153
註冊:2002-06-14

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-04-28 22:18:31 IP:220.140.xxx.xxx 未訂閱
引言: 請問這個[PAGE]與[TOTALPAGE]可否按分組計? 比如說:按公司名分組後,A公司的報表有3頁,B公司的報表有5 頁,然後顯示頁次時A公司那給就顯示為 1 OF 3 2 OF 3 .... B公司顯示為 1 OF 5 2 OF 5 ....... 我的是FR3 謝謝!!
請參考 FastReport programmer manual 的以下兩個主題,應也可以做。 Building a composite report (batch printing).................... 20 Numbering of pages in a composite report........................ 20
goat
高階會員


發表:53
回覆:130
積分:134
註冊:2002-06-03

發送簡訊給我
#4 引用回覆 回覆 發表時間:2005-05-04 16:59:32 IP:202.168.xxx.xxx 未訂閱
var
  iGroupPage: integer;    procedure GroupHeader1OnBeforePrint(Sender: TfrxComponent);
begin
  with GroupHeader1, Engine do
  begin
    iGroupPage := 0;
  end;
end;    procedure PageFooter1OnBeforePrint(Sender: TfrxComponent);
begin
  with PageFooter1, Engine do
  begin
    iGroupPage := iGroupPage   1; 
  end;
end;    //Memo20 在PageFooter上面
procedure Memo20OnBeforePrint(Sender: TfrxComponent);
begin
  Memo20.Text := '- ' IntToStr(iGroupPage) ' -';
end;
我是這樣做的,可以實現群組的頁數。
dengguo
一般會員


發表:41
回覆:49
積分:23
註冊:2004-01-09

發送簡訊給我
#5 引用回覆 回覆 發表時間:2005-05-12 20:51:52 IP:218.18.xxx.xxx 未訂閱
按chinyu大大提供的方法,得到了想要的結果 參考 FastReport programmer manual 的以下兩個主題,應也可以做。 Building a composite report (batch printing).................... 20 Numbering of pages in a composite report........................ 20 具體做法我已作了筆記,請需要的看下面鏈接 http://www.denguo.com/mx.asp?id=157
系統時間:2024-05-02 20:27:28
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!