dBASEⅢ报表打印程序编程技巧一例
在数据库报表打印中,将数据一一 读出并打印是一个经常性的操作,一般初学者常会使用类似以下的方法:
……
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”,就会一次性地打印一整行,不会再出现打印头来回走动的现象。虽然计算机在执行字符串加的操作时会占用一定的时间,但由于内存运行速度大大高于打印机的运行速度,打印机不会因此而等待主机,大大提高了打印机效率,效果十分明显。(钟国超)