dBASEⅢ超宽打印制表程序设计技巧
为此将一行要打印内容的前半部分送给一个内存变量L1(第一个内存变量的总字节数不能超过256),再将同一行内容的后半部分送给另一个内存变量L2。这时用以下语句就可以在同一行打印超过256个以上的字符。
@0,0 SAY L1
@PROW(),PCOL()-1 SAY L2
以下是我在2.13G环境中用C-dBASEⅢ编制的一个每行超过300个字符的制表程序(该程序在VOLTRON-286微机,AR-3240打印机上调试通过)。后附程序清单。
说明:程序中NYYL是一内存变量文件,它里面存的是以L开头的变量,在ZK0.PRG程序运行前,它们都已被赋值。且NYYL也已建好。使用内存变量编制程序显得简洁,特别是当重复使用某一个固定的内容时,就应把它赋给变量。编程序时遇到使用该内容的地方写上该变量即可。
clear
set talk off
restore from nyyl additive
pf=15
@ 1,20 say "打印时的行距?"get pr pict "99"
read
set device to print
eject
set print on
@ 0,0 say chr (96)+chr(38)+str(pr,2)+chr(96)
?chr(27)+"ID"
@ 1,35 say "物探处固定资产明细帐"
@ 2,32 say "-------------"
?chr(27)+"Ib"
yy=substr(dtoc(date()),7,2)
mm=substr(dtoc(date()),1,2)
dd=substr(dtoc(date()),4,2)
store yy+"年"+mm+"月"+dd+"日"to qq
@ 3,3 say "第 页"
@ 3,60 say "打印本表日期:"
@ prow(),pcol()+1 say qq
? chr(27)+"Im"
@ 4,0 say L11
@ prow(),pco1()-1 SAY L12
@ prow(),0 say L13
@ prow(),pco1()-1 say L14
@ prow(),0 say L15
@ prow(),pco1()-1 say L16
@ prow(),0 say L17
@ prow(),pco1()-1 say L18
@ prow(),0 say L19
@ prow(),pco1()-1 say L20
bb=0
do while bb<2
bb=bb+1
@ prow(),0 say L21
@ prow(),pco1()-1 say L22
@ prow(),0 say L23
@ prow(),pco1()-1 say L24
enddo
@ prow(),0 say L25
@ prow(),pco1()-1 say L26
?chr(27)+"Ib"
@ prow(),3 say "主管领导:"
@ prow(),65 say "制表人:"
@ 1320\pr-75,0 say ""
eject
@ 0,0 say chr(96)+chr(38)+"20"+chr(96)
set print off
clear
set device to screen
return
(湖北 董高显)