1、问题描述用户系统中使用iframe嵌入报表,客户端浏览器看到的是报表样式1,打印的时候不是看到的效果,而是样式2。例如用户系统显示报表的iframe大小固定,无法完全显示A4纸张大小的模板,因滠锖斟绸此在显示报表的时候进行了分页处理,如每页显示10条数据。如果直接将这个显示结果打印到A4纸上,每页纸上只显示10条数据,下面全是空白的,不美观并且浪费纸张,所以希望打印的时候按正常页面打印。
2、解决方案类似上述这种打印效果与报表查看效果不同的情况,统一的解决方案是做二张模板,一张对应查看的模板;另一张对应打印的模板;进行打印时,通过js调用FR的打印方法,将打印模板打印出来。
3、实现步骤点击打印的时候,通过js调用FR的打印方法,使用打印模板进行打印,如下:<html><head><script type="text/javas艘早祓胂cript" src="/WebReport/ReportServer?op=emb&resource=finereport.js"></script><link rel="stylesheet" type="text/css" href="/WebReport/ReportServer?op=emb&resource=finereport.css"/><script type="text/javascript">function doFRPrint(){ //点击打印时触发var reportURL="/WebReport/ReportServer?reportlet=report_print.cpt"; //打印模板路径,与BS查看的效果不同 FR.doURLFlashPrint(reportURL); //调用FR打印方法}</script></head><body><div id="toolbar"><button type="button" onclick=doFRPrint()>打印</button></div><iframe id="reportFrame" src="/WebReport/ReportServer?reportlet=report.cpt&__showtoolbar__=false" width=100% height=80%></iframe></body></html>