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

编辑
文档创建者:文档助手1 (67727 )     浏览次数:10019次     编辑次数:18次     最近更新:jiangsr 于 2018-08-22     

目录:

1. 描述编辑

FineReport内部封装好的js打印方法是一个很好的资源,在用户系统中有如下图所示情形,一张清单列表,对于每条记录后面都希望有一个“打印”,点击的时候可以将该记录对应的明细报表打印出来。
222
实现效果如下图:
222
注:在jar包版本为2018-04-09及以上版本时,请使用新的打印方式,详情参照:[新]打印

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,因为报表模板转换成网页时会自动引入。
补充:决策报表预览模式下,给控件写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 url="http://localhost:8075/webroot/decision/view/report?viewlet="; url+=document.report.cpt.value; var isPopUp = false; var config = {url : url,isPopUp : isPopUp} FR.doURLPDFPrint(config); //FR.doURLPDFPrint(url,false); } </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>
注:以上都是使用的最简单的get方式Flash打印,且会弹出打印对话框,若想使用其他打印方法可以查看js调用FR打印方法文档,用法类似。

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

附件列表


主题: 专题总结
如果您认为本文档还有待完善,请编辑

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

此页面有帮助吗? [ 去社区提问 ]