微信公众号 
图码生活

每天发布有五花八门的文章,各种有趣的知识等,期待您的订阅与参与
电脑报 1992-2001 十年文章全集
电脑报 1992-2001 十年文章全集
包含从 1992 年 - 2001 年间,两万余篇期刊文章,查询最少输入两个字符
随便看看
读取中
读取中
标题dBASEⅢ报表打印程序编程技巧一例
栏目软件操作与技巧
作者钟国超
发布1994-12-02
  对于较大的报表打印程序,调试是一件十分麻烦的事,而且,调试好的程序由于某些细节没有考虑周全,常常会出现可以正确运行,但其打印效率、效果却不很理想的现象。
  在数据库报表打印中,将数据一一 读出并打印是一个经常性的操作,一般初学者常会使用类似以下的方法:
  ……
  use 工资库
  a=a+1
  set device to print
  @ a,5 say"|"
  @ a,6 say 姓名(字符型变量)
  @ a,11 say"|"
  @ a,12 say 基本工资(数值型变量,下同)
  @ a,18 say"|"
  @ a,19 say 职务工资
  @ a,25 say"|"
  @ a,26 say 地区补贴
  ……
  这种方法思路简单清晰,直观流畅,是比较容易编制和调试的。但是,这存在着一个打印效率的问题:在程序每读出一个数值型变量数据给打印机打印后,打印机都要回车一次,然后再新走至打印位置打印下一个数据。这样,打印机作了许多的无用功,就显得打印速度十分慢。
  为解决这个问题,能否用打印字符串的方式来打印这些变量呢?根据以上思路,利用“str”命令将数值型的变量变成字符型的变量,再利用字符操作,将一行要打印的数据全部加在一起,生成字符串,然后再送给打印机。如:
  ……
  use 工资库
  a=a+1
  y="|"
  y=y+
  y=y+"|"+str(基本工资,6,2)
  y=y+"|"+str(职务工资,6,2)
  y=y+"|"+str(地区补贴,6,2)
  ……
  y=y+"|"+str(实发工资,7,2)
  set device to print
  @ a,1 say y
  ……
  这样,打印机在打印各变量时,实际上是打印的字符串“y”,就会一次性地打印一整行,不会再出现打印头来回走动的现象。虽然计算机在执行字符串加的操作时会占用一定的时间,但由于内存运行速度大大高于打印机的运行速度,打印机不会因此而等待主机,大大提高了打印机效率,效果十分明显。(钟国超)