如何在运行时控制报表的打印机属性

概要

<script type=text/javascript>loadTOCNode(1, 'summary');</script>
设计报表时,开发人员不总是知道将使用哪一台打印机。 因此,开发人员需要为用户提供一种方法在运行时更改打印机和打印机属性。 这篇文章按示例演示如何编写的代码的执行此操作。

回到顶端

更多信息

<script type=text/javascript>loadTOCNode(1, 'moreinformation');</script>
Visual FoxPro 已增强,并且添加命令和控制和获取打印机信息的函数。 请参阅有关这些命令更多信息帮助菜单:
   SET PRINTER TO
   APRINTER()
   PRTINFO()
   GETPRINTER()
				
的下面的示例演示报表可以发送到与打印双工模式和横向选择,LPT 2 上的 HP LaserJet IIID,然后相同的报告可以发送到一个 Panasonic KX-P1180 在 LPT 1 上使用自定义纸张大小。

若要运行示例代码,您必须在 Windows 中安装打印机。 如果您不,您需要安装它们,和 Panasonic 的 Windows 中的设置在打印机设置下一个用户定义的纸张大小。 在 1778 设置用户定义的大小在 2159 作为测量单位与宽度使用毫米 (MM) 和长度。

出于测试目的,您可能会将打印机连接到而不是 LPT 1 或 LPT 2 的 FILE。 如果确实要连接到 FILE,请确保您还替换 FILE 为 LPT 1 或 LPT 2 在下面的示例代码。

有关安装或更改 Windows 中的打印机设置的详细信息,请参见 Windows 的帮助菜单。

回到顶端

分步示例

<script type=text/javascript>loadTOCNode(2, 'moreinformation');</script> 此示例适用于在以下平台:
Windows 3.1
Windows for Workgroups 3.11
Windows 95
Windows NT 3.5 或 3.51
Windows NT 4.0
Windows 95
Windows 98
Windows 98SE
Windows 2000
Windows XP
Windows 2003 服务器
注意 Visual FoxPro 5.0 和更高版本仅在 32 位操作系统 (如 Windows 95,Windows NT 3.5 或更高版本下的运行。 请参阅特定版本的 Visual FoxPro,以确定支持的操作系统产品文档。

如果您有问题设置自定义纸张大小或其他打印机属性,确认您有最新的打印机驱动程序用于您的特定平台,和查看打印机文档或与制造商联系,以了解有关您的打印机的功能更多信息。
1.在 Visual FoxPro 中打开 Testdata.dbc 6.0
2.通过快速报表创建一个新的报表。 选择客户表并将 Cust_id 和公司字段添加到该报表。 将报表另存为 Myreport,然后关闭该报表。
3.创建一个名包含这些行 Panprint.txt 的文本文件:
   DEVICE=Panasonic KX-P1180
   OUTPUT=LPT1:
   ORIENTATION=0
   PAPERSIZE=256
   PAPERLENGTH=1778
   PAPERWIDTH=2159
   DEFAULTSOURCE=8
注意 大多数点阵打印机使用 PAPERSIZE = 256 来定义自定义纸张大小。 如果您使用自定义纸张大小,您必须包含 PAPERLENGTH 和 PAPERWIDTH。
4.创建一个名包含这些行 Hpprint.txt 的第二个文本文件:
   DEVICE=HP LaserJet IIID
   OUTPUT=LPT2:
   ORIENTATION=1
   PAPERSIZE=1
   DEFAULTSOURCE=7
   DUPLEX=2
注意 有关不同的打印机设置的详细信息,请参阅 PRTINFO() Visual FoxPro 帮助菜单中。
5.创建一个名为 Runrpt.prg 的程序并输入下面的代码:
   USE Myreport.frx  && Open the FRX as a table
   LOCATE FOR Objtype = 1 AND Objcode = 53  && find the record that holds
   ** the printer information. For more information on the Table Structure
   ** of an .FRX file, see 'Table Structures of Table Files' in Help.

   REPLACE Tag WITH ""  && Remove any Printer codes that may be stored in
   ** the Tag memo

   REPLACE Tag2 WITH ""  && Remove any Printer codes that may be stored in
   ** the Tag2 memo

   APPEND MEMO Expr FROM Hpprint.txt OVERWRITE  && Replace any printer
   ** setting already there with the HP IIID Settings

   USE  && Close Myreport.frx
   SET PRINTER TO NAME 'HP LaserJet IIID'
   REPORT FORM Myreport TO PRINT NEXT 60  && Send the report to the
   ** HP IIID printer using the printer attributes specified in the
   ** Expr memo field.

   USE Myreport.frx  && Open the FRX as a table
   LOCATE FOR Objtype = 1 AND Objcode = 53  && find the record that holds
   ** the printer information

   APPEND MEMO Expr FROM Panprint.txt OVERWRITE  && Replace any printer
   ** setting already there with the Panasonic KX-P1180 Settings

   USE  && Close Myreport.frx
   SET PRINTER TO NAME 'Panasonic KX-P1180'
   REPORT FORM Myreport TO PRINT NEXT 60  && Send the report to the
   ** Panasonic KX-P1180 printer using the printer attributes
   ** specified in the Expr memo field.
6.保存并运行该程序。

 

来源:http://support.microsoft.com/kb/133163/zh-cn

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值