找回密码
 立即注册

QQ登录

只需一步,快速开始

cg213

注册会员

1

主题

3

帖子

8

积分

注册会员

积分
8

活字格认证

最新发帖
cg213
注册会员   /  发表于:2010-8-5 17:21  /   查看:8477  /  回复:4
举个例子:
我在detail里放入picture用来做背景。picture是我报表的一些线框。预览时要显示(整个报表线框);打印时,将背景picture不显示,不打印报表线框,只打印数据。请问怎样来实现?

【注】:我在下面的事件里加入,但打印时还是有线框
private void detail_AfterPrint(object sender, EventArgs e)
    {
        this.picture1.Visible = false;
    }

4 个回复

倒序浏览
gw0506
超级版主   /  发表于:2010-8-6 13:40:00
沙发
你可以使用BeforePrint事件。

这将使picture不会被打印出来。但是,运行时下也不会显示该picture。只有在设计时可以看到。

private void detail_BeforePrint(object sender, EventArgs e)
{
    this.picture1.Visible = false;
}
回复 使用道具 举报
cg213
注册会员   /  发表于:2010-8-6 15:15:00
板凳
to gw0506:
您没明白我的意思。 这个线框picture在打印预览时要显示出来,让客户看到完整的表;但在打印时候不打印线框picture,只打印数据。
回复 使用道具 举报
gw0506
超级版主   /  发表于:2010-8-6 17:12:00
地板

回复 3# cg213 的帖子

ActiveReports在调用Run方法后,生成Document。预览看到的Document和打印出来的是一样的,没有时机修改。

通常对于套打的需求,基本思想是在打印之前,重新创建一个ActiveReports实例,然后将不愿显示的部分隐藏起来。这样打印出来的就和预览的不同。做法不一而同,这里给出一个直接的办法:

private void button1_Click(object sender, EventArgs e)
{
    NewActiveReport1 rpt = new NewActiveReport1();
    rpt.Sections["detail"].Controls["picture1"].Visible = false;
    this.viewer1.Document = rpt.Document;
    rpt.Run(true);

    rpt.Document.Print(true, true, true);
}
回复 使用道具 举报
cg213
注册会员   /  发表于:2010-8-9 15:14:00
5#
非常感谢gw0506 ,问题解决
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部