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”,就会一次性地打印一整行,不会再出现打印头来回走动的现象。虽然计算机在执行字符串加的操作时会占用一定的时间,但由于内存运行速度大大高于打印机的运行速度,打印机不会因此而等待主机,大大提高了打印机效率,效果十分明显。(钟国超)