Foxtable(狐表)用户栏目专家坐堂 → 打印出错


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

主题:打印出错

帅哥哟,离线,有人找我吗?
刘林
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1936 积分:14844 威望:0 精华:0 注册:2016/4/28 9:58:00
打印出错  发帖心情 Post By:2017/5/16 22:34:00 [只看该作者]


图片点击可在新窗口打开查看此主题相关图片如下:0)$c)7eby1xo6{62o0ks`)r.png
图片点击可在新窗口打开查看
Dim doc As New PrintDoc
Doc.PageSetting.BottomMargin = 0
Doc.PageSetting.topMargin = 0
Doc.PageSetting.leftMargin = 0
Doc.PageSetting.rightMargin = 0
doc.PageSetting.Width = 40 '纸张宽度为100毫米
doc.PageSetting.Height = 30 '纸张高度为120毫米
Dim tbl As Table = Tables("县区_table2")
tbl.sort= "考试号"
For i As Integer = 0 To tbl.Rows.count-1
Dim r As Row = tbl.Rows(i)
    Dim rx As new prt.RenderText
rx.Style.Font = New Font("黑体", 10, FontStyle.Bold) '设置字体
    rx.text =Chr(10) & " 东兴区18生地结业考试" & Chr(10) & Chr(10) & "  考场:" & trim(r("考试号")).Substring(4,3)  &  "   座位:" & trim(r("考试号")).Substring(7,2)  & Chr(10) & "  考号:" & r("考试号") & Chr(10) & "  姓名:" & r("姓名") & Chr(10) & Chr(10) & "  考点:" & r("考点学校")
    doc.Body.Children.Add(rx)
    If i < tbl.Rows.count-1 Then
        rx.BreakAfter = prt.BreakEnum.Page
    End If
Next
doc.preview()

 

 

老师,上面代码出现有时打印一两张就出现上面图的错误提示,请问是什么原因,怎么办,谢谢


 回到顶部
帅哥,在线噢!
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:105957 积分:538860 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2017/5/16 22:43:00 [只看该作者]

trim(r("考试号")).Substring(4,3)

这种用法,如果单元格值为空,或者长度不足7位就会出错。应该先判断是否为空

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


加好友 发短信
等级:八尾狐 帖子:1936 积分:14844 威望:0 精华:0 注册:2016/4/28 9:58:00
  发帖心情 Post By:2017/5/17 7:56:00 [只看该作者]

If e.DataCol.name = "班级全称"
    Dim c() As Char = {"级", "班"}

    Dim str As String = e.DataRow("班级全称")
    Dim s1() As String = str.Split(c)
    e.DataRow("班级") = s1(1).PadLeft(2,"0")
    e.DataRow("年级代码") = str(val(s1(0).Substring(4,2))+3)
End If

 

 

datachenged事件,说调用目标出错,是不是也是类似问题如何改?


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


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/5/17 8:39:00 [只看该作者]

 你要判断字符的长度才行,比如

 

If e.DataCol.name = "班级全称"
    Dim c() As Char = {"级", "班"}

    Dim str As String = e.DataRow("班级全称")
    Dim s1() As String = str.Split(c)

    If s1.length >= 2 AndAlso s1(0).length >= 6 Then
        e.DataRow("班级") = s1(1).PadLeft(2,"0")
        e.DataRow("年级代码") = str(val(s1(0).Substring(4,2))+3)

    End If
End If


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


加好友 发短信
等级:八尾狐 帖子:1936 积分:14844 威望:0 精华:0 注册:2016/4/28 9:58:00
  发帖心情 Post By:2017/5/17 15:08:00 [只看该作者]

你要判断字符的长度才行,比如

If e.DataCol.name = "班级全称"
Dim c() As Char = {"级", "班"}

Dim str As String = e.DataRow("班级全称")
Dim s1() As String = str.Split(c)

If s1.length >= 2 AndAlso s1(0).length >= 6 Then
e.DataRow("班级") = s1(1).PadLeft(2,"0")
e.DataRow("年级代码") = str(val(s1(0).Substring(4,2))+3)

End If
End If

还出提示调用目标错误 ,但当改为e.DataRow("年级代码") = s1(0).Substring(4,2)就没问题

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


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/5/17 15:18:00 [只看该作者]

If e.DataCol.name = "班级全称"
    Dim c() As Char = {"级", "班"}
    Dim str As String = e.DataRow("班级全称")
    If str > "" Then
        Dim s1() As String = str.Split(c)
        If s1.length >= 2 AndAlso s1(0).length >= 6 Then
            e.DataRow("班级") = s1(1).PadLeft(2,"0")
            e.DataRow("年级代码") = val(s1(0).Substring(4,2))+3
        End If
    End If
End If


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


加好友 发短信
等级:八尾狐 帖子:1936 积分:14844 威望:0 精华:0 注册:2016/4/28 9:58:00
  发帖心情 Post By:2017/5/18 8:22:00 [只看该作者]

老师,1楼问题按2楼的做好做了,但不是要出现同样问题,因为我是用这个打印考号座签,我的表中考试号是没有空的,现在测试有时打印几张出错,有时打印十几张出错,关键是表的内容相同,有不有可能是热敏打印的内存原因,因我要连续打印几百张,这该怎么办?


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


加好友 发短信
等级:八尾狐 帖子:1936 积分:14844 威望:0 精华:0 注册:2016/4/28 9:58:00
  发帖心情 Post By:2017/5/18 8:23:00 [只看该作者]

老师,1楼问题按2楼的做了测试,但还是要出现同样问题,因为我是用这个打印考号座签,我的表中考试号是没有空的,现在测试有时打印几张出错,有时打印十几张出错,关键是表的先后测试内容相同,有不有可能是热敏打印的内存原因,因我要连续打印几百张,这该怎么办?


 回到顶部
帅哥哟,离线,有人找我吗?
有点色
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/5/18 8:37:00 [只看该作者]

 预览是否正常?只是打印的时候不正常?报什么错?

 

 你可以一张一张打印,也就是每次new一个doc,每次print。


 回到顶部
帅哥哟,离线,有人找我吗?
刘林
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1936 积分:14844 威望:0 精华:0 注册:2016/4/28 9:58:00
  发帖心情 Post By:2017/5/18 13:26:00 [只看该作者]

预览是正常的,打印不正常,不正常时出现提示:未将对象设置到对象的实例,如果一张一张的打会不会很慢,代码该如何写

 回到顶部
总数 31 1 2 3 4 下一页