一、部分与打印有关的系统变量5 f4 z7 r1 w& b g& q l1 ?( _
VFP本身为我们提供了几个与打印有直接关系的系统变量,它们是

部分)
[) `' ?. y/ b+ @$ I: O; t
_BOX 是否打印文字边框,.T.=打印
' [$ F& M9 Q# S4 q) ]# a
_GETNPD 指定或保存打印机接口驱动程序的文件名。
9 |; U3 M3 Y& b t ~; ^5 O2 O_PADVANCE 设定打印纸进纸方式,=FORMFEED(默认)整张进纸。
' i- a, a* Y3 Z% b' L: ]
_PAGENO 设定或保存当前的打印页号。
9 r. A& J; y0 K2 k |1 x1 m_PBPAGE 设定或返回打印的起始页号。
d3 [' k, z( I% M5 h
_PEPAGE 设定或返回打印的终止页号。
. [6 O* J2 F1 h6 S& K_PCOLNO 设定或返回当前打印头的列。
1 @2 M- d; a3 L' a. o$ \
_PLINENO 设定或返回当前打印头的行。
. Q! {5 F* e- }) b: E8 s_PCOPIES 设定或返回打印份数。
: _- w: e/ o. T! {" p& ] o! e w_PLENGTH 设定或返回打印纸的页长,默认=66行长。
$ A( N! h! B; j. x_PPITCH 设定打印机的打印密度。
8 k7 B/ W4 w0 ]_PQUALITY 设定打印机的打印质量。
6 s' i1 |$ a# ^$ w+ T/ v$ Q... ...
# M) K% r, G4 O( j! z% ?
这些变量在设计报表程序时,有些是很有用的,故在此列出。
二、一些常用的打印技巧
! I: ?' h2 Z- Y9 a4 U 1.怎样打印指定的页
[3 A, m7 k; s1 I
REPORT FORM XXXX RANGE 2,5 TO PRINTER &&从第2起打至第5页止
M) n# ]- G! S' w 2.如何计算总页数,以实现“第?页/总?页”
7 z u, |4 l: I3 h3 H
在打印前根据细节区所打印的记录条数,先进行计算,然后再打印,具体代码:
$ \. A) S: E! U
PUBL mPAGE
# N2 Q+ @ w. O, \6 z `1 j
SELE XXX &&xxx=供打印的数据表
0 X3 Y, N8 T2 f. z
XX=10 &&XX=细节区所打印的记录条数
; l: x I* c( N+ HmPAGE=IIF(RECCOUNT()%XX=0,INT(RECCOUNT()/XX),INT(RECCOUNT()/XX)+1)
% C( \' X; V' x+ F5 F0 @
mPAGE就是总页数,这样在需要总页数的地方就可直接引用mPAGE变量了。
3 h# f8 {6 X( X 3.如何使报表打满一页
! I& U( n+ _+ `6 C" V' ?- o 如果打印的记录不足一页,“页注脚”会自动上移,影响报表的美观,解决的办法和上面的差不多,即补足一页中所缺少的记录(补足空白记录):
) U# x/ F1 e; oSELE XXX &&xxx=供打印的数据表
: G9 ^( X3 w- k( S" N- d3 G
XX=10 &&XX=一页细节区所打印的记录条数
6 v( i A1 v& x! L3 y1 [
mI=RECCOUNT()%XX &&取得缺少的记录条数
; r4 Y d/ E* D: ^# R# O( s
FOR I=1 to mI
& C4 M2 ]- N( C: |! J APPEND BLANK
* u- v! }8 C2 s" ?ENDF