|
VFP 愛用者社區 本討論區為 Visual Foxpro 愛用者經驗交流的地方, 請多多利用"搜尋"的功能, 先查看看有無前例可循, 如果還有不懂的再發問. 部份主題有附加檔案, 須先註冊成為社區居民才可以下載.
|
上一篇主題 :: 下一篇主題 |
發表人 |
內容 |
CPS0204
註冊時間: 2014-08-24 文章: 441
第 1 樓
|
發表於: 星期五 一月 01, 2016 3:02 pm 文章主題: 已解決group 的分組,總頁次bug |
|
|
1.原需求:有100張傳票,每張傳票有10-30筆明細不等!
想批次列印,每張傳票印出 頁次:1/1 或 2/5...等(每張的總頁次不等,需依傳票單號分組,不同單號則總頁次不要混加)
2.但受限_PAGETOTAL 在分組時,VFP 有BUG ,分組總頁次 算不準!
3.原先想使用DOS的算法,先算出例: INT( COUNT1/10)..等先算好,再放至CURSOR中,但此時有一個問題,客戶印表機不同或 ,有時摘要特長導至每頁印出的行數為 8到10行,所以無法固定除 10行)
4.此時改用下列即可,一樣是REPORT FORM兩次,以下是用VFP9可用
SELE 0
CREA CURSOR HEAD0 (V_NO C(10),PG_TOT1 N(4)) &&先建立分組頁次檔頭
INDEX ON V_NO TAG OD1
SELECT V_NO FROM MY_VOUR2 INTO CURSOR TEMP0 GROUP BY V_NO &&建立單一檔頭 ,如果原來已有,則不需要
DEFINE WINDOW WIN1 FROM 0,0 TO 5,30 &&定義一個WINDOWS ,以免下面的REPORT弄亂視窗
MOVE WINDOW WIN1 CENTER
ACTIVATE WINDOW WIN1
*--------------------------*
SELE TEMP0
SCAN &&逐筆滾動檔頭
VNO1=V_NO
@1,5 SAY '計算總頁次中: 分組單號='+M.VNO1 COLOR GR+
SELECT MY_VOUR2 &&原來已有的傳票單身
REPORT FORM MY_TABLE1 FOR VNO1=V_NO NOWAIT IN WINDOW WIN1 &&只在WIN1滾動,此行是重點,一定不能加入 NOCONSOLE,否則頁次會不準
* 上行的REPORT有跑過一次, 讓USER看到但很快滾過去
P01=_PAGETOTAL &&補捉到上行的單一組別的總頁次,VFP6改用_PAGENO
SELECT HEAD0
APPEND BLANK
REPL V_NO WITH VNO1,PG_TOT1 WITH P01 &&寫到 HEAD0中
sele temp0
ENDSCAN
*-----------------------------*
DEACTIVATE WINDOW WWIN1
RELEASE WINDOW WIN1
USE IN TEMP0
SELE MY_VOUR2
SET RELA TO V_NO INTO HEAD0 ADDI &&建立RELATION 可讀到HEAD0.的分組頁次!
GO TOP
REPORT FORM MY_TABLE1 PREVIEW &&在REPORT一次,此次可以PREVIEW,讓使用者看到
* 在上行的 MY_TABLE1 報表檔中,加入欄位 (頁次=TRAN(_PAGENO)+' / '+TRAN(HEAD0.PG_TOT1)+' 頁')
* 這樣可以解決每頁次的列印明細列數=為浮動的困難(因傳票摘要太長,有可能折到下1或下2行)!
*註:第一次REPORT 會浪費時間等,但可以批次印出傳票 30張或500張,這樣等應很滑算!
USE IN HEAD0 |
|
回頂端 |
|
|
perry
註冊時間: 2014-07-20 文章: 203
第 2 樓
|
發表於: 星期五 一月 01, 2016 3:41 pm 文章主題: |
|
|
真心建議您印表改用 Excel 輸出,
您會發現 VFP 印表的問題全不是問題!!
Excel 全部直欄寬度設 2 ,沒有做不出的報表格式. |
|
回頂端 |
|
|
CPS0204
註冊時間: 2014-08-24 文章: 441
第 3 樓
|
發表於: 星期五 一月 01, 2016 3:44 pm 文章主題: |
|
|
(真心建議您印表改用 Excel 輸出)
EXCEL也可以,但批次列印,直接使用FOXPRO REPORT更快! |
|
回頂端 |
|
|
perry
註冊時間: 2014-07-20 文章: 203
第 4 樓
|
發表於: 星期六 一月 02, 2016 1:55 am 文章主題: |
|
|
印表用 Excel 輸出,是藉由 Execl 寫出DOS方式的印表,
並非使用它的 group 功能.
1.可利用計數變數,每一傳票跑完再回頭填總頁數.
2.可合併儲存格,縮小字型以適合欄寬.
透過預覽可查出各種報表一頁的列l數,用複製及插入產生下一頁.
設計時比較不會受限制,想怎寫報表就怎麼寫,套表亦同!! |
|
回頂端 |
|
|
|
|
您 無法 在這個版面發表文章 您 無法 在這個版面回覆文章 您 無法 在這個版面編輯文章 您 無法 在這個版面刪除文章 您 無法 在這個版面進行投票 您 無法 在這個版面附加檔案 您 無法 在這個版面下載檔案
|
|