Foxtable(狐表)用户栏目专家坐堂 → 请老师指教,错误在哪里?


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

主题:请老师指教,错误在哪里?

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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2010/5/22 23:42:00 [显示全部帖子]

Dim doc As New PrintDoc '定义一个报表
Dim rt1 As prt.RenderText '定义一个箱号文本对象
Dim rt2 As prt.RenderText '定义一个件数文本对象
Dim rt3 As New prt.RenderText '定义一个区域文本对象
Dim rt4 As New prt.RenderText '定义一个客户代码文本对象
Dim Count As Integer = Tables("在库明细").Current("件数")
doc.PageSetting.Width = 102 '纸张宽度为102毫米
doc.PageSetting.Height = 76 '纸张高度为76毫米

For i As Integer =1 To Count

    rt1 = New prt.RenderText
    rt2 = New prt.RenderText
    rt1.Text =  Tables("在库明细").Current("起始箱号") + Count - 1
    rt1.Style.Font = New Font("宋体", 36, FontStyle.Bold) '设置字体
    rt1.Width = "Auto" '自动设置宽度
    rt1.X =10 '指定水平位置
    rt1.y =5 ' 指定垂直位置
    rt1.Style.Borders.All = New prt.Linedef(0.3, Color.black) '设置边框
    rt2.Text =  Tables("在库明细").Current("件数")
    rt2.Width = "Auto" '自动设置宽度
    rt2.X =10'指定水平位置
    rt2.y =25'指定垂直位置
    rt2.Style.Borders.All = New prt.Linedef(0.3, Color.black) '设置边框
    doc.Body.Children.Add(rt1) '将文本对象加入到报表
    doc.Body.Children.Add(rt2) '将文本对象加入到报表
    Count=Count-1
    doc.Preview() '预览
Next

[此贴子已经被作者于2010-5-22 23:41:57编辑过]

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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2010/5/23 0:20:00 [显示全部帖子]

以下是引用czy在2010-5-22 23:53:00的发言:

好象这样的循环打印有问题。

预览时不能清除上一次的值,不知真正打印时会不会这样。

 

打印肯定也是这样的


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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2010/5/23 0:33:00 [显示全部帖子]

楼主,你每次打印都是同一个printDoc,结果当然是这样的。

 

要不重复,就得每次打印都创建一个新的PrintDoc:

 

For i As Integer =1 To Count
     Dim doc As New PrintDoc '定义一个报表
     Dim rt1 As New prt.RenderText '定义一个箱号文本对象
     Dim rt2 As New prt.RenderText '定义一个件数文本对象
     Dim Count As Integer = Tables("在库明细").Current("件数")
     doc.PageSetting.Width = 102 '纸张宽度为102毫米
     doc.PageSetting.Height = 76 '纸张高度为76毫米

     rt1.Text =  Tables("在库明细").Current("起始箱号") + Count - 1
     rt1.Style.Font = New Font("宋体", 36, FontStyle.Bold) '设置字体
     rt1.Width = "Auto" '自动设置宽度
     rt1.X =10 '指定水平位置
     rt1.y =5 ' 指定垂直位置
     rt1.Style.Borders.All = New prt.Linedef(0.3, Color.black) '设置边框
     rt2.Text =  Tables("在库明细").Current("件数")
     rt2.Width = "Auto" '自动设置宽度
     rt2.X =10'指定水平位置
     rt2.y =25'指定垂直位置
     rt2.Style.Borders.All = New prt.Linedef(0.3, Color.black) '设置边框
     doc.Body.Children.Add(rt1) '将文本对象加入到报表
     doc.Body.Children.Add(rt2) '将文本对象加入到报表
     doc.Preview() '预览
Next

 

或者

 

Dim doc As PrintDoc '定义一个报表变量
Dim rt1 As prt.RenderText '定义一个箱号文本对象变量
Dim rt2 As prt.RenderText '定义一个件数文本对象变量
For i As Integer =1 To Count
     doc = New PrintDoc '定义一个报表
     rt1 = New prt.RenderText '定义一个箱号文本对象
     rt2 = New prt.RenderText '定义一个件数文本对象
     Dim Count As Integer = Tables("在库明细").Current("件数")
     doc.PageSetting.Width = 102 '纸张宽度为102毫米
     doc.PageSetting.Height = 76 '纸张高度为76毫米

     rt1.Text =  Tables("在库明细").Current("起始箱号") + Count - 1
     rt1.Style.Font = New Font("宋体", 36, FontStyle.Bold) '设置字体
     rt1.Width = "Auto" '自动设置宽度
     rt1.X =10 '指定水平位置
     rt1.y =5 ' 指定垂直位置
     rt1.Style.Borders.All = New prt.Linedef(0.3, Color.black) '设置边框
     rt2.Text =  Tables("在库明细").Current("件数")
     rt2.Width = "Auto" '自动设置宽度
     rt2.X =10'指定水平位置
     rt2.y =25'指定垂直位置
     rt2.Style.Borders.All = New prt.Linedef(0.3, Color.black) '设置边框
     doc.Body.Children.Add(rt1) '将文本对象加入到报表
     doc.Body.Children.Add(rt2) '将文本对象加入到报表
     doc.Preview() '预览
Next

 

 

另外你的循环语句中出现Count = Count- 1,是啥意思?这一句让人感觉很奇怪。

 

[此贴子已经被作者于2010-5-23 0:36:28编辑过]

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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2010/5/23 0:34:00 [显示全部帖子]

看7楼,你还需要补补帮助文件,打打基本功。

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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2010/5/23 10:34:00 [显示全部帖子]

重复打印的问题,用7楼的办法吧

 回到顶部