js调用打印_直接通过模板传递参数打印

编辑
文档创建者:文档助手1 (67727 )     浏览次数:5418次     编辑次数:6次     最近更新:jiangsr 于 2018-05-09     

目录:

1. 问题描述编辑

XX公司在使用FineReport的打印功能时,其模板是一张订单形式的模板,客户在浏览器端使用订单时,填写完该订单后,需要将参数传递给模板,然后直接打印订单,但是如果订单填写的东西太多,以参数的形式将值传递给模板会使性能很差,那么该以什么样的形式来传递参数呢?
注:在jar包版本为2018-04-09及以上版本时,请使用新的打印方式,详情参照:[新]打印

2. 解决思路编辑

直接通过模板来传递参数,即网页直接调用设计好的模板,在网页里填参数就相当于在模板里填参数,然后实现打印。
用两张模板来实现,主模板用来填写参数,并将参数传递给子模板,子模板获取传递过来的参数,并打印出来。

3. 解决方案编辑

3.1 主模板
1)报表主体
报表主体样式如下图:
222
两个文本控件的控件名字分别为,NAME和SEX。
2)js
给打印按钮添加点击事件,js如下:
var name=FR.cjkEncode($("[name='NAME']").val()); var sex=FR.cjkEncode($("[name='SEX']").val()); para={ name:name, sex:sex }; var config={ url:"http://localhost:8075/WebReport/ReportServer?reportlet=son.cpt", isPopUp:false, data:para }; FR.doURLPDFPrint(config);
保存模板为main.cpt
3.2 子模板
子模板报表主体
222
注:name和sex参数是在主模板的js里面定义的。
保存模板为son.cpt,子模板的名字和路径应该与主模板js里面的名字和路径一致。
3.3 效果查看
以填报预览的方式打开main.cpt,填写姓名和性别,点击打印按钮,如下图:
222
此处我们用的是PDF打印,点击打印按钮之后会下载一个PDF文件son.pdf。
打开pdf,可以看到姓名和性别这两个数据被打印出来了,并且打印的格式是按照son.cpt中的样式,如下图:

4. 移动端编辑

移动端不支持各种打印和导出方式

附件列表


主题: 专题总结
标签: 暂无标签 编辑/添加标签
如果您认为本文档还有待完善,请编辑

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

此页面有帮助吗?