数据库管理系统中报表打印的后台实现 陕西 张一快 1995-12-15 MSDOS6.2版本中的PRINT命令格式为: PRINT [/d:device][/b:size][/u:valuel][/m:value2][/s:timeslice][/q:qsize][/t][d1:][path1]filename[/c][/p] 其中参数/d,/b,/q,/s,/u,/m只能在开机后第一次使用时设置,不能再设,否则出错。我们可把它在汉字系统加载完毕后一次驻留即可,然后在程序中任意调用。例如: PRINT /d:LPT1 /b:4096 /q:32 /s:32 /u:5 /m:6 表示打印定向到LPT1,打印缓冲区为4096字节,打印队列最多可存储32个文件,打印时间片为20,等侯打印时间最长为5,打印的字符间隔最大值为6。这些参数可根据情况自行设定。关于该命令的详细用法请参考有关手册。 现以2.13H汉字系统下使用FOXBASE+为例,说明如何调用PRINT实现报表的后台打印。由于PRINT只能打印文本文件,所以首先把要打印的表格输出到一个文本文件中,FOXBASE+的SET PRINT TO<文件名>命令恰好能将数据,制表符,控制符一起输出到一个文本文件。然后用RUN命令调用PRINT打印该文本文件即可。示范如下:假如“报表1”共有两页 set talk off set print on set device to print set print to bb1.txt *将第一页存入bb1.txt文件 @1,1 say chr(27)+'ID' @1,1 say "报表1" @2,1 say chr(27)+'Ia' @2,1 say " " .生成报表1的表体 . @30,1 say" " @31,1 say " " *输出一空行,次行必不可少 set print to bb101.txt *将第二页存入bb101.txt文件 @1,1 say chr(27)+'ID' @1,1 say "报表1 续表01" @2,1 say chr(27)+'Ia' @2,1 say " " .生成报表1的续表的表体 . @30,1 say " " @31,1 say " " set print off RUN PRINT bb1.txt bb101.txt set device to screen RETURN 以上程序在执行后,报表1从后台开始输出,子程序立即返回。 对于换页问题或一页表格不足一张打印纸,可在生成完表体后继续往文本文件后增加适当的空行,调试准确即可。如果文本文件的文件名很规则,还可在PIRNT命令后使用?或*统配符,就可将许多报表在后台一并输出,这时后台打印更显得十分方便快捷。 (陕西 张一快)