调用打印方法产生的问题

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

    在页面中调用 finereport.js 下的 FR.doURLPDFPrint(url) 时,会一直显示"正在打印 正在加载控件...",如下图所示:

    222

    2. 原因

    您引用的 finereport.js 和页面不在同一个应用下,如您的 Web 工程名为 FR,而您调用 finereport.js 的语句是:

    <script type="text/javascript" src="http://localhost:8075/webroot/decision/view/report?op=emb&resource=finereport.js"></script>

    这就涉及到跨域访问js,从而出现如上情况。

    3. 解决方案

    3.1 方案一

    情景:若您应用为 Java 应用,且页面没有通过 iframe 嵌入报表,而是希望不预览模板直接打印或者批量打印报表,则可以采用如下方案:

    将报表应用 服务器部署 中,修改调用 finereport.js 语句,使用相对路径引用 JS,如修改后的调用 finereport.js 的语句为:

    <script type="text/javascript" src="/工程名/decision/view/report?op=emb&resource=finereport.js"></script>

    3.2 方案二

    情景:若您页面通过 iframe 嵌入了报表,希望打印该报表,则可以采用如下方案(Java/非 Java 应用都可以,可以为独立的报表应用):

    不调用 finereport.js 下的FR.doURLPDFPrint(url)进行打印,而是获取 iframe 中的报表直接打印,即使用 iframe 解决跨域问题。

    假设 iframe 的 id 是 reportFrame,则打印方法如下:

    function doprint(){
       document.getElementById('reportFrame').contentWindow.contentPane.pdfPrint();
    }

    最后调用下这个打印方法即完成打印。


    附件列表


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

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

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