JS 调用打印_不查看直接打印

编辑
  • 文档创建者:文档助手1
  • 浏览次数:17824次
  • 编辑次数:24次
  • 最近更新:Kevin-s 于 2019-06-20
  • 1. 描述

    FineReport 内部封装好的js打印方法是一个很好的资源,在用户系统中有如下图所示情形,一张清单列表,对于每条记录后面都希望有一个“打印”,点击的时候可以将该记录对应的明细报表打印出来。

    222

    实现效果如下图:

    222

    2. 解决方案

    通过 JS 调用 FR 的打印方法,传递需要打印的报表路径及参数,将报表打印出来。

    3. 示例一(设计器模板中调用FR打印方法)

    3.1 模板设置

    1)子模板

    新建模板,添加数据集 ds1:SELECT * FROM 订单明细

    将字段拖入单元格中,模板设置如下:

    222

    双击 A2 单元格,添加过滤条件,如下所示:

    222

    保存模板:%FR_HOME%\webapps\webroot\doc\Parameter\参数传递打印_子模板.cpt

    2)主模板

    新建模板,添加数据集 ds1:SELECT * FROM 订单 limit 10

    将字段拖入单元格中,模板设置如下:

    222

    保存模板:%FR_HOME%\webapps\webroot\doc\Parameter\参数传递打印_主模板.cpt

    3.2 设计器模板中调用FR打印方法

    只是查看时,可以通过超级链接-JavaScript调用打印事件;

    填报预览也可以通过按钮控件的点击事件来调用打印事件,并且可以传递参数,主模板设置如下图:

    222

    保存模板,选择分页预览,实现效果如描述中所示。

    注:在设计器中调用打印方法时不需要事先引入 finereport.js,因为报表模板转换成网页时会自动引入。

    4. 示例二(Web 页面中调用 FR 打印方法)

    若不使用 FR 设计器制作的,而是用户自己语言实现的,此时在点击“打印”时,可以通过 JS 获取需要传递的参数值拼接出需要打印的模板路径,然后调用 FR 打印方法进行打印。

    在 Web 页面中调用FR打印方法前,需要先引入 finereport.js,调用代码如下:

    <html> 
     <head> 
     <title>FineReport Demo</title> 
     <meta http-equiv="Content-Type" content="text/html; charset=GBK" />  
    <script type="text/javascript" src="/webroot/decision/view/report?op=emb&resource=finereport.js"></script>  
    <link rel="stylesheet" type="text/css" href="/webroot/decision/view/report?op=emb&resource=finereport.css"/>  
     <script type='text/javascript'> 
     function doPrint(){   
     
     
        var printurl="http://localhost:8075/webroot/decision/view/report";
    var reportlets ="[{reportlet: "+document.report.cpt.value+"}]";
    var config = {
    printUrl : printurl,
    isPopUp : true, 
    // 是否弹出设置窗口,true为弹出,false为不弹出
    data :{ 
    reportlets: reportlets // 需要打印的模板列表
    },
    printType : 1, // 打印类型,0为零客户端打印,1为本地打印
    // 以下为本地打印的参数,仅当 printType 为 1 时生效
    printerName : 'Microsoft Print to PDF', // 打印机名
    pageType: 2, // 打印页码类型:0:所有页,1:当前页,2:指定页
    pageIndex: '1-3', // 页码范围。当 pageType 为 2 时有效
    copy: 3, // 打印份数
    };
    FR.doURLPrint(config);
    }   
     </script> 
     </head> 
     <body> 
     <form name="report"> 
     <input id="cpt" type="checkbox" value="GettingStarted.cpt" />GettingStarted.cpt<br> 
     </form> 
     <input type=button name=doprint onclick=doPrint() value='doPrint'></input> 
     </body> 
     </html>

    注:以上都是使用的本地打印,若想使用其他打印方法可以查看 JS 调用 FR 打印方法文档,用法类似。

    已完成 HTML 页面保存在%FR_HOME%\webapps\webroot\help\page_demo\immeprint.html

    打开内置服务器,在浏览器中输入http://localhost:8075/webroot/help/page_demo/cusprint_batch.html,选中复选框,点击 doprint 按钮,既可以实现打印了。


    附件列表


    主题: 报表应用
    标签: 暂无标签
    如果您认为本文档还有待完善,请编辑

    文档内容仅供参考,如果你需要获取更多帮助,付费/准付费客户请咨询帆软技术支持
    关于技术问题,您还可以前往帆软社区,点击顶部搜索框旁边的提问按钮
    若您还有其他非技术类问题,可以联系帆软传说哥(qq:1745114201

    此页面有帮助吗?只是浏览 [ 去社区提问 ]