微信公众号 
图码生活

每天发布有五花八门的文章,各种有趣的知识等,期待您的订阅与参与
电脑报 1992-2001 十年文章全集
电脑报 1992-2001 十年文章全集
包含从 1992 年 - 2001 年间,两万余篇期刊文章,查询最少输入两个字符
随便看看
读取中
读取中
标题数据库管理系统中报表打印的后台实现
栏目软件操作与技巧
作者陕西 张一快
发布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命令后使用?或*统配符,就可将许多报表在后台一并输出,这时后台打印更显得十分方便快捷。
  (陕西 张一快)