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


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

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

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


加好友 发短信
等级:一尾狐 帖子:447 积分:4793 威望:0 精华:0 注册:2010/4/11 14:09:00
请老师指教,错误在哪里?  发帖心情 Post By:2010/5/22 23:37:00 [只看该作者]


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

Dim doc As New PrintDoc '定义一个报表
Dim rt1 As New prt.RenderText '定义一个箱号文本对象
Dim rt2 As New 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.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

 

专业报表中的代码执行后,出现这个错误提示,请老师指教,谢谢!


 回到顶部
帅哥哟,离线,有人找我吗?
狐狸爸爸
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | 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编辑过]

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


加好友 发短信 菜鸟中的老鸟
等级:七尾狐 帖子:1486 积分:10064 威望:0 精华:9 注册:2008/11/14 8:54:00
  发帖心情 Post By:2010/5/22 23:42:00 [只看该作者]

doc.Preview() '预览
感觉上这个放错地方了。。没细看/

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


加好友 发短信 一级勋章 三级勋章 二级勋章
等级:超级版主 帖子:6318 积分:33963 威望:0 精华:10 注册:2008/8/31 20:56:00
  发帖心情 Post By:2010/5/22 23:53:00 [只看该作者]

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

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


 回到顶部
帅哥哟,离线,有人找我吗?
狐狸爸爸
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | 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的发言:

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

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

 

打印肯定也是这样的


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


加好友 发短信
等级:一尾狐 帖子:447 积分:4793 威望:0 精华:0 注册:2010/4/11 14:09:00
  发帖心情 Post By:2010/5/23 0:26:00 [只看该作者]

家里没有打印机,用虚拟打印机打出来的,就是像czy说的那样,有重叠,上次一的内容不能清空

 回到顶部
帅哥哟,离线,有人找我吗?
狐狸爸爸
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | 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编辑过]

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


加好友 发短信
等级:一尾狐 帖子:447 积分:4793 威望:0 精华:0 注册:2010/4/11 14:09:00
  发帖心情 Post By:2010/5/23 0:33:00 [只看该作者]

 在doc.Print() 后面加上


    rt1.Text = ""
    rt2.Text = ""

 

应该就可以解决这个问题了


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


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

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

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


加好友 发短信
等级:一尾狐 帖子:447 积分:4793 威望:0 精华:0 注册:2010/4/11 14:09:00
  发帖心情 Post By:2010/5/23 9:51:00 [只看该作者]

学生刚刚开始学,确实是很多的不懂,还要恶补下帮助文件

循环语句中出现Count = Count- 1,是为了让打印的内容是流水号

可能是个菜鸟的土办法吧

 

在doc.Print() 后面加上 
    rt1.Text = ""
    rt2.Text = ""

虽然是不得法,也算是个土办法吧,呵呵,见笑了


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