| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1112 人关注过本帖, 1 人收藏
标题:条形码程序为何不能运行?网上找的代码复制到VB里,跟踪测试一点反应都没有 ...
只看楼主 加入收藏
yiyaozjk
Rank: 2
等 级:论坛游民
帖 子:231
专家分:30
注 册:2010-3-10
结帖率:51.67%
收藏(1)
已结贴  问题点数:20 回复次数:7 
条形码程序为何不能运行?网上找的代码复制到VB里,跟踪测试一点反应都没有。不知我错在哪里?
条形码程序为何不能运行?网上找的代码复制到VB里,跟踪测试一点反应都没有。不知我错在哪里?
条形码.rar (3.45 KB)


我其实很想改成一个能与USB接口打印的程序,不知高手能否帮忙解决一下。我将找的原代码放在附件中了。

谢谢!
搜索更多相关主题的帖子: 复制 条形码 网上 
2012-06-27 10:54
积善门徒
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:38
专家分:179
注 册:2012-6-16
收藏
得分:7 
值得下来了解一下,这方面不懂,要写端口代码吗?

何谓茶?---人间草木,人为茶
2012-06-27 11:22
yiyaozjk
Rank: 2
等 级:论坛游民
帖 子:231
专家分:30
注 册:2010-3-10
收藏
得分:0 
有没有版主或高手出手???
2012-06-27 12:02
yuma
Rank: 12Rank: 12Rank: 12
来 自:银河系
等 级:贵宾
威 望:37
帖 子:1934
专家分:3012
注 册:2009-12-22
收藏
得分:0 
给代码直接贴出来吧。这样看着比较方便。

心生万象,万象皆程序!
本人计算机知识网:http://bbs.为防伸手党,本站已停止会员注册。
2012-06-27 19:41
yiyaozjk
Rank: 2
等 级:论坛游民
帖 子:231
专家分:30
注 册:2010-3-10
收藏
得分:0 
Private Sub Command1_Click()
    Picture1.Picture = LoadPicture("")
    Call PrintBarCode1(Text1)
   
    Picture1.Print
   
    'Printer.PaintPicture Picture1.Image, 200, Picture1.Top + 1000
End Sub
Private Sub PrintBarCode1( _
     ByVal strBarCode As String, _
     Optional ByVal intXPos As Integer = 10, _
     Optional ByVal intYPos As Integer = 10, _
     Optional ByVal intPrintHeight As Integer = 5, _
     Optional ByVal bolPrintText As Boolean = False _
)
'注释: 参数说明:
'注释: strBarCode -要打印的条形码字符串
'注释: intXPos, intYPos - 打印条形码的左上角坐标(缺省为(0,0),坐标刻度为:毫米)
'注释: intHeight     - 打印高度(缺省为一厘米,坐标刻度为:毫米)
'注释: bolPrintText -是否打印人工识别字符(缺省为true)

'注释: "0"-"9","A-Z","-","%","$"和"*" 的条码编码格式,总共 40 个字符
Static strBarTable(39) As String
'注释: 初始化条码编码格式表
     strBarTable(0) = "001100100"     '注释: 0
     strBarTable(1) = "100010100"     '注释: 1
     strBarTable(2) = "010010100"     '注释: 2
     strBarTable(3) = "110000100"     '注释: 3
     strBarTable(4) = "001010100"     '注释: 4
     strBarTable(5) = "101000100"     '注释: 5
     strBarTable(6) = "011000100"     '注释: 6
     strBarTable(7) = "000110100"     '注释: 7
     strBarTable(8) = "100100100"     '注释: 8
     strBarTable(9) = "010100100"     '注释: 9
     strBarTable(10) = "100010010"    '注释: A
     strBarTable(11) = "010010010"    '注释: B
     strBarTable(12) = "110000010"    '注释: C
     strBarTable(13) = "001010010"    '注释: D
     strBarTable(14) = "101000010"    '注释: E
     strBarTable(15) = "011000010"    '注释: F
     strBarTable(16) = "000110010"    '注释: G
     strBarTable(17) = "100100010"    '注释: H
     strBarTable(18) = "010100010"    '注释: I
     strBarTable(19) = "001100010"    '注释: J
     strBarTable(20) = "100010001"    '注释: K
     strBarTable(21) = "010010001"    '注释: L
     strBarTable(22) = "110000001"    '注释: M
     strBarTable(23) = "001010001"    '注释: N
     strBarTable(24) = "101000001"    '注释: O
     strBarTable(25) = "011000001"    '注释: P
     strBarTable(26) = "000110001"    '注释: Q
     strBarTable(27) = "100100001"    '注释: R
     strBarTable(28) = "010100001"    '注释: S
     strBarTable(29) = "001100001"    '注释: T
     strBarTable(30) = "100011000"    '注释: U
     strBarTable(31) = "010011000"    '注释: V
     strBarTable(32) = "110001000"    '注释: W
     strBarTable(33) = "001011000"    '注释: X
     strBarTable(34) = "101001000"    '注释: Y
     strBarTable(35) = "011001000"    '注释: Z
     strBarTable(36) = "000111000"    '注释: -
     strBarTable(37) = "100101000"    '注释: %
     strBarTable(38) = "010101000"    '注释: $
     strBarTable(39) = "001101000"    '注释: *
     If strBarCode = "" Then Exit Sub '注释: 不打印空串
'注释:       保存打印机 ScaleMode
     Dim intOldScaleMode As ScaleModeConstants
     intOldScaleMode = Picture1.ScaleMode     '注释:       保存打印机 DrawWidth
     Dim intOldDrawWidth As Integer
     intOldDrawWidth = Picture1.DrawWidth     '注释:       保存打印机 Font
     Dim fntOldFont As StdFont
     Set fntOldFont = Picture1.Font
     Picture1.ScaleMode = vbTwips    '注释: 设置打印用的坐标刻度为缇(twip=1)
     Picture1.DrawWidth = 1            '注释: 线宽为 1
     Picture1.FontName = "宋体"       '注释: 打印在条码下方字符的字体和大小
     Picture1.FontSize = 10
     Dim strBC As String                 '注释: 要打印的条码字符串
     strBC = UCase(strBarCode)        '注释: 将以毫米表示的 X 坐标转换为以缇表示
     Dim x As Integer
     x = Picture1.ScaleX(intXPos, vbMillimeters, vbTwips)
     '注释: 将以毫米表示的 Y 坐标转换为以缇表示
     Dim y As Integer
     y = Picture1.ScaleY(intYPos, vbMillimeters, vbTwips)
'注释:       将以毫米表示的高度转换为以缇表示
     Dim intHeight As Integer
     intHeight = Picture1.ScaleY(intPrintHeight, vbMillimeters, vbTwips)

'注释:       是否在条形码下方打印人工识别字符
     If bolPrintText = True Then
'注释:           条码打印高度要减去下面的字符显示高度
         intHeight = intHeight - Picture1.TextHeight(strBC)
     End If
     Const intWidthCU As Integer = 30 '注释: 粗线和宽间隙宽度
     Const intWidthXI As Integer = 10 '注释: 细线和窄间隙宽度
     Dim intIndex As Integer            '注释: 当前处理的字符串索引
     Dim i As Integer, j As Integer, k As Integer    '注释: 循环控制变量
'注释:       添加起始字符
     If Left(strBC, 1) <> "*" Then
         strBC = "*" & strBC
     End If                       '注释:       添加结束字符
     If Right(strBC, 1) <> "*" Then
         strBC = strBC & "*"
     End If                        '注释:       循环处理每个要显示的条码字符
     For i = 1 To Len(strBC)
         '注释: 确定当前字符在 strBarTable 中的索引
         Select Case Mid(strBC, i, 1)
         Case "*"
             intIndex = 39
         Case "$"
             intIndex = 38
         Case "%"
             intIndex = 37
         Case "-"
             intIndex = 36
         Case "0" To "9"
             intIndex = CInt(Mid(strBC, i, 1))
         Case "A" To "Z"
             intIndex = Asc(Mid(strBC, i, 1)) - Asc("A") + 10
         Case Else
             MsgBox "要打印的条形码字符串中包含无效字符!当前版本只支持字符 '注释:0'注释:-'注释:9'注释:,'注释:A'注释:-'注释:Z'注释:,'注释:-'注释:,'注释:%'注释:,'注释:$'注释:和'注释:*'注释:"
         End Select         '注释:           是否在条形码下方打印人工识别字符
         If bolPrintText = True Then
             Picture1.CurrentX = x
             Picture1.CurrentY = y + intHeight
             Picture1.Print Mid(strBC, i, 1)
         End If
         For j = 1 To 5                 '注释:               画细线
             If Mid(strBarTable(intIndex), j, 1) = "0" Then
                 For k = 0 To intWidthXI - 1
                     Picture1.Line (x + k, y)-Step(0, intHeight)
                 Next k
                 x = x + intWidthXI       '注释:               画宽线
             Else
                 For k = 0 To intWidthCU - 1
                     Picture1.Line (x + k, y)-Step(0, intHeight)
                 Next k
                 x = x + intWidthCU
             End If               '注释:               每个字符条码之间为窄间隙
             If j = 5 Then
                 x = x + intWidthXI * 3
                 Exit For
             End If                 '注释:               窄间隙
             If Mid(strBarTable(intIndex), j + 5, 1) = "0" Then
                 x = x + intWidthXI * 3        '注释:               宽间隙
             Else
                 x = x + intWidthCU * 2
             End If
Next j
     Next i                                 '注释:       恢复打印机 ScaleMode
     ScaleMode = intOldScaleMode            '注释:       恢复打印机 DrawWidth
     Picture1.DrawWidth = intOldDrawWidth   '注释:       恢复打印机 Font
     Set Picture1.Font = fntOldFont
End Sub

好吧,代码贴出来了
2012-06-28 10:32
yuma
Rank: 12Rank: 12Rank: 12
来 自:银河系
等 级:贵宾
威 望:37
帖 子:1934
专家分:3012
注 册:2009-12-22
收藏
得分:7 
Private Sub Command1_Click()
    Picture1.Picture = LoadPicture("")       '图片框不加载图片
    Call PrintBarCode1(Text1)              ’呼叫text1中的内容
   
    Picture1.Print                         ’显示图片框中的内容


图片框中没有任何东西,你想让它显示什么?


程序代码运行的先后,逻辑上有问题。

[ 本帖最后由 yuma 于 2012-7-1 14:31 编辑 ]

心生万象,万象皆程序!
本人计算机知识网:http://bbs.为防伸手党,本站已停止会员注册。
2012-06-29 07:43
bczgvip
Rank: 14Rank: 14Rank: 14Rank: 14
等 级:贵宾
威 望:66
帖 子:1310
专家分:5312
注 册:2009-2-26
收藏
得分:7 
呃,看了下,是由字符串生成条形码,还是由条形码生成字符串?
2012-06-29 18:07
yjz2022
Rank: 1
等 级:新手上路
威 望:1
帖 子:17
专家分:0
注 册:2022-4-27
收藏
得分:0 
我测试了,可以直接用(把PICTUREN拉大一点就可以了)
2022-11-09 20:08
快速回复:条形码程序为何不能运行?网上找的代码复制到VB里,跟踪测试一点反应都 ...
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.040386 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved