iamlaosong文

在使用Excel条码过程中碰到几个难以解决的问题,有的问题又因为没有及时发现导致浪费了很多时间和耗材,用户意见也很大。这些问题出现的原因是什么,目前还不知道,所以解决办法也只是一些变通的办法。本文最后有条码使用工具下载链接,可以查看源码学习。现将问题及解决办法总结如下:

1、条码宽度和数据显示问题

条码下方可以显示数据(ShowData=1),当数据字符串较长时,code39条码比较宽,显示没什么问题,控件大小和条码大小比较一致,就是条码太宽了,扫描不方便。code128条码采用压缩编码,宽度比较窄,扫描方便。实际使用时,控件占用的宽度比较大,实际的条码要小得多,这还没什么,关键是下方的数据宽度大于条码宽度,而且数据显示不全,前面给截掉了。测试发现,19位以下,显示没有问题。长度达到20位的时候,只能显示19位,达到30位的时候显示27位。在没有找到解决办法之前,只好不显示数据,再在下方添加一个文本框显示数据。如下图,中间的数字就是条码自带的,code128显示不全;code39则没有问题:

code128

code39

实际使用发现,条码控件尽管可以设置不显示数据,但位置还是占着,所以要想条码和数字位置合适,就需要将文本框置于顶层,再靠近条码,调整到适当位置即可。设计界面文本框内容被条码覆盖了一部分,如下图:

但打印后的效果很好,没有覆盖的问题,如下图:

可奇怪的是用户那边却不是这样,用户那边是所见即所得,所以位置要调开才行。

Code 128码与Code 39码都是常用的条码类型,都广泛运用在企业内部管理、生产流程、物流控制系统方面。不同的在于Code 128比Code 39能表现更多的字符,单位长度里的编码密度更高。当单位长度里不能容下Code 39编码或编码字符超出了Code 39的限制时,就可选择Code 128来编码。所以Code 128比Code 39更具灵性。

而且CODE128码支持数字、字母和符号,支持的字符比较灵活,在同样长度的条码中可容纳的字符长度较长(高密度),条码长度与字符串长度无明显的敏感性,所以CODE128码是企业内部管理系统最为广泛使用的条码码制。

2、批量打印自动更新问题

批量打印时条码需要跟随单元格中的数据变化才对,使用中发现单元格数据变化后条码没有变化,或者刷新后(ActiveSheet.BarCodeCtrl1.Refresh)表面上看也变化了,只是打印的时候没有变化。打印时屏幕上显示的条码倒是在变,但打印出来的条码都是同一个条码。解决办法是改变控件大小,比如高度,如下:

ActiveSheet.BarCodeCtrl1.Height = ActiveSheet.BarCodeCtrl1.Height + 1
    ActiveSheet.BarCodeCtrl1.Height = ActiveSheet.BarCodeCtrl1.Height - 1

条码应用效果,可以自动更新。

此法使用中碰到条码越来越小的问题,所以下面的解决办法更好。

3、条码越来越小的问题

采用上面的方法解决了条码不能自动更新的问题,测试也没问题,但客户使用的时候发现,数据量很大的时候,运行到后来发现条码高度越来越小,最后就是0了,然后就报错了,似乎那个高度加1没起作用,一直在减1,同样的数据我测试却没有发现问题,难道是我的电脑太老了!问题出得莫名其妙,解决办法就是增加冗余,每次更新高度前重新设置一下高度,这样问题倒是没有再出现:

ActiveSheet.BarCodeCtrl1.Style = 7
    ActiveSheet.BarCodeCtrl1.Height = 24.75
    ActiveSheet.BarCodeCtrl1.Width = 323.25

或者用下面的办法,也没有问题:

hh = ActiveSheet.BarCodeCtrl1.Height

ActiveSheet.BarCodeCtrl1.Height = hh - 1

ActiveSheet.BarCodeCtrl1.Height = hh

4、打印速度
这个问题实际上和条码关系不大。对账单的打印是生成一张打印一张,所以每张单据都要发送打印命令(ActiveSheet.PrintOut),因此,电脑和打印机握手就会占用很多时间,大批量打印时,速度就会让人难以忍受,好在2010版Excel可以直接将打印结果输出为PDF文件,然后将这些单个的PDF文件合并后打印,速度就大大提高了。参见:解决Excel中VBA批量打印速度慢的问题

本文使用的条码打印工具下载:中行对账单打印工具

使用Excel2010条码控件碰到的问题及解决办法相关推荐

  1. 对于引用的控件被拒绝访问的解决办法的补充(续)

    在上个月,我曾经写过"对于引用的控件被拒绝访问的解决办法的补充", 见http://liuyuer.cnblogs.com/archive/2005/10/12/253063.ht ...

  2. C#中引用第三方ocx控件引发的问题以及解决办法

    C#中引用第三方ocx控件引发的问题以及解决办法 参考文章: (1)C#中引用第三方ocx控件引发的问题以及解决办法 (2)https://www.cnblogs.com/XuPengLB/p/759 ...

  3. PPT中《此演示文稿中的一些控件无法激活》的解决办法

    http://apps.hi.baidu.com/share/detail/6016136 PPT中<此演示文稿中的一些控件无法激活>的解决办法 在PPT做课件,在其中插入Flash动画, ...

  4. Office 2016使用NTKO OFFICE控件提示“文件存取错误”的解决办法

    2019独角兽企业重金招聘Python工程师标准>>> 之前使用NTKO,电脑安装的说OFFICE2007,但是前2天电脑固态硬盘坏了 ,重新安装了系统,安装的说win10和offi ...

  5. android在代码中利用Spinner控件设置联动地区的解决办法

    需求就是地区选择可以弹出来,因为百度地图一般是获取当前的地址,我们需要的是他的家庭地址  所以才有了三级Spinner解决 地区问题  就是当用户填写了之后,下次再修改,你要给他显示出来上次填写的值, ...

  6. Code128 Fontware条码控件介绍

    Code128 Fontware条码控件使你的Windows/Linux/UNIX/Mac 下的应用程序创建Code128条码变得极其容易,并且提供了TrueType,PostScript Type ...

  7. JavaScript使用ACTIVEX控件引起崩溃问题的解决

    JavaScript使用ACTIVEX控件引起崩溃问题的解决 问题 在本人目前的项目中,前端部分完全使用EXTJS基于"One-Page"理念搭建.除了一个HTML作为基本容器外, ...

  8. VS2008 在IE8中 调试 ActiveX控件 无法进入断点的解决方法 设置VS2008和IE8 调试ATL MFC ActiveX控件

    VS2008 在IE8中 调试 ActiveX控件 无法进入断点的解决方法 设置VS2008和IE8 调试ATL MFC ActiveX控件 参考文章: (1)VS2008 在IE8中 调试 Acti ...

  9. IE11浏览器中的My97日历控件刷新后无法打开问题解决办法

    IE11浏览器中的My97日历控件刷新后无法打开问题解决办法:(谷歌浏览器下正常.IE11失效) 解决办法: 1:找到WdatePicker.js 2:将$crossFrame:true 改为$cro ...

最新文章

  1. 04号团队-团队任务5:项目总结会
  2. java arp 攻击_基于Jpcap的Java ARP断网攻击
  3. OOD沉思录 --- 类和对象的关系 --- 使用关系
  4. C++ Primer 5th笔记(chap 12 动态内存)allocator类
  5. 王道考研——计算机组成原理(第二章 数据的表示和运算)
  6. c#可移动不规则窗体
  7. python第k序列元素查找_Python寻找第k小的元素
  8. 日本显示屏巨头JDI不敌业务压力,宣布接受中方注资...
  9. [转载] python字符串数组字典_Python:字符串、列表、元组、字典
  10. 将两个(或多个)Item建立关联 app_field.set_dependent_field和app_field.clear_dependent_fields...
  11. 在mysql中创建视图需要使用什么语句_mysql如何创建视图?创建语句是什么?
  12. jmeter访问网址
  13. Python开发微信公众号
  14. matlab命令窗口是什么,MATLAB命令窗口
  15. Android开发技术周报 Issue#8
  16. 在没有中介平台比如Paypal/支付宝前提下,如何说服客户先付款?--猜疑链带来的思考
  17. 关于解决主机和虚拟机ping不通的问题
  18. 路由器交换与配置综合实验(二)外网
  19. 本科毕业论文-软件开发类-《基于Android端开关控制系统的设计与实现》-论文模板
  20. 阿姆斯特朗数 python_用Python编程语言来实现阿姆斯特朗数的检查

热门文章

  1. Android Studio动态调试smail代码----环境配置
  2. oracle怎样导入文件,oracle导入文本文件
  3. 登录时动态验证码的使用
  4. 李永乐六套卷-2021
  5. OC 基础 UIButton
  6. 网址拦截查询接口API源码
  7. 大数据开发岗位面经收集
  8. 车企反向造手机,两个生态的裂痕能否弥合?
  9. 升级或重装Win10之后如何激活Win10的方法分享
  10. windows安全警报怎么关闭_永久关闭WIN10自动杀毒(windows安全中心)