一区二区国产高清视频在线_真人性做爰A片免费_强伦人妻BD在线电影_亚洲熟妇无码AV_免费人成视频在线观看网站_亚洲欧美精品午睡沙发_在线观看无码的免费网站_中文字幕无码A片久久_日韩欧美国产一区精品_久久精品女人天堂av

重慶醫(yī)科大學(xué)論壇

 找回密碼
 注冊(開放注冊)
搜索
查看: 2771|回復(fù): 0
打印 上一主題 下一主題

[計(jì)算機(jī)類] 二級VFP報(bào)表設(shè)計(jì)的常用技巧

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
1#
發(fā)表于 2007-1-30 13:41:44 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
一、部分與打印有關(guān)的系統(tǒng)變量
  VFP本身為我們提供了幾個(gè)與打印有直接關(guān)系的系統(tǒng)變量,它們是部分)

_BOX    是否打印文字邊框,.T.=打印
_GETNPD   指定或保存打印機(jī)接口驅(qū)動(dòng)程序的文件名。
_PADVANCE 設(shè)定打印紙進(jìn)紙方式,=FORMFEED(默認(rèn))整張進(jìn)紙。
_PAGENO   設(shè)定或保存當(dāng)前的打印頁號。
_PBPAGE   設(shè)定或返回打印的起始頁號。
_PEPAGE   設(shè)定或返回打印的終止頁號。
_PCOLNO   設(shè)定或返回當(dāng)前打印頭的列。
_PLINENO  設(shè)定或返回當(dāng)前打印頭的行。
_PCOPIES  設(shè)定或返回打印份數(shù)。
_PLENGTH  設(shè)定或返回打印紙的頁長,默認(rèn)=66行長。
_PPITCH   設(shè)定打印機(jī)的打印密度。
_PQUALITY 設(shè)定打印機(jī)的打印質(zhì)量。
... ...
  這些變量在設(shè)計(jì)報(bào)表程序時(shí),有些是很有用的,故在此列出。
二、一些常用的打印技巧
  1.怎樣打印指定的頁
REPORT FORM XXXX RANGE 2,5 TO PRINTER  &&從第2起打至第5頁止

  2.如何計(jì)算總頁數(shù),以實(shí)現(xiàn)“第?頁/總?頁”
在打印前根據(jù)細(xì)節(jié)區(qū)所打印的記錄條數(shù),先進(jìn)行計(jì)算,然后再打印,具體代碼:
PUBL mPAGE
SELE XXX   &&xxx=供打印的數(shù)據(jù)表
XX=10     &&XX=細(xì)節(jié)區(qū)所打印的記錄條數(shù)
mPAGE=IIF(RECCOUNT()%XX=0,INT(RECCOUNT()/XX),INT(RECCOUNT()/XX)+1)

mPAGE就是總頁數(shù),這樣在需要總頁數(shù)的地方就可直接引用mPAGE變量了。

  3.如何使報(bào)表打滿一頁
如果打印的記錄不足一頁,“頁注腳”會(huì)自動(dòng)上移,影響報(bào)表的美觀,解決的辦法和上面的差不多,即補(bǔ)足一頁中所缺少的記錄(補(bǔ)足空白記錄):

SELE XXX    &&xxx=供打印的數(shù)據(jù)表
XX=10     &&XX=一頁細(xì)節(jié)區(qū)所打印的記錄條數(shù)
mI=RECCOUNT()%XX    &&取得缺少的記錄條數(shù)
FOR I=1 to mI
  APPEND BLANK
ENDF

  4.報(bào)表在設(shè)計(jì)時(shí)明明可以打印,可一安裝到其它機(jī)器或重裝系統(tǒng)后,就會(huì)出現(xiàn)“XXX 帶區(qū)太大不能放入頁中”等提示,而且無法正常退出(尤其是對自定義紙張大小的程序),這是為什么呢?  我們用報(bào)表設(shè)計(jì)器設(shè)計(jì)的打印程序,保存退出后,磁盤上就會(huì)出現(xiàn) .frx和.FRT文件,我們的所有設(shè)計(jì)均保存在這兩個(gè)文件中。在VFP中 .frx相當(dāng)于.DBF表,.FRT相當(dāng)于.FPT備注型文件,我們用USE XXX.frx 可以象打開.DBF文件一樣打開.frx文件,在.frx文件中有個(gè)Expr備注型字段名,在這個(gè)字段名中有如下內(nèi)容:其中()內(nèi)是我所加的譯文

RIVER=winspool
DEVICE=Epson LQ-1600K
OUTPUT=LPT1:
ORIENTATION=0   
PAPERSIZE=256       (紙張大小)
PAPERLENGTH=1000     (紙張長度)
PAPERWIDTH=1600      (紙張寬度)
DEFAULTSOURCE=8     (默認(rèn)來源)
PRINTQUALITY=180     (打印質(zhì)量)
COLOR=2
YRESOLUTION=180
TTOPTION=1

從這個(gè)Expr備注型字段里可以看出:PAPERSIZE=256 這里的256表示是自定義紙張,如果:
PAPERSIZE=9 為A4、11為A5 具體數(shù)據(jù)見VFP幫助的Printfo()一節(jié), 而:
PAPERLENGTH=1000  (紙張長度)
PAPERWIDTH=1600   (紙張寬度)
則分別代表自定義紙張的長度和寬度。 之所以會(huì)出現(xiàn)上面提到的問題,是因?yàn)橄到y(tǒng)重新安裝打印機(jī)后,WIN系統(tǒng)一般默認(rèn)的是A4打印紙,與我們設(shè)計(jì)時(shí)保存在.frx文件里的紙張不符,因而造成這種情況。 那么如何避免出現(xiàn)這個(gè)問題呢?
  下面是一段檢測紙張類型的代碼,供您參考:
這段代碼必須放在執(zhí)行report form ... 命令前。
use xxx.frx in 0 ALIAS mPrint    &&在空閑工作區(qū)以mPrint別名打開xxx.frx文件
x=atcline('PAPERSIZE',mPrint.Expr) &&取得PAPERSIZE在Expr字段中的行
sSIZE=subs(mline(mPrint.Expr,x),11) &&取得設(shè)計(jì)時(shí)保存的紙張類型
mSIZE=allt(str(Prtinfo(2)))     &&取得當(dāng)前打印機(jī)默認(rèn)的紙張類型
x=atcline('PAPERLENGTH',mPrint.Expr) &&取得紙張長度在Expr字段中的行
sLEN=subs(mline(mPrint.Expr,x),13)  &&取得紙張長度
x=atcline('PAPERWIDTH',mPrint.Expr) &&取得紙張寬度在Expr字段中的行
sWIDTH=subs(mline(mPrint.Expr,x),12) &&取得紙張寬度
use in 'mPrint'          &&關(guān)閉xxx.frx文件
if sSIZE=mSIZE          &&如果相符,則正常打印
 report form xxx.frx to printer
else
 Messagebox('請?jiān)O(shè)定打印機(jī)紙張為自定義:長='+sLEN+',寬='+sWIDTH,0+48+0,'提示')
 report form xxx.frx to printer prompt &&打印前先打開打印機(jī)設(shè)置對話窗口
endi

  5.不讓打印的結(jié)果顯示在屏幕上
report form xxx.frx to printer Noconsole

  6.打印或打印預(yù)覽時(shí),如何使系統(tǒng)打印工具條不出現(xiàn)  系統(tǒng)提供的打印工具條,我們無法檢測其各按鈕的事件,不能掌握用戶當(dāng)時(shí)操作的情況,那如何不讓它出現(xiàn)呢?
  首先您得做一個(gè)表單(最好是模式表單),用于代替系統(tǒng)的預(yù)覽窗口(Preview),然后:
do form dybd          &&打開這個(gè)表單
report form xxx.frx windows dybd
  這樣系統(tǒng)提供的打印工具條就不會(huì)出現(xiàn)了。
  當(dāng)然如果自己再做個(gè)類似于打印工具條的類,既可掌握按鈕事件又美觀就更好了,注:經(jīng)查VFP3.0可能沒有windows子句。

轉(zhuǎn)帖自:黑龍江計(jì)算機(jī)等級考試網(wǎng)
您需要登錄后才可以回帖 登錄 | 注冊(開放注冊)

本版積分規(guī)則

手機(jī)訪問本頁請
掃描左邊二維碼
本網(wǎng)站聲明
本網(wǎng)站所有內(nèi)容為網(wǎng)友上傳,若存在版權(quán)問題或是相關(guān)責(zé)任請聯(lián)系站長!
站長電話:0898-66661599    站長聯(lián)系QQ:12726567   
站長微信:hainanok
請掃描右邊二維碼
www.myujob.com

小黑屋|手機(jī)版|Archiver|重慶醫(yī)科大學(xué)論壇 ( 瓊ICP備10001196號-2 )

GMT+8, 2025-11-18 23:23 , Processed in 0.504652 second(s), 14 queries .

Powered by 校園招聘信息

© 2001-2020 重慶醫(yī)科大學(xué)論壇校園招聘

快速回復(fù) 返回頂部 返回列表