欢迎来到Doc100.Net免费学习资源知识分享平台!
您的位置:首页 > 程序异常 >

怎么判断标签已经发送到打印机

更新时间: 2014-01-05 02:26:53 责任编辑: Author_N1

 

如何判断标签已经发送到打印机?
我的VFP管理系统,需要打印收款票据
如果已经打印出票据,则字段“打印标记”修改为“.T.",否则打印标记为”F"
我已经设计好标签,表单的“打印”按钮的代码是:

recno=RECNO() 
thisform.timer1.interval=100
LABEL FORM 收据.lbx  RECORD RECNO PDSETUP NOCONSOLE  PREVIEW 
LABEL FORM 收据.lbx  RECORD RECNO PDSETUP NOCONSOLE TO PRINTER PROMPT
thisform.timer1.interval=00
REPLACE 打印标记 WITH .t.

timer1的timer事件代码如下:

release window "打印预览"


我的做法是,先打开一个预览窗口,关闭“打印预览”工具栏,然后重复执行一次打印,并修改字段“打印标记”的值 。

有没有直接判断用户是否将记录内容输出到打印机的方法?
--参考方法--
只需要发一次 label form ... 命令即可
你现在的方法也没法区分用户是否在选择打印机时是否选择了取消打印这种情况

vfp 报表的每个带区都有 OnEntry 和 OnExit 两种事件,可以在其中写上调用某个函数的命令
你的情况只需将这个函数放在主程序或 set proc to ??? 的公用过程库中,只要在函数中用 sys(2040) 判断是在预览模式还是打印模式即可:
if sys(2040) == '2'
    替换已打印标记
endif
然后在标签细节带的 OnExit 中写上  你的标记函数名() 即可

--参考方法--
在打印报表时,如何知道用户是真的打印了,还是点击了取消按钮而没有打印?

*----------------------------------------------------------------
这里说的打印是指点击了软件中的打印按钮,如果是打印机故障或未加电造成没有打印成功是无法从这里得到的。

1、报表中添加一个报表变量
设计报表时,点击菜单上的‘报表’->‘变量...’,出现对话框后,在报表变量
中添加一个报表变量,如‘PrnTF’,其中‘要存储的值’、‘初始的值’、
‘重置’及‘计算’不用修改,用默认值。然后选中‘报表输出后释放’。
最后点击‘确定’。

****************************************************
(英文版)
设计报表时,点击菜单上的‘Report’->‘Variables...’,出现对话框后,在报表变量
中添加一个报表变量,如‘PrnTF’,其中‘Value To store’、‘Initial’、
‘Reset Value based on’及‘Calculation type’不用修改,用默认值。
然后选中‘Release After report’。
最后点击‘确定’。
****************************************************

2、打印时:
Report Form 报表名 To Printer Prompt
*!*---此句运行后,报表变量PrnTF被定义全局变量。
*!*---如果点击了打印按钮,进行了报表输出,报表变量就被释放了。
*!*---如果点击了取消按钮而不打印,报表变量并没有被释放。
*!*---所以通过检测是否存在此变量来判断是否打印了就可以了。
If Vartype(PrnTF)='U'
Messagebox('已打印!',64,'信息提示')
Else
Messagebox('未打印!',64,'信息提示')
Endif


------------------------------------
VFP7.0及以上可以用SYS(2040)-检测报表状态 来做到。

如写一个函数 myFunc,可放到主程序最后或 set proc to ... 指向的过程文件中 
myFunc 函数完成你的 测试报表是否打印来执行某些任务,最后返回一个空字符串 
在报表中加一个域控件,表达式填 =myFunc(),并设置它的 Print When 条件为 sys(2040)='2' 
如果希望用户按下打印按钮即执行 append 操作,则将它放在报表的 title 带区中 
如果希望打印完成才执行,则放到 Summary 带区中 
上一篇:上一篇
下一篇:下一篇

 

随机推荐程序问答结果

 

 

如对文章有任何疑问请提交到问题反馈,或者您对内容不满意,请您反馈给我们DOC100.NET论坛发贴求解。
DOC100.NET资源网,机器学习分类整理更新日期::2014-01-05 02:26:53
如需转载,请注明文章出处和来源网址:http://www.doc100.net/bugs/t/9892/
本文WWW.DOC100.NET DOC100.NET版权所有。