以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  未将对象引用设置到对象的实例  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=57092)

--  作者:jinzhengbe
--  发布时间:2014/9/18 5:13:00
--  未将对象引用设置到对象的实例

环境: d:as 目录下 有很多图片,图片的名字 对应  newtrj 这个表的 cn_name列(cn_name只是前缀,例如图片名为11.jpg  cn_name =11)

目的:  把as目录下 图片名能和cn_name列相同的图片 打上二维码。

 

用下面这段代码执行了,有的时候可以顺利执行,有的时候不可以,不知道是什么原因,请各位给指点下。 非常感谢

 

 

Dim Bar As New BarCodeBuilder
    Dim doc As New PrintDoc
    Dim rt As new prt.RenderText
 Bar.Symbology = Barpro.Symbology.QRCode
    Bar.BarRatio =0.5
    Bar.BarWidth = 1
    Bar.BarHeight = 1
    Doc.Stacking = prt.StackingRulesEnum.InlineLeftToRight


For Each r As DataRow In DataTables("newtrj").Select("id> 0")   \'从数据表中提取数据
        bar.Code = r("qrcord")
              Dim fn As String = ""
                    fn = "(1):" & r("cn_name")
                    If fn <> "" And filesys.FileExists("d:\\as\\" & fn & ".jpg") = True Then                  
                    Dim route As String ="d:\\as\\" & fn & ".jpg" \'原始照片存放路径
                    Dim route2 As String ="d:\\qrcord\\" & fn & ".jpg"
                    Dim zwidth = getImage(route).width \'原始照片宽
                    Dim zheight = getImage(route).height \'原始照片高
                   
                    Dim p As WinForm.Painter =e.Form.CreateControl("p", ControlTypeEnum.Painter)
                    p.Width = zwidth \'原始照片宽动态赋给画板宽
                    p.Height = zheight \'原始照片高动态赋给画板高
                    Dim g As Graphics = p.Graphics
                    g.Clear(Color.White)
                    g.DrawImage(getImage(route),3,3,zwidth,zheight)
                    g.DrawImage(bar.GetImage,(zwidth-10),(zheight-1800),250,250)
                    Dim rm As New prt.RenderImage \'定义一个图片对象
                    rm.Image = GetImage("archives.ico") \'设置图片
                    rm.Style.ImageAlign.StretchHorz = True \'水平拉伸
                    g.DrawImage(rm.Image,(zwidth-50),(zheight-50),30,30) \'二维码图片位置
                    Dim fnt As New Font("黑体",20,FontStyle.Bold) \'黑体,10号,加粗
                    g.DrawString(fn,fnt,Brushes.Black,(zwidth-280),(zheight-200))
                    p.Repaint()
                    Dim img As Image = p.Image
                     p.Save(route2)
                    img.save(route2)
      End If                       
            Next
    MessageBox.Show("全部添加成功!", "提示")


--  作者:Bin
--  发布时间:2014/9/18 8:35:00
--  
建议您用这个方法:
http://www.foxtable.com/help/topics/1485.htm

先找出是哪一行出错,然后分析原因,搞不定,贴出代码,并告诉我们运行到哪一行出错,以及错误提示。

--  作者:jinzhengbe
--  发布时间:2014/9/18 9:07:00
--  

 

[此贴子已经被作者于2014-9-24 10:22:54编辑过]

--  作者:有点甜
--  发布时间:2014/9/18 9:13:00
--  

1、把对应文件夹发上来;

 

2、把数据填充完整;

 

3、你就不会写入msgbox判断哪一行出错?这么懒?


--  作者:jinzhengbe
--  发布时间:2014/9/18 9:24:00
--  

对应的文件夹

c: 图片 (随便放些图片进去就可以)

然后按照按钮的顺序,从左到右边 按就行

 

d:下的 as ,qrcord,shuiyin,taobo 这些目录是程序自动生成的,

如果有问题直接人工添加就可以

 

 

程序的原理:

1 从c:图片下 读取图片 并添加到数据库内(导入图片)  同时把图片用 cn_name 作为文件名 保存到 d: as目录下

2 保存 按钮 (从as文件夹读取数据, 并给图片加上水印,同时保存newtrj 这个表

3 按3 (从as 文件夹图片图片文件信息,并对应 cn_name ,把和cn_name的图片打上二维码的图片)现在问题就出在这个按钮上

 

真是非常感谢啊啊~~~~


--  作者:有点甜
--  发布时间:2014/9/18 9:26:00
--  
 看4楼,不想跟你多说。
--  作者:有点甜
--  发布时间:2014/9/18 9:27:00
--  
 请上传一个可以单独测试的完整的例子