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


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

主题:打印出错

帅哥哟,离线,有人找我吗?
刘林
  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


加好友 发短信
等级:八尾狐 帖子: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事件,说调用目标出错,是不是也是类似问题如何改?


 回到顶部
帅哥哟,离线,有人找我吗?
刘林
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | 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)就没问题

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


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

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


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


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

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


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


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

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

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


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

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) & "  考点:" & r("考点学校") &  Chr(10)  & "  考场:" & r("考试号").Substring(4,3)  &  "   座位:" & r("考试号").Substring(7,2)  & Chr(10) & "  考号:" & r("考试号") & 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()

 

 

老师,始终要出现未次对象引入实列,关键是出错的时间是乱的,有时打印两张,有时印5张。整晕了


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


加好友 发短信
等级:八尾狐 帖子:1936 积分:14844 威望:0 精华:0 注册:2016/4/28 9:58:00
  发帖心情 Post By:2017/5/19 13:24:00 [显示全部帖子]

这样就更麻烦了,打一张又要点一下打印,几百张一起打这一丁点儿都不现实,我是想要实现连打,且是越快越好,因为一次就可以能打上万张。


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


加好友 发短信
等级:八尾狐 帖子:1936 积分:14844 威望:0 精华:0 注册:2016/4/28 9:58:00
  发帖心情 Post By:2017/5/19 13:25:00 [显示全部帖子]

12楼代码就是要不规则出错,没发现有什么规律,有时打2张,有时打5张,有时打几十张出错,请老师帮帮我

 


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


加好友 发短信
等级:八尾狐 帖子:1936 积分:14844 威望:0 精华:0 注册:2016/4/28 9:58:00
  发帖心情 Post By:2017/5/19 17:23:00 [显示全部帖子]

改成print就更麻烦了,一直显示打印,万一中间一张坏掉就不好整

 

Dim doc As New PrintDoc
Doc.PageSetting.BottomMargin = 0
Doc.PageSetting.topMargin = 3
Doc.PageSetting.leftMargin = 0
Doc.PageSetting.rightMargin = 0
doc.PageSetting.Width = 40 '纸张宽度为100毫米
doc.PageSetting.Height = 30 '纸张高度为120毫米
Dim tbl As Table = Tables("县区_table2")
Dim Rows As List(Of DataRow)
Rows = DataTables("生地报名库").Select("[考点学校] ='" & e.form.Controls("combobox2").text & "'", "考试号")
Dim rm As prt.RenderEmpty
For i As Integer = 0 To Rows.count-1
    rm = new prt.RenderEmpty '定义一个新的空对象
    rm.BreakBefore = prt.BreakEnum.Page '打印前换页
    doc.Body.Children.Add(rm)
    Dim rx As new prt.RenderText
    rx.Style.Font = New Font("黑体", 10, FontStyle.Bold) '设置字体
    rx.text = "东兴区18届生地结业考试" & Chr(10)  & Chr(10) & "  考点:" & Rows(i)("考点学校") &  Chr(10)  & "  考场:" & Rows(i)("考试号").Substring(4,3)  &  "   座位:" & Rows(i)("考试号").Substring(7,2)  & Chr(10) & "  考号:" & Rows(i)("考试号") & Chr(10) & "  姓名:" & Rows(i)("姓名")
    doc.Body.Children.Add(rx)
  Next
doc.preview()

 

 

 

我发现不用sort就没有出错,但又要排序,现在改成上面代码,预览是正常的,但一点打印,预览纸张就变了,打印出来也不对了,急救怎么办


 回到顶部
总数 18 1 2 下一页