VFP不安装打印驱动直接调用打印而且不自动进纸

2024-04-27 03:58

本文主要是介绍VFP不安装打印驱动直接调用打印而且不自动进纸,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

   之前程序要打印都是利服报表(report),设置好打印格式后,就调用report from 来打印,这样有其优点就是更改打印格式容易,但缺点是一定要安装打印机,而且要设好纸张,比如设好了A4纸,那么打印时每走一张A4纸高度就会自动进纸重新打第二页,而且打印驱动通常都自动设了页边距,这部份页边距不同于打印时设置的那些页边距,驱动中设有的页边距是不可调的,也就是说,要想打一页纸从最上边一直打印到最下面是不可能的,他总是会留下一定的上边距下页距.

   这对于要一此特殊的情况就不适用了,比如POS的打印,大多的POS打印机都没有打印驱动的,就算有要找也麻烦,找了还要装,重装了电脑,又要重装驱动,这样对于一套软件来说,其维护的成本无形就增大了,而且中国人节约的优良传统也是其最大的障碍,很多公司都要打日记帐,一打就是几十页甚至几百页,如果每一页都留有上下边距,那无形中就是一个很大的浪费,正因为此,就引申出了今天这个文章.

 

旧版本的VFP是用@ Say 来送出打印的,这个功能一直被继承到了现在,要实现不用驱动,直接打印,最主要就是利用@ Say 把所要打印的内容送到一个*.PRN打印文件中,然后,再把这个文件复制到LTP的打印口,就可以了.代码如下.

SrPrint()
SET SAFETY OFF
SET DEVICE TO FILE output.prn             &&生成打印文件

SELECT 0
USE _lj
Gs1=ALLTRIM(Gs_F)
USE

@ PROW(),0 SAY GS1+IIF(EMPTY(_Spdjhc1.Sm1_F)," 草稿","")
@ PROW()+1,0 SAY "小票清单"
@ PROW()+1,0 SAY "日期:"+DTOC(DATE())+" 收银:"+ALLTRIM(_Spdjhc1.P_Zdr_F)
@ PROW()+1,0 SAY _Spdjhc1.Sm1_F+" 会员:"+ALLTRIM(_Spdjhc1.P_Hy_F)
@ PROW()+1,0 SAY "──────────────"
@ PROW()+1,0 SAY " 品名                批号"
@ PROW()+1,0 SAY " 厂家"
@ PROW()+1,0 SAY " 批准文号"
@ PROW()+1,0 SAY " 数量       售价     售额"
@ PROW()+1,0 SAY "──────────────"
SELECT _Spdjhc2
SCAN FOR NOT EMPTY(Spzd_Sp_F)
 @ PROW()+1,0 SAY PADR(LEFT(_Spdjhc2.P_Sp1_F,20),20," ")+ALLTRIM(_Spdjhc2.Scph_F)  &&商品 批号
 @ PROW()+1,0 SAY ALLTRIM(_Spdjhc2.P_Kh1_F)       &&厂家
 @ PROW()+1,0 SAY ALLTRIM(_Spdjhc2.Pzwh_F)       &&批准文件号
 @ PROW()+1,0 SAY ALLTRIM(STR(_Spdjhc2.Sl_F,20,4))     &&数量
 @ PROW(),9 SAY ALLTRIM(STR(_Spdjhc2.Xsdjhs_F,20,2))     &&售价
 @ PROW(),18 SAY ALLTRIM(STR(_Spdjhc2.Xsjehs_F,20,2))    &&金额
 @ PROW()+1,0 SAY "──────────────"
ENDSCAN
@ PROW()+1,0 SAY "应收:"+ALLTRIM(STR(_SPDJHC1.sxlj_F,20,2))+" 实收:"+ALLTRIM(STR(_SPDJHC1.TETSSJE_F,20,2))
@ PROW()+1,0 SAY "找零:"++ALLTRIM(STR(_SPDJHC1.TETSSJE_F-_SPDJHC1.sxlj_F,20,2))
@ PROW()+2,0 SAY ""
@ PROW()+1,0 SAY ""
SET DEVICE TO SCREEN
COPY FILE output.prn TO lpt1.dos           &&送到LPT1打印口
SET SAFETY ON

这篇关于VFP不安装打印驱动直接调用打印而且不自动进纸的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/939459

相关文章

SpringBoot+Docker+Graylog 如何让错误自动报警

《SpringBoot+Docker+Graylog如何让错误自动报警》SpringBoot默认使用SLF4J与Logback,支持多日志级别和配置方式,可输出到控制台、文件及远程服务器,集成ELK... 目录01 Spring Boot 默认日志框架解析02 Spring Boot 日志级别详解03 Sp

Python中win32包的安装及常见用途介绍

《Python中win32包的安装及常见用途介绍》在Windows环境下,PythonWin32模块通常随Python安装包一起安装,:本文主要介绍Python中win32包的安装及常见用途的相关... 目录前言主要组件安装方法常见用途1. 操作Windows注册表2. 操作Windows服务3. 窗口操作

Java中调用数据库存储过程的示例代码

《Java中调用数据库存储过程的示例代码》本文介绍Java通过JDBC调用数据库存储过程的方法,涵盖参数类型、执行步骤及数据库差异,需注意异常处理与资源管理,以优化性能并实现复杂业务逻辑,感兴趣的朋友... 目录一、存储过程概述二、Java调用存储过程的基本javascript步骤三、Java调用存储过程示

浏览器插件cursor实现自动注册、续杯的详细过程

《浏览器插件cursor实现自动注册、续杯的详细过程》Cursor简易注册助手脚本通过自动化邮箱填写和验证码获取流程,大大简化了Cursor的注册过程,它不仅提高了注册效率,还通过友好的用户界面和详细... 目录前言功能概述使用方法安装脚本使用流程邮箱输入页面验证码页面实战演示技术实现核心功能实现1. 随机

Python中Tensorflow无法调用GPU问题的解决方法

《Python中Tensorflow无法调用GPU问题的解决方法》文章详解如何解决TensorFlow在Windows无法识别GPU的问题,需降级至2.10版本,安装匹配CUDA11.2和cuDNN... 当用以下代码查看GPU数量时,gpuspython返回的是一个空列表,说明tensorflow没有找到

python如何调用java的jar包

《python如何调用java的jar包》这篇文章主要为大家详细介绍了python如何调用java的jar包,文中的示例代码简洁易懂,具有一定的借鉴价值,有需要的小伙伴可以参考一下... 目录一、安装包二、使用步骤三、代码演示四、自己写一个jar包五、打包步骤六、方法补充一、安装包pip3 install

HTML5实现的移动端购物车自动结算功能示例代码

《HTML5实现的移动端购物车自动结算功能示例代码》本文介绍HTML5实现移动端购物车自动结算,通过WebStorage、事件监听、DOM操作等技术,确保实时更新与数据同步,优化性能及无障碍性,提升用... 目录1. 移动端购物车自动结算概述2. 数据存储与状态保存机制2.1 浏览器端的数据存储方式2.1.

Python打印对象所有属性和值的方法小结

《Python打印对象所有属性和值的方法小结》在Python开发过程中,调试代码时经常需要查看对象的当前状态,也就是对象的所有属性和对应的值,然而,Python并没有像PHP的print_r那样直接提... 目录python中打印对象所有属性和值的方法实现步骤1. 使用vars()和pprint()2. 使

gitlab安装及邮箱配置和常用使用方式

《gitlab安装及邮箱配置和常用使用方式》:本文主要介绍gitlab安装及邮箱配置和常用使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1.安装GitLab2.配置GitLab邮件服务3.GitLab的账号注册邮箱验证及其分组4.gitlab分支和标签的

MySQL MCP 服务器安装配置最佳实践

《MySQLMCP服务器安装配置最佳实践》本文介绍MySQLMCP服务器的安装配置方法,本文结合实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下... 目录mysql MCP 服务器安装配置指南简介功能特点安装方法数据库配置使用MCP Inspector进行调试开发指