CanYou8 发表于 2015-4-20 16:55:00

不预览直接打印、批量打印如何实现?

目前我们的ActiveReports 报表是这样的实现思路:设计报表模板,上传到指定位置;程序在触发报表预览功能时加载模板并传参,渲染预览窗口;之后打印或导出。
渲染报表的关键代码:
pageReport = new PageReport(new FileInfo(TemplatePath));
pageDocument = new PageDocument(pageReport);
reportsViewer.LoadDocument(pageDocument);
现在有两个问题希望得到帮助:
1.如何实现不预览直接打印的效果?
2.如何实现批量打印的效果?

frank.zhang 发表于 2015-4-20 17:15:00

您好,
第一个问题,我理解是不在页面上展示,直接点击button,就可以打印。
第二个问题,批量打印是指一张连续打印多次吗?

CanYou8 发表于 2015-4-20 17:31:00

第一个问题,是不在页面上预览;点击button按钮直接开始打印,或者弹出打印设置页也可以
第二个问题,假如有一个客户信息模板,需传递客户ID。我在页面上选择了10个客户,那么就有10个客户ID,调用客户信息模板逐个打印出这10个客户的信息。

frank.zhang 发表于 2015-4-20 17:40:00

您好,
第一个问题,我们有一篇博客,您可以参考下
http://blog.gcpowertools.com.cn/post/2013/10/09/ActiveReports_DirectPrint.aspx

CanYou8 发表于 2015-4-21 14:33:00

回复 4楼frank.zhang的帖子

例子使用的是WebViewer 控件,而我现在用的是WPF。参考例子的代码,我没有在WpfViewer里找到类似的属性,WPF要如何处理呢?

frank.zhang 发表于 2015-4-21 16:35:00

您好,
我们这边的思路是,隐藏Viewer,设置为Hidden。
然后通过button打印。
      private void button1_Click(object sender, RoutedEventArgs e)
      {
            viewer1.Print(true, true, true);
      }





frank.zhang 发表于 2015-4-23 11:51:00

您好,
我们这边尝试了下,可以用以下代码实现
            string file_name = @"..\..\RdlReport1.rdlx";
            GrapeCity.ActiveReports.PageReport pageReport = new GrapeCity.ActiveReports.PageReport(new
System.IO.FileInfo(file_name));
            GrapeCity.ActiveReports.Document.PageDocument pageDocument = new
            GrapeCity.ActiveReports.Document.PageDocument(pageReport);
            pageDocument.Printer.Print();
页: [1]
查看完整版本: 不预览直接打印、批量打印如何实现?