以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  专业报表打印多页报错  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=21999)

--  作者:与伊相伴
--  发布时间:2012/7/30 15:40:00
--  专业报表打印多页报错

狐爸帮我瞧瞧我的这个代码如何改了,就是我想用专业报表打印表数据,在表中存在多条数据时希望以多页的形式打印出来,希望都能够每页都显示如第一页上面的标题及信息,但是我的数据超过一页就会报错了,请求狐爸了...

 

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:专业报表打印分页.zip

[此贴子已经被作者于2012-7-30 17:06:12编辑过]

--  作者:狐狸爸爸
--  发布时间:2012/7/30 16:41:00
--  
我没有看到你的代码
--  作者:与伊相伴
--  发布时间:2012/7/30 17:13:00
--  
代码在窗口上,窗口上有一个打印按钮的
[此贴子已经被作者于2012-7-30 17:13:54编辑过]

--  作者:狐狸爸爸
--  发布时间:2012/7/30 17:45:00
--  

问题出在下面:

 

      For r As Integer = 0 To tb.Rows.Count -1 \'开始填入该列内容
            rt.Cells(r - i * prs + 1, c).Text = tb.Rows(r)(ColNames(c))
      Next

 

代码你写的,你自己分析一下吧。



--  作者:与伊相伴
--  发布时间:2012/7/30 18:07:00
--  

这里有问题,但是如果没有多页的话,是没有问题的阿,搞不懂!


--  作者:与伊相伴
--  发布时间:2012/7/31 8:35:00
--  
狐爸说一下吧,还是没调出来啊...
--  作者:狐狸爸爸
--  发布时间:2012/7/31 8:40:00
--  

       For r As Integer = 0 To tb.Rows.Count -1 \'开始填入该列内容
            rt.Cells(r - i * prs + 1, c).Text = tb.Rows(r)(ColNames(c))
        Next

 

当你打印第一页的时候,从0遍历到tb.Rows.count -1,也就是第一页打印所有行,当你打印第二页的时候,你还是从从0遍历到tb.Rows.count -1,还是打印所有行,你所有的页面都尝试打印表A的所有行。

 

分页不是这样的,你看看帮助的分页打印是怎样设计的:

http://www.foxtable.com/help/topics/2241.htm

http://www.foxtable.com/help/topics/2409.htm

http://www.foxtable.com/help/topics/2408.htm

 


--  作者:与伊相伴
--  发布时间:2012/7/31 10:12:00
--  

谢谢狐爸的耐心分解,现在已经修改成功,把修改好的代码发上来,希望有各位朋友用得上 

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:专业报表打印分页.zip

[此贴子已经被作者于2012-7-31 15:32:10编辑过]

--  作者:狐狸爸爸
--  发布时间:2012/7/31 14:19:00
--  
分页打印,当然不能这样用绝对坐标来指定位置的,页头的内容全部加入到一个容器中,容器内部用绝对坐标定位,容器本身按常规加入到报表中。