微信公众号 
图码生活

每天发布有五花八门的文章,各种有趣的知识等,期待您的订阅与参与
电脑报 1992-2001 十年文章全集
电脑报 1992-2001 十年文章全集
包含从 1992 年 - 2001 年间,两万余篇期刊文章,查询最少输入两个字符
随便看看
读取中
读取中
标题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
  (湖北 董高显)