找回密码
 立即注册

QQ登录

只需一步,快速开始

malimalihong

论坛元老

6

主题

27

帖子

4884

积分

论坛元老

积分
4884

活字格认证

最新发帖
malimalihong
论坛元老   /  发表于:2011-9-14 09:50  /   查看:6544  /  回复:8
在一次打印的时候,打印多张报表。

怎样能保证报表的打印顺序呢?

我现在的做法是,做了一张空白的报表,然后向空白里添加。

代码如:rptMain.Document.Pages.AddRange(rptSome1.Document.Pages())
           rptMain.Document.Pages.AddRange(rptSome2.Document.Pages())

可当循环打印的时候,会出现空白的报表。

求解。。。。。。

8 个回复

倒序浏览
ZenosZeng讲师达人认证 悬赏达人认证
超级版主   /  发表于:2011-9-14 10:10:00
沙发
你好,

你一次打印多张报表的方法是没问题的

你说的循环打印是指的什么样的操作呢,能否描述一下操作步骤嘛
回复 使用道具 举报
malimalihong
论坛元老   /  发表于:2011-9-14 11:10:00
板凳

回复 2# dof 的帖子

循环打印就是重复调用
代码:rptMain.Document.Pages.AddRange(rptSome1.Document.Pages())
        rptMain.Document.Pages.AddRange(rptSome2.Document.Pages())


因为结果集里有多条数据,每一条就要循环一次打印。

空白页的问题,我已经解决了。原因是:在子报表中的Detail_Format设置的不对。

现在有另外一个问题,每一个报表都有名字,像我现在这种做法只能给那张空白报表(rptMain)命名(rptMain.Document.Name = "ActiveReports")。

在打印进度的Dialog里只能显示rptMain的名“ActiveReports”。

子报表的名字显示不了。。。。

这个有解决方法吗?
回复 使用道具 举报
ZenosZeng讲师达人认证 悬赏达人认证
超级版主   /  发表于:2011-9-14 11:21:00
地板
打印时的确是显示一个名称,无法显示其子报表的名称。
回复 使用道具 举报
ZenosZeng讲师达人认证 悬赏达人认证
超级版主   /  发表于:2011-9-14 12:15:00
5#

回复 3# malimalihong 的帖子

如果不把两个报表合并到rptMain中,而是分别调用rptSome1和rptSome2的Print方法就可以显示各自的打印名字,不知道分别打印是否满足你的需求。
回复 使用道具 举报
malimalihong
论坛元老   /  发表于:2011-9-14 12:24:00
6#
原帖由 dof 于 2011-9-14 12:15:00 发表
如果不把两个报表合并到rptMain中,而是分别调用rptSome1和rptSome2的Print方法就可以显示各自的打印名字,不知道分别打印是否满足你的需求。


如果分别打印的话,就不能保证打印出来纸张的顺序了。

比如rptSome1的项目比rptSome2的打印的项目多,文件比rptSome2大的话,rptSome1还没有打完,rptSome2的Print已经开始了,而且有可能比rptSome1要先打印出来。
回复 使用道具 举报
malimalihong
论坛元老   /  发表于:2011-9-20 10:45:00
7#
:? :?
回复 使用道具 举报
ZenosZeng讲师达人认证 悬赏达人认证
超级版主   /  发表于:2011-9-20 10:53:00
8#

回复 7# malimalihong 的帖子

如果你需要一次打印多个报表,只能将多个报表合并之后再打印,但是在打印过程中打印名称只能是一个。也就是你的实现方法。
回复 使用道具 举报
malimalihong
论坛元老   /  发表于:2011-9-21 16:42:00
9#

回复 8# dof 的帖子

跟客户确认了,保证打印顺序更为重要。Dialog的名无所谓了。
谢谢了。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部