|
VFP 愛用者社區 本討論區為 Visual Foxpro 愛用者經驗交流的地方, 請多多利用"搜尋"的功能, 先查看看有無前例可循, 如果還有不懂的再發問. 部份主題有附加檔案, 須先註冊成為社區居民才可以下載.
|
上一篇主題 :: 下一篇主題 |
發表人 |
內容 |
Ruey
註冊時間: 2003-03-12 文章: 1698 來自: tunglo
第 1 樓
|
發表於: 星期一 三月 17, 2003 12:24 pm 文章主題: 報表列印技巧之3 |
|
|
如何計算總頁數,以實現“第?頁/總?頁”
在列印前根據細節區所列印的記錄條數,先進行計算,然後再列印,具體代碼:
PUBL mPAGE
SELE XXX &&xxx=供列印的資料表
XX=10 &&XX=細節區所列印的記錄條數
mPAGE=IIF(RECCOUNT()%XX=0,INT(RECCOUNT()/XX),INT(RECCOUNT()/XX)+1)
mPAGE就是總頁數,這樣在需要總頁數的地方就可直接引用mPAGE變數了。 |
|
回頂端 |
|
|
區榮熾
註冊時間: 2005-11-14 文章: 191
第 2 樓
|
發表於: 星期二 一月 13, 2009 8:32 pm 文章主題: Re: 報表列印技巧之3 |
|
|
Ruey 寫到: | 如何計算總頁數,以實現“第?頁/總?頁”
在列印前根據細節區所列印的記錄條數,先進行計算,然後再列印,具體代碼:
PUBL mPAGE
SELE XXX &&xxx=供列印的資料表
XX=10 &&XX=細節區所列印的記錄條數
mPAGE=IIF(RECCOUNT()%XX=0,INT(RECCOUNT()/XX),INT(RECCOUNT()/XX)+1)
mPAGE就是總頁數,這樣在需要總頁數的地方就可直接引用mPAGE變數了。 |
Ruey 仁兄: 您好!我常在網上看到您的大作,收獲豐富,謝謝您的慷慨.....
今天看到這技巧之3, mPAGE 的設定,在遇到恰好等於 0 時,有機會漏失資料
建議 mPage值恰好等於 0 時,要加1 ,就 OK 了,可以修改如下嗎?
mPAGE=INT(Reccount()/XX)+IIF(MOD(RECCOUNT(),XX)=>0, 1, 0)
再過幾天就 年來囉, 在此先向您 雙手一合 ....恭賀新禧!!! |
|
回頂端 |
|
|
tigerlee39y
註冊時間: 2007-11-26 文章: 132 來自: taipei
第 3 樓
|
發表於: 星期三 一月 14, 2009 12:02 am 文章主題: |
|
|
還有一種方式, 利用系統變數_pageno
nTotalPages=0
Report Form RPT_PRI_I noconsole &&虛作一遍,找出總頁數
nTotalPages=_pageno
*_pageno就是總頁數 _________________ 各取所需 各盡所能 |
|
回頂端 |
|
|
janlih
註冊時間: 2003-11-04 文章: 69
第 4 樓
|
發表於: 星期三 一月 14, 2009 9:10 am 文章主題: |
|
|
不同印表機,細節區所列印的筆數也不同 |
|
回頂端 |
|
|
區榮熾
註冊時間: 2005-11-14 文章: 191
第 5 樓
|
發表於: 星期三 一月 14, 2009 11:45 am 文章主題: |
|
|
tigerlee39y 寫到: | 還有一種方式, 利用系統變數_pageno
nTotalPages=0
Report Form RPT_PRI_I noconsole &&虛作一遍,找出總頁數
nTotalPages=_pageno
*_pageno就是總頁數 |
利用虛印一遍方法找出總頁數 _Pageno,就是在最後一頁出問題,會拘留一些資料不印出,(因總數已到,列表機收工了,給你一張空白表單),惱人呵!
因此我設計一小模組,套在列印檔案之後完成印表工作:
************************************************
IF _Tally > 0
Select 0
SELECT Count(A1) AS nCustotal , Sum(B2) AS nChgtotal , Sum(C3) AS nPictotal From (列印檔案名) INTO CURSOR ASD
n_Page= 30 && 每頁長度
n_Custotal =Asd.nCustotal && 單項總計
n_Chgtotal =Asd.nChgtotal && 單項總計
n_Pictotal =Asd.nPictotal && 單項總計
n_Ptotal = INT( n_Custotal / n_Page) + IIF(MOD( n_Custotal , n_Page)=> 0, 1, 0 ) && 總頁數
SELECT (列印檔案名)
GO Top
SET Relation TO cccccc Into aaaaaa
SET Relation TO dddddd Into bbbbbb Additive
Title_01= "( 報 表 名 稱 ) "
Report Form Reportss.frx Noconsole Preview
ENDIF
****************************************************
在報表內設變數 4 ,初設值=0;
nChgtotal=nChgtotal+(欄位名稱) &&變數的多少依你需要而增減
nChgtotal=nChgtotal+(欄位名稱)
nChgtotal=nChgtotal+(欄位名稱)
以上是每頁的累計數
nNo =nNo+1 (這是每列編號)
****************************************************
當在 Preview 視窗內就能知道 n_page=? 是一頁的長度而就可以更正
以上程式碼僅供參考,至於各數值的位置,在報表上則由您來發揮吧! (假如有興趣的話) |
|
回頂端 |
|
|
chilin
註冊時間: 2003-10-01 文章: 79 來自: Taipei,Taiwan
第 6 樓
|
發表於: 星期三 一月 14, 2009 1:07 pm 文章主題: |
|
|
VFP8.0 已有此變數 _PAGETOTAL _________________ 一個喜愛Latte的男人 |
|
回頂端 |
|
|
區榮熾
註冊時間: 2005-11-14 文章: 191
第 7 樓
|
發表於: 星期三 一月 14, 2009 8:06 pm 文章主題: |
|
|
chilin 寫到: | VFP8.0 已有此變數 _PAGETOTAL |
不知該變數有否作到我提到的缺失修正(+1),才能將最後資料印出 。 |
|
回頂端 |
|
|
tigerlee39y
註冊時間: 2007-11-26 文章: 132 來自: taipei
第 8 樓
|
發表於: 星期四 一月 15, 2009 5:06 am 文章主題: |
|
|
不就是在報表的form裡面放一個變數欄位吧,為啥最後一頁印不出? 不懂
ALLTRIM(STR(_PAGENO))+" / "+alltrim(str(nTotalPages))+" 頁" _________________ 各取所需 各盡所能 |
|
回頂端 |
|
|
區榮熾
註冊時間: 2005-11-14 文章: 191
第 9 樓
|
發表於: 星期四 一月 15, 2009 7:15 am 文章主題: |
|
|
tigerlee39y 寫到: | 不就是在報表的form裡面放一個變數欄位吧,為啥最後一頁印不出? 不懂
ALLTRIM(STR(_PAGENO))+" / "+alltrim(str(nTotalPages))+" 頁" |
那種情形是這樣的;
頁的長度剛好等於0時,在最後的一頁就會產生缺失,這是VF6的狀況,所以我寫總頁數n_Ptotal時,當mod(reccount(), n_page) =>0, 1, 0),加上1以解決之,這是實作發生的狀況,特提出說明而已....
而你用 VF8的函數,我就不知道會不會.......也許經改善過了吧! |
|
回頂端 |
|
|
goodnight
註冊時間: 2008-10-13 文章: 472 來自: 台南市
第 10 樓
|
發表於: 星期五 三月 20, 2009 8:51 pm 文章主題: Re: 報表列印技巧之3 |
|
|
Ruey 寫到: | 如何計算總頁數,以實現“第?頁/總?頁”
在列印前根據細節區所列印的記錄條數,先進行計算,然後再列印,具體代碼:
PUBL mPAGE
SELE XXX &&xxx=供列印的資料表
XX=10 &&XX=細節區所列印的記錄條數
mPAGE=IIF(RECCOUNT()%XX=0,INT(RECCOUNT()/XX),INT(RECCOUNT()/XX)+1)
mPAGE就是總頁數,這樣在需要總頁數的地方就可直接引用mPAGE變數了。 |
VFP 9 有一個 叫 _PAGETOTAL 的變數, 非常好用 |
|
回頂端 |
|
|
ericklin
註冊時間: 2007-11-14 文章: 107 來自: 台中市
第 11 樓
|
發表於: 星期三 三月 25, 2009 2:59 am 文章主題: |
|
|
>>>>VFP 9 有一個 叫 _PAGETOTAL 的變數, 非常好用
在報表分組時 沒作用 ,當一個報表 _PAGETOTAL有20頁
但 A組共5頁 應該顯示 1/5 但 結果確顯示 1/20。
這是我的使用經驗 覺得vFP9.0 的 _PAGETOTAL 超級難用
水晶報表的 PAGETOTAL 就沒有這個問題---------供大家參考 或者有那位先進 能克服vFP9.0 的 _PAGETOTAL的使用缺點 |
|
回頂端 |
|
|
goodnight
註冊時間: 2008-10-13 文章: 472 來自: 台南市
第 12 樓
|
發表於: 星期五 三月 27, 2009 11:50 pm 文章主題: |
|
|
ericklin 寫到: | >>>>VFP 9 有一個 叫 _PAGETOTAL 的變數, 非常好用
在報表分組時 沒作用 ,當一個報表 _PAGETOTAL有20頁
但 A組共5頁 應該顯示 1/5 但 結果確顯示 1/20。
這是我的使用經驗 覺得vFP9.0 的 _PAGETOTAL 超級難用
水晶報表的 PAGETOTAL 就沒有這個問題---------供大家參考 或者有那位先進 能克服vFP9.0 的 _PAGETOTAL的使用缺點 |
嗯, 如果多個 _gruoppagetotal 可能就很完美了吧
不過正常來說, 大多看總頁數吧 |
|
回頂端 |
|
|
朱育興
註冊時間: 2003-08-25 文章: 661 來自: 台中市大里區
第 13 樓
|
發表於: 星期六 三月 28, 2009 9:15 am 文章主題: |
|
|
_gruoppagetotal 的作法,可利用 VFP9 的 [二次計算] 的報表處理概念,有關資料可參考 VFP 的說明檔,但如何用看各人領悟了 _________________ 希望有更多人來參與
VFP wiki - 需要大家一起完成的VFP電子書與FAQ |
|
回頂端 |
|
|
ericklin
註冊時間: 2007-11-14 文章: 107 來自: 台中市
第 14 樓
|
發表於: 星期五 十一月 19, 2010 5:05 pm 文章主題: |
|
|
[二次計算] 的報表處理概念 ???
VFP 的說明檔 TwoPassProcess Property 有看沒有懂
有沒有人寫出 範例 可供參考 |
|
回頂端 |
|
|
foxy
註冊時間: 2007-08-16 文章: 231 來自: 泰國
第 15 樓
|
發表於: 星期日 十一月 21, 2010 3:29 pm 文章主題: |
|
|
ericklin 寫到: | >>>>VFP 9 有一個 叫 _PAGETOTAL 的變數, 非常好用
在報表分組時 沒作用 ,當一個報表 _PAGETOTAL有20頁
但 A組共5頁 應該顯示 1/5 但 結果確顯示 1/20。
這是我的使用經驗 覺得vFP9.0 的 _PAGETOTAL 超級難用
水晶報表的 PAGETOTAL 就沒有這個問題---------供大家參考 或者有那位先進 能克服vFP9.0 的 _PAGETOTAL的使用缺點 |
可以先把資料分組,再逐個印出, _PAGETOTAL就正常了. 例如:
SELECT DISTINCT customerCode from mytbl INTO CURSOR mydummy
SCAN
m.lcCode=customerCode
SELECT * FROM mytbl where customerCode=lcCode INTO CURSOR myGroup
REPORT FORM myFrx to Printer
ENSCAN _________________ 進銷存+生產製造+會計+員工薪資+CRM+POS零售+餐廳手機app+電商手機app+電商網站,物流系統. 正/簡體中文,英,日,泰,緬甸文. MS SQL Server + 前台 VFP + PHP 網站 + Flutter 手機 App, 都共享 MS SQL Server的資料. www.foxacc.com LINE: mike-lm |
|
回頂端 |
|
|
|
|
您 無法 在這個版面發表文章 您 無法 在這個版面回覆文章 您 無法 在這個版面編輯文章 您 無法 在這個版面刪除文章 您 無法 在這個版面進行投票 您 無法 在這個版面附加檔案 您 無法 在這個版面下載檔案
|
|