以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  如何生成条码,在WORD中打印?  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=179679)

--  作者:lgz518
--  发布时间:2022/9/3 8:27:00
--  如何生成条码,在WORD中打印?
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:条码问题.zip


假定表A有一个名为"条码"的列,希望批量打印出所有条码,代码为:

Dim doc As New PrintDoc
Dim
 img As prt.RenderImage
Dim
 Bar As New BarCodeBuilder
Bar.Symbology = Barpro.Symbology.Code39
Bar.BarRatio = 
0.3
Bar.BarHeight = 
8
Doc.Stacking = prt.StackingRulesEnum.InlineLeftToRight

For
 Each r As Row In Tables("表A").Rows
    bar.Code = r(
"条码")
    img = new prt.RenderImage
    img.Image = bar.GetImage
    Doc.Body.Children.Add(img)

Next

Doc.Preview()


用上面代码,实现不了,请老师帮助处理,谢谢


--  作者:有点蓝
--  发布时间:2022/9/3 9:43:00
--  
Dim doc As New PrintDoc
Dim img As prt.RenderImage
Dim Bar As BarCodeBuilder

For Each r As Row In Tables("表A").Rows
    Bar = New BarCodeBuilder
    Bar.Symbology = Barpro.Symbology.Code39
    Bar.BarRatio = 0.3
    Bar.BarHeight = 8
    Doc.Stacking = prt.StackingRulesEnum.InlineLeftToRight
    bar.Code = r("条码")
    img = New prt.RenderImage
    img.Image = bar.GetImage
    Doc.Body.Children.Add(img)
Next
Doc.Preview()

--  作者:lgz518
--  发布时间:2022/9/3 9:57:00
--  
老师,报错:The value to encode is null or empty.
--  作者:有点蓝
--  发布时间:2022/9/3 10:11:00
--  
"条码"列没有数据
--  作者:lgz518
--  发布时间:2022/9/3 13:26:00
--  
老师,需求是让1楼的实例,实现表A,条码是根据条码编号生成的条码,并在WORD模板打印。如下图

图片点击可在新窗口打开查看此主题相关图片如下:条码问题.jpg
图片点击可在新窗口打开查看


--  作者:lgz518
--  发布时间:2022/9/3 13:31:00
--  

然后用下面的代码生成报表,在生成每个员工的资料卡之前,都先根据这个员工的资料合成一个二维码,并保存为约定的图片文件:

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.QRCodeModuleSize = 
2 \'二维码的放大倍数
    
Bar.Code = "姓名:" & r("姓名"& vbcrlf & "部门:" & r("部门"& vbcrlf & "电话:" & r("办公电话")
    
bar.SaveImage(mg,300)
    
wrt.BuildOne(r)
Next

wrt
.Show() \'显示报表



帮助的实例,试一下,没搞出来


--  作者:lgz518
--  发布时间:2022/9/3 13:39:00
--  
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("表A"), tm, fl) \'定义一个WordReport
For Each r As Row In Tables("表A").Rows \'逐行生成报表
    Dim Bar As New BarCodeBuilder
    Bar.Symbology = Barpro.Symbology.QRCode
    Bar.QRCodeModuleSize = 2 \'
\'     Bar.Code = "姓名:" & r("姓名") & vbcrlf & "部门:" & r("部门") & vbcrlf & "电话:" & r("办公电话")
    Bar.Code = "条码编号:" & r("条码编号") & vbcrlf & "条码:" & r("条码") 
    bar.SaveImage(mg, 300)
    wrt.BuildOne(r)
Next
wrt.Show() \'显示报表


执行后,如下图,表A和WORD模板都没有生成条码,

图片点击可在新窗口打开查看此主题相关图片如下:条码问题2.jpg
图片点击可在新窗口打开查看





--  作者:有点蓝
--  发布时间:2022/9/3 13:59:00
--  
那这个条码列没有什么用处。2楼的代码改为从编号列取值:bar.Code = r("条码编号")

word报表没法设置动态图片,建议使用专业报表,或者execl:http://www.foxtable.com/webhelp/topics/2338.htm