以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  打印条形码问题  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=195716)

--  作者:13315253800
--  发布时间:2025/3/4 8:44:00
--  打印条形码问题

在生成每个员工的资料卡之前,都先根据员工编号合成一个条形码,并保存为约定的图片文件,然后显示打印。我参照帮助中的WordReport案例5试着改了一下,未能实现打印选定行的条形码,请蓝老师指导

Dim tm As String = ProjectPath & "Attachments\\员工资料卡.doc" \'指定模板文件Dim fl As String = ProjectPath & "Reports\\员工资料卡.doc" \'指定目标文件

Dim mg As String = ProjectPath & "Images\\条形码.wmf" \'约定的图片文件

Dim wrt As New WordReport(Tables("员工"), tm, fl) \'定义一个WordReport

For Each r As Row In Tables("员工").Rows \'逐行生成报表

    Dim Bar As New BarCodeBuilder

    \'Bar.Symbology = Barpro.Symbology.QRCode \'二维码

    Bar.Symbology = Barpro.Symbology.Code39 \'条形码

    \'Bar.QRCodeModuleSize = 2 \'二维码的放大倍数

    \'Bar.Code = "姓名:" & r("姓名") & vbcrlf & "部门:" & r("部门") & vbcrlf & "电话:" & r("办公电话")

    bar.Code = r("编号") \'员工编号列

    bar.SaveImage(mg, 300)

    wrt.BuildOne(r)

Next

wrt.Show() \'显示报表


--  作者:有点蓝
--  发布时间:2025/3/4 8:49:00
--  
模板发上来看看

下面代码放到第2行,不是第一行后面
Dim fl As String = ProjectPath & "Reports\\员工资料卡.doc"

--  作者:13315253800
--  发布时间:2025/3/4 16:36:00
--  
蓝老师,针对条形码我做了一个案例,指导修改一下代码
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:条形码.rar


--  作者:有点蓝
--  发布时间:2025/3/4 17:29:00
--  
1楼代码测试没有问题,注意不能生成空条码

Dim tm As String = ProjectPath & "Attachments\\员工资料卡.doc" \'指定模板文件
Dim fl As String = ProjectPath & "Reports\\员工资料卡.doc" \'指定目标文件
Dim mg As String = ProjectPath & "Images\\条形码.wmf" \'约定的图片文件
Dim wrt As New WordReport(Tables("员工"), tm, fl) \'定义一个WordReport
For Each r As Row In Tables("员工").Rows \'逐行生成报表
    If r.IsNull("编号") = False Then
        Dim Bar As New BarCodeBuilder
        Bar.Symbology = Barpro.Symbology.Code39 \'条形码
        bar.Code = r("编号") \'员工编号列
        bar.SaveImage(mg, 300)
        wrt.BuildOne(r)
    End If
Next

wrt.Show() \'显示报表

--  作者:13315253800
--  发布时间:2025/3/5 8:24:00
--  
谢谢蓝老师!再问一下,如果我只想显示选定的当前行,而不是逐行显示,如何修改代码
--  作者:有点蓝
--  发布时间:2025/3/5 8:36:00
--  

dim r As Row In Tables("员工").current
    If r isnot nothing andalso r.IsNull("编号") = False Then
Dim tm As String = ProjectPath & "Attachments\\员工资料卡.doc" \'指定模板文件
Dim fl As String = ProjectPath & "Reports\\员工资料卡.doc" \'指定目标文件
Dim mg As String = ProjectPath & "Images\\条形码.wmf" \'约定的图片文件
Dim wrt As New WordReport(Tables("员工"), tm, fl) \'定义一个WordReport
        Dim Bar As New BarCodeBuilder
        Bar.Symbology = Barpro.Symbology.Code39 \'条形码
        bar.Code = r("编号") \'员工编号列
        bar.SaveImage(mg, 300)
        wrt.BuildOne(r)
wrt.Show() \'显示报表
    End If



--  作者:13315253800
--  发布时间:2025/3/5 9:17:00
--  
老师,上面代码保存时提示错误图片点击可在新窗口打开查看
--  作者:有点蓝
--  发布时间:2025/3/5 9:45:00
--  
很简单的笔误,自己学会判断一下

dim r As Row = Tables("员工").current

--  作者:13315253800
--  发布时间:2025/3/5 10:22:00
--  

蓝老师,上面的代码如果应用在Excel中怎么修改一下代码

Dim Book As New XLS.Book \'定义一个Excel工作簿
Dim
 Sheet As XLS.Sheet = Book.Sheets(0\'引用工作簿的第一个工作表

不知放在什么位置

Dim r As Row = Tables("A").current

If r IsNot Nothing AndAlso r.IsNull("条码") = False Then

    Dim tm As String = ProjectPath & "Attachments\\销售统计.xls" \'指定模板文件

    Dim fl As String = ProjectPath & "Reports\\销售统计.xls" \'指定目标文件

    Dim mg As String = ProjectPath & "Images\\条形码.wmf" \'约定的图片文件

    Dim wrt As New WordReport(Tables("A"), tm, fl) \'定义一个WordReport

    Dim Bar As New BarCodeBuilder

    Bar.Symbology = Barpro.Symbology.Code128 \'条形码

    bar.Code = r("条码") \'员工编号列

    bar.SaveImage(mg, 300)

    wrt.BuildOne(r)

    wrt.Show() \'显示报表

End If

[此贴子已经被作者于2025/3/5 10:24:17编辑过]

--  作者:有点蓝
--  发布时间:2025/3/5 10:23:00
--  
http://www.foxtable.com/webhelp/topics/1145.htm