多语言展示
当前在线:362今日阅读:19今日分享:20

数据报表FineReport中调用打印方法产生的问题

下面就通过数据报表FineReport来简单介绍一下。
工具/原料
1

数据报表FineReport7.1.1

2

大小:148.2M 适用平台:windows/linux

方法/步骤
1

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

2

原因您引用的finereport.js和页面不在同一个应用下,如您的Web工程名为FR,而您调用finereport.js的语句是:  这就涉及到跨域访问js,从而出现如上情况。

3

解决方案方案一情景:若您应用为java应用,且页面没有通过iframe嵌入报表,而是希望不预览模板直接打印或者批量打印报表,则可以采用如下方案:将报表应用集成至您的java应用中,修改调用finereport.js语句,使用相对路径引用js,如修改后的调用finereport.js的语句为:

4

方案二情景:若您页面通过iframe嵌入了报表,希望打印该报表,则可以采用如下方案(java/非java应用都可以,可以为独立的报表应用):不调用finereport.js下的FR.doURLPDFPrint(url)进行打印,而是获取iframe中的报表直接打印,即使用iframe解决跨域问题。假设iframe的id是reportFrame,则打印方法如下: function doprint(){  document.getElementById('reportFrame').contentWindow.contentPane.pdfPrint();}最后调用下这个打印方法即完成打印。

推荐信息