问:举个例子:
我在detail里放入picture用来做背景。picture是我报表的一些线框。预览时要显示(整个报表线框);打印时,将背景picture不显示,不打印报表线框,只打印数据。请问怎样来实现?
【注】:我在下面的事件里加入,但打印时还是有线框
private void detail_AfterPrint(object sender, EventArgs e)
{
this.picture1.Visible = false;
}
我在detail里放入picture用来做背景。picture是我报表的一些线框。预览时要显示(整个报表线框);打印时,将背景picture不显示,不打印报表线框,只打印数据。请问怎样来实现?
【注】:我在下面的事件里加入,但打印时还是有线框
private void detail_AfterPrint(object sender, EventArgs e)
{
this.picture1.Visible = false;
}
答:你可以使用BeforePrint事件。
这将使picture不会被打印出来。但是,运行时下也不会显示该picture。只有在设计时可以看到。
private void detail_BeforePrint(object sender, EventArgs e)
{
this.picture1.Visible = false;
}
这将使picture不会被打印出来。但是,运行时下也不会显示该picture。只有在设计时可以看到。
private void detail_BeforePrint(object sender, EventArgs e)
{
this.picture1.Visible = false;
}
问:您没明白我的意思。 这个线框picture在打印预览时要显示出来,让客户看到完整的表;但在打印时候不打印线框picture,只打印数据。
答: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);
}
通常对于套打的需求,基本思想是在打印之前,重新创建一个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);
}
附:产品下载和介绍