szpzr 发表于 2017-2-22 10:30:31

直接打印

本帖最后由 szpzr 于 2017-2-25 07:54 编辑

页面保存后下列代码:
Contract_Ar Rpt = new Contract_Ar();//实例化报表
               
可以实现直接打印,但是添加下行返回当前页就不能实现打印,如何实现即直接打印,又能关闭当前页返回上一页。
                this.Response.Write("<script>alert('保存完成!');window.opener.location.replace(window.opener.document.referrer);window.close();</script>");//关闭当前窗口刷新父窗口

Richard.Ma 发表于 2017-2-22 12:26:30

看到你说实现了打印功能,是在客户端连接的打印机还是服务端的打印机上
我的理解是,最后一行的代码强制关闭了当前窗口,导致打印无法进行。如果是在服务端进行打印应该是不会受到影响的
目前在iis服务端进行打印是可以做到的,在客户端进行打印比较困难。因为没有看到更多的代码WebViewer1这个是创建的什么对象

szpzr 发表于 2017-2-22 12:35:47

客户端是可以打印的。

szpzr 发表于 2017-2-22 12:37:16

客户端那不能写最后一行语句,只能等打印后再返回前一页面?

Richard.Ma 发表于 2017-2-22 16:59:54

本帖最后由 Richard.Ma 于 2017-2-22 17:05 编辑

如果是在客户端进行打印的话,应该是你说的这个页面的js代码(后端的代码解析后)给浏览器发送指令,那么至少要等打印开始,也就是浏览器给打印机发送了指令以后,才能关闭这个页面。是否可以等打印开始后,在前端的js代码中添加关闭窗口的方法
网上找了一下,你看看这个有没有参考意义http://blog.csdn.net/qq_16149125/article/details/52194017

szpzr 发表于 2017-2-23 08:09:32

数据表产生若干条数据后,用循环语句试着打印全部记录,只能看到或打到最后一条记录,请教各位大神,能有办法实现直接打印产生的全部记录吗?领导要求必须这样做!:L

Lenka.Guo 发表于 2017-2-23 09:36:46

您是指: 每条记录会生成一张报表,并打印, 但是会同时产生多条记录,对应多张报表,需要同时打印多张报表。
如果是这样,您可以参考博客:如何实现批量打印

szpzr 发表于 2017-2-23 09:57:19

谢谢Lenka.Guo ,能否给个示例。

szpzr 发表于 2017-2-23 10:00:24

区域报表可以吗?

Lenka.Guo 发表于 2017-2-23 11:25:08

如电话沟通:
// 生成多个报表
            SectionReport1[] rpt1 = new SectionReport1{};
            // 为报表添加数据源
            //...
            //...
            //执行批量打印
            for (int i = 0; i < 3; i++)
            {
                var rpt = rpt1;
                rpt.Run(false);
                var sectionDocument = rpt.Document;
                sectionDocument.Print(true, true, false);

            }

页: [1] 2 3 4 5
查看完整版本: 直接打印