以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  扫码输入多行数据问题  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=192005)

--  作者:cmc
--  发布时间:2024/5/23 10:14:00
--  扫码输入多行数据问题
蓝版,您好:

我用如下代码对下表的多行数据进行操作形成一个二维码:






Dim doc As New PrintDoc
Dim dus As New list (Of String)
dus.add("工单编号")
dus.add("工单性质")
dus.add("客户")
Dim rg As prt.RenderGraphics
Dim Bar As New BarCodeBuilder
Bar.Symbology = Barpro.Symbology.QRCode
Doc.Stacking = prt.StackingRulesEnum.InlineLeftToRight
For Each r As Row In Tables("全局工单列表").Rows
Dim u As String = "" ‘u为空格

For Each s As String In dus
  
u = u & "*" & r(s)
   Next
 u = u.Substring(1, u.Length - 1)

    bar.Code = bar.Code & "|" & u
 
Next
bar.Code = bar.Code.Substring(7, bar.Code.Length - 7)
 rg = New prt.RenderGraphics
    bar.DrawOnCanvas(rg.Graphics, 0, 0, 1)
    rg.Style.Spacing.All = 3
    Doc.Body.Children.Add(rg)
Doc.Preview()



我测试的场景是这个表只有三行数据,形成二维码后再用扫描枪扫这个二维码,得到如下预期的字符串:
全局工单202304-001*全局工单*海天|全局工单202304-002*全局工单*大建|全局工单202304-003*全局工单*宇发
但我用20行数据取测试时,得到一个非常大的二维码,如下图右(3行数据二维码和20行数据二维码的对比),而且也扫不出内容了。



我的问题是:数据行增多,形成的二维码能否保持大小不变,且能用扫描枪扫出内容?


--  作者:有点蓝
--  发布时间:2024/5/23 10:19:00
--  
二维码是靠黑点的排列来存储数据的,需要存储的内容越多,肯定就越大。并且存储的内容是有限制的。
--  作者:cmc
--  发布时间:2024/5/23 10:22:00
--  
能否通过更换扫描枪或者换另外一种二维码的方式来更好地解决这个问题
--  作者:有点蓝
--  发布时间:2024/5/23 10:30:00
--  
理论是可以的。这个建议咨询扫描枪生产厂家。另外大容量的二维码编码格式可能就需要第三方的组件支持了