一、部分与打印有关的系统变量
: j$ h# [1 Z$ j+ {. ^ VFP本身为我们提供了几个与打印有直接关系的系统变量,它们是

部分)
6 R$ F6 M7 _3 a_BOX 是否打印文字边框,.T.=打印
* W. R* z3 {* L2 v1 s_GETNPD 指定或保存打印机接口驱动程序的文件名。
# }, H( } t1 ]6 c. t D6 E_PADVANCE 设定打印纸进纸方式,=FORMFEED(默认)整张进纸。
4 k5 I% \* q, V1 j* j, D# X" {0 z_PAGENO 设定或保存当前的打印页号。
4 ~- G/ W) I( }* _- }
_PBPAGE 设定或返回打印的起始页号。
7 F$ T) ]7 Q2 n# s5 V. [_PEPAGE 设定或返回打印的终止页号。
; Q5 Q8 D5 F1 d/ N* H* w3 Y; d* A9 p
_PCOLNO 设定或返回当前打印头的列。
& `- f/ `, c# a3 a* G_PLINENO 设定或返回当前打印头的行。
* V+ f; z! D$ Q, @) H
_PCOPIES 设定或返回打印份数。
- }6 M7 y6 q2 H2 L
_PLENGTH 设定或返回打印纸的页长,默认=66行长。
' b* ?. I% p* G) o L9 {# J
_PPITCH 设定打印机的打印密度。
7 p$ c) @: N5 B+ V2 |. [2 q_PQUALITY 设定打印机的打印质量。
+ r& N% c0 G: Z! c: u1 Z+ ^
... ...
: q @! C O1 `9 g$ H8 t 这些变量在设计报表程序时,有些是很有用的,故在此列出。
二、一些常用的打印技巧
" `# g+ N1 S1 F- ^) m% s5 x+ k 1.怎样打印指定的页
: P% M3 V; w% C# m! p2 Q- u7 i
REPORT FORM XXXX RANGE 2,5 TO PRINTER &&从第2起打至第5页止
6 a% Y. h- |" s7 r4 x% r- y
2.如何计算总页数,以实现“第?页/总?页”
+ K! [* K2 t7 S& m K 在打印前根据细节区所打印的记录条数,先进行计算,然后再打印,具体代码:
) f( ?# O; R l% f8 I7 cPUBL mPAGE
, l" p/ v, I& o+ M6 C/ ~4 |SELE XXX &&xxx=供打印的数据表
0 e* u" G3 A$ }( ` U) _4 ~- c7 pXX=10 &&XX=细节区所打印的记录条数
+ b( i9 l5 ?0 \6 U
mPAGE=IIF(RECCOUNT()%XX=0,INT(RECCOUNT()/XX),INT(RECCOUNT()/XX)+1)
Y9 p8 r2 t& a
mPAGE就是总页数,这样在需要总页数的地方就可直接引用mPAGE变量了。
: {, a l% Z) t8 D 3.如何使报表打满一页
5 x& h; Y; i4 c- Q
如果打印的记录不足一页,“页注脚”会自动上移,影响报表的美观,解决的办法和上面的差不多,即补足一页中所缺少的记录(补足空白记录):
% k9 m8 a/ i: r. I2 `% Z
SELE XXX &&xxx=供打印的数据表
4 @, r! U* z6 l% Y6 ]* z( PXX=10 &&XX=一页细节区所打印的记录条数
, r* J$ r# x# F7 n
mI=RECCOUNT()%XX &&取得缺少的记录条数
8 p& ]+ @! A& h; ]3 g0 r# f9 i
FOR I=1 to mI
" u! |0 I0 ?4 S3 W5 A0 n APPEND BLANK
" V4 B- V) i9 ?" f6 K; Q4 _ENDF