当前位置: 首页 > 党团工作 >

关于操作系统升级导致VB程序中自定义报表格式无法打印问题的研究解决

发布时间:2023-06-03 13:00:07 | 来源:网友投稿

摘要:VB已经是一个相当古老的开发语言,而微软新操作系统更新换代很快,在更新中新的操作系统往往没有考虑对这种旧开发语言的支持。因此在更新操作系统的时候这些基于VB开发的软件往往会出现或多或少的问题。本文主要阐述一个基于VB开发的系统从Windows 98迁移到Windows XP打印问题的处理方法,希望可以做为一个借鉴。

关键词:VB语言 操作系统升级 报表格式

中图分类号:TP277 文献标识码:A 文章编号:1007-9416(2015)08-0000-00

1背景

初到公司工作时接手了一个将要离职同事的工作,其中包括一个在VB语言下开发的业务系统。该系统已在Windows 98下使用了很多年,但在公司所有办公电脑升级到Windows XP系统时由于打印模块在Windows XP下不兼容而无法运行。相关需使用此系统的部门员工只好保留Windows 98操作系统而暂不作升级。

2问题的详细描述

针对此问题我在Windows XP下搭建了一个测试环境,发现程序在打印报表时提示“实时错误380,无效属性值”错误。相关的出错源代码为“Printer.PaperSize=256”,为什么同一段代码在Windows 98系统中可以正常执行,但到了Windows XP下却执行出错呢?带着这个问题我查找了很多资料,从中了解到Printer.PaperSize是打印报表格式设置的选项,256这个值在Windows 98的打印驱动程序中被识别为“自定义大小”这种报表格式,而在Windows XP的打印程序中却没有发现“自定义大小”这种报表格式。再加上程序的错误提示信息可以进一步确认在Windows XP下是因为程序没有找到“自定义大小”这种报表格式而引起的程序错误。

3尝试解决问题的几种测试

为什么同一型号的打印机在Windows 98和Windows XP下的驱动程序会分别出现有“自定义大小”和无“自定义大小”报表格式的两种情况呢?在Windows XP可以找到带“自定义大小”报表格式的驱动程序吗?基于这个考虑我请教了打印机的供应商,他们建议我使用Windows XP下的Epson LQ-1600驱动程序代替,尝试后故障依旧,看来改换驱动程序不能解决问题。紧接着我又想-是否可以将程序代码中的“Printer.PaperSize”的值设置成Windows XP下有效的报表呢?Windows XP下有35cm*28cm格式的报表吗?带着这个问题我花了半天时间去查看Windows XP下的报表格式,并没有发现35cm*28cm的报表格式,于是新建了这样一个报表格式。紧接着问题又来了—代码“Printer.PaperSize”指定的是报表格式的代号,这个代号由系统自动分配无法指定。这造成了格式编号的不确定性,因此也无法在程序中定义。至此两个尝试似乎均以失败告终。

4一个简单的解决方法

记得平时打印普通文档时系统会直接使用默认打印机,如果系统没有特别指定报表格式打印机会自动使用默认的报表格式进行打印吗?我摸索一下打印机属性,果然可以将打印机的默认打印纸设置成新建的报表格式,然后在程序代码中将“Printer.PaperSize”的赋值代码删除,运行程序,程序没有再报错,反复尝试所有报表,打印均正常无误。终于找到一个解决办法了,只是这个办法要在的终端上作一些设置,略显得麻烦。

5深入研究其它更好的解决方法

以上的方法虽然解决了问题,但操作起来却相关的不便且不易推广。程序是否可以实现新报表格式的添加及使用呢?微软官方网上的一篇关于添加自定义纸张的文章引起了我的注意。细细地一读,它的大致意思为在VB中利用Windows的printer句柄去获取Windows下的所有报表纸格式—包括格式设置的长宽等,然后与我们需要的长宽作比较,如果长宽一致则取得这个报表格式的编号并使用这个报表格式进行打印,如果不一致则再利用printer句柄为Windows添加我们需要的报表格式,并使用新的格式打印,这种方法似乎可行,我尝试在程序的代码中加以实现。

程序设计的思路为:在调用打印方法的时候我先调用报表纸选定函数,在系统中若找到适合的报表格式则直接选用现有的报表格式,若无合适的报表则直接在系统中新增此报表格式并选用新的报表格式。

用以上思路设计得到的代码导入程序中运行正常,至此问题已经得到完美解决了,使用部门很快就可以卸载掉已经淘汰的Windows 98系统了。

6结语

本人在VB语言下遇到的打印问题希望可以为大家提供一个解决问题的借鉴,同时也感谢各位网友的探索、分享及对我的一些指导。

参考文献

[1]微软官方网站帮助与支持中的《如何在Windows NT和Windows 2000中使用自定义页面大小打印》.

收稿日期:2015-07-26

作者简介:李启华(1985—),男,广东肇庆人,本科,助理工程师,研究方向:系统与软件开发。

推荐访问:自定义 报表 系统升级 导致 操作

本文标题:关于操作系统升级导致VB程序中自定义报表格式无法打印问题的研究解决
链接地址:http://www.ylwt22.com/dangtuangongzuo/2023/0603/260158.html

版权声明:
1.十号范文网的资料来自互联网以及用户的投稿,用于非商业性学习目的免费阅览。
2.《关于操作系统升级导致VB程序中自定义报表格式无法打印问题的研究解决》一文的著作权归原作者所有,仅供学习参考,转载或引用时请保留版权信息。
3.如果本网所转载内容不慎侵犯了您的权益,请联系我们,我们将会及时删除。

十号范文网 |
Copyright © 2018-2024 十号范文网 Inc. All Rights Reserved.十号范文网 版权所有
本站部分资源和信息来源于互联网,如有侵犯您的权益,请尽快联系我们进行处理,谢谢!备案号:粤ICP备18086540号