Foxtable(狐表)用户栏目专家坐堂 → [求助]循环打印


  共有2150人关注过本帖树形打印复制链接

主题:[求助]循环打印

帅哥哟,离线,有人找我吗?
新航程小何
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:629 积分:4786 威望:0 精华:0 注册:2014/9/17 11:34:00
[求助]循环打印  发帖心情 Post By:2015/6/25 12:05:00 [只看该作者]

各位老师,我想实现的功能是每一个二维码对应一个文本说明,而文本说明是根据生成二维码的某一列的内容作为另一表的查询条件,去找到文本说明。也就是生成一个订单行的二维码,,通过订单中“用户编号”查找到用户表中对应的“用户姓名”,将“用户姓名”,作为二维码的说明文本。我写了如下代码,但是每次生成二维码的时候,都会生成多余的二维码。请老师指点,代码怎样修改?
Dim Result As DialogResult
Dim rs As List(of Row) = Tables("订单").GetCheckedRows()
If rs.Count > 0 Then
    Dim doc As New PrintDoc
    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 rs
        Bar.Code = "【用户编号】" & r("用户编号") & vbcrlf & "【产品批次】" & r("产品批次") & vbcrlf & "【产品名称】" & r("产品名称") 
        Bar.TextFont = New Font("微软雅黑",10.5)
        Dim  b As String=r("用户编号")
        Dim ps As List( of String) =DataTables("用户").sqlgetvalues("用户姓名","","用户编号 = '" & b & "'")
        For Each  p As String In ps
            Bar.HumanReadableText="用户姓名:" &  dr("用户姓名")
        Next
        rg = new prt.RenderGraphics
        bar.DrawOnCanvas(rg.Graphics,0,0,1)
        rg.Style.Spacing.All = 1
        Doc.Body.Children.Add(rg)
    Next
    Doc.Preview()
Else
    messagebox.show("请选择打印二维码项?")
End If

 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/6/25 12:11:00 [只看该作者]

  代码没什么问题,例子发上来测试。

 回到顶部
帅哥哟,离线,有人找我吗?
新航程小何
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:629 积分:4786 威望:0 精华:0 注册:2014/9/17 11:34:00
  发帖心情 Post By:2015/6/25 14:58:00 [只看该作者]

老师, 你帮忙看看
[此贴子已经被作者于2015/6/25 14:59:03编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
新航程小何
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:629 积分:4786 威望:0 精华:0 注册:2014/9/17 11:34:00
  发帖心情 Post By:2015/6/25 14:59:00 [只看该作者]

我上传的附件怎么看不见?

 回到顶部
帅哥哟,离线,有人找我吗?
新航程小何
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:629 积分:4786 威望:0 精华:0 注册:2014/9/17 11:34:00
  发帖心情 Post By:2015/6/25 15:00:00 [只看该作者]

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目1.zip


 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/6/25 15:16:00 [只看该作者]

这句代码

 

Dim ps As List( of String) =DataTables("用户").sqlgetvalues("用户姓名","","用户编号 = '" & b & "'")

 

改成

 

Dim ps As List( of String) =DataTables("用户").SQLGetValues("用户姓名","用户编号 = '" & b & "'","")


 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/6/25 15:17:00 [只看该作者]

或者

 

Dim Result As DialogResult
Dim rs As List(of Row) = Tables("订单表").GetCheckedRows()
If rs.Count > 0 Then
    Dim doc As New PrintDoc
    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 rs
        Bar.Code = "【用户编号】" & r("用户编号") & vbcrlf & "【产品批次】" & r("产品批次") & vbcrlf & "【产品名称】" & r("产品名称")
        Bar.TextFont = New Font("微软雅黑",10.5)
        Dim  b As String=r("用户编号")
        Dim fdr As DataRow = DataTables("用户").SQLFind("用户编号 = '" & b & "'")
        If fdr IsNot Nothing Then
            Bar.HumanReadableText="用户姓名:" &  fdr("用户姓名")
        End If
        rg = new prt.RenderGraphics
        bar.DrawOnCanvas(rg.Graphics,0,0,1)
        rg.Style.Spacing.All = 1
        Doc.Body.Children.Add(rg)
    Next
    Doc.Preview()
Else
    messagebox.show("请选择打印二维码项?")
End If


 回到顶部
帅哥哟,离线,有人找我吗?
新航程小何
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:629 积分:4786 威望:0 精华:0 注册:2014/9/17 11:34:00
  发帖心情 Post By:2015/6/25 15:23:00 [只看该作者]

x谢谢老师,问题已解决

 回到顶部