以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  【二进制文件】将生成的二维码图片写入二进制列,不知道为何,多个图片居然只有第一个文件写入了所有的行?  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=109061)

--  作者:李孝春
--  发布时间:2017/11/3 14:35:00
--  【二进制文件】将生成的二维码图片写入二进制列,不知道为何,多个图片居然只有第一个文件写入了所有的行?
【二进制文件】将生成的二维码图片写入二进制列,不知道为何,多个图片居然只有第一个文件写入了所有的行?
假设有三行数据
结果三行数据的图片都只有第一个二维码图片写入了  
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:瓮安县院卷宗管理系统1101.rar


图片点击可在新窗口打开查看此主题相关图片如下:1.png
图片点击可在新窗口打开查看

代码如下求解:
If Tables("卷宗入库").Current IsNot Nothing Then
    Tables("入库明细").Filter = "卷宗编号 = \'" & Tables("卷宗入库").Current("卷宗编号") & "\'"
    Dim doc As New PrintDoc
    Dim rg As prt.RenderGraphics
    Dim Bar As New BarCodeBuilder
    Dim dr As Row=Tables("打印机").Current
    doc.PageSetting.Width = val(dr("设置宽度"))
    doc.PageSetting.Height = val(dr("设置高度") )
    doc.PageSetting.LeftMargin=val(dr("左边距") )
    doc.PageSetting.RightMargin=val(dr("右边距") )
    doc.PageSetting.TopMargin=val(dr("上边距") )
    doc.PageSetting.BottomMargin=val(dr("下边距") )
    Doc.PrinterName = dr("打印机名称")
    doc.AutoRotate = dr("是否旋转")
    doc.PageSetting.Landscape=dr("是否横向")
    Bar.Symbology = Barpro.Symbology.QRCode
    Doc.Stacking = prt.StackingRulesEnum.InlineLeftToRight
    For Each r As Row In Tables("入库明细").Rows
        bar.Text=r("分册编号") & "册"
        bar.Code = r("加密字符")
        rg = new prt.RenderGraphics
        bar.DrawOnCanvas(rg.Graphics,0,0, val(dr("缩放比例") ))
        rg.Style.Spacing.All = 1
        Doc.Body.Children.Add(rg)
        bar.SaveImage(ProjectPath & "Reports\\" & r("卷宗编号") & r("分册编号") & "二维码.jpg")  \'保存二维码图片到指定位置
        r.DataRow.SQLInsertFile("图片",ProjectPath & "Reports\\" & r("卷宗编号") & r("分册编号") & "二维码.jpg") \'将当前生成的二维码图片往入库明细表中的图片列写入二进制文件
        If r("图片") IsNot Nothing Then     \'如果图片列不为空
            If FileSys.FileExists(ProjectPath & "Reports\\" & r("卷宗编号") & r("分册编号") & "二维码.jpg") Then \'如果指定的文件存在
                FileSys.DeleteFile(ProjectPath & "Reports\\" & r("卷宗编号") & r("分册编号") & "二维码.jpg",2,2) \'则彻底删除之
            End If
        End If
    Next
    Doc.Preview()
End If
[此贴子已经被作者于2017/11/3 15:10:11编辑过]

--  作者:有点甜
--  发布时间:2017/11/3 18:16:00
--  

测试了一下,没问题。你加入msgbox,看弹出了多少次msgbox。弹出多少次就执行插入了多少张图片。