调用打印方法产生的问题

编辑
文档创建者:文档助手1 (67727 )     浏览次数:2208次     编辑次数:6次     最近更新:gxy120313 于 2016-06-03     

目录:

1. 问题描述编辑

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

2. 原因编辑

您引用的finereport.js和页面不在同一个应用下,如您的Web工程名为FR,而您调用finereport.js的语句是:
<script type="text/javascript" src="http://localhost:8075/WebReport/ReportServer?op=emb&resource=finereport.js"></script>
这就涉及到跨域访问js,从而出现如上情况。

3. 解决方案编辑

3.1 方案一
情景:若您应用为java应用,且页面没有通过iframe嵌入报表,而是希望不预览模板直接打印或者批量打印报表,则可以采用如下方案:
将报表应用服务器部署中,修改调用finereport.js语句,使用相对路径引用js,如修改后的调用finereport.js的语句为:
<script type="text/javascript" src="/appName/ReportServer?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

此页面有帮助吗?