dBASEⅢ超宽打印制表程序设计技巧 湖北 董高显 1994-12-16 实际情况是使用16×16点阵时,虽然字符缩小了但一行打印的字符超过256个后打印机就自动换行,而不管一行纸是否写到了最右边。 为此将一行要打印内容的前半部分送给一个内存变量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 (湖北 董高显)