js打印设置打印偏移

编辑
文档创建者:ezreal (55889 )     浏览次数:1616次     编辑次数:8次     最近更新:jiangsr 于 2018-08-22     

目录:

1. 描述编辑

FineReport提供了不预览报表直接打印的js方法,也提供了根据打印效果设置打印偏移的方法。但是打印偏移必须在预览报表的情况设置,直接js打印没有途径设置打印偏移,下面将介绍一种方案实现js打印设置打印偏移。

注:在jar包版本为2018-04-09及以上版本时,请使用新的打印方式,详情参照:[新]打印

2. 解决方案编辑

采用op=getsessionid的方式获取到一个报表的sessionid,然后用ajax去访问偏移量的url ,最后根据sessionid来进行打印。

3. 具体事例编辑

3.1 生成报表sessionid

编写函数根据传入的报表路径和参数返回报表计算完成的sessionid,参考代码如下:

function getsessionid(cpt,para){ var sessionID; var url="/webroot/decision/view/report" var data = $.extend({ op:'getSessionID', reportlet:cpt },para); FR.ajax({ url: url, type: 'POST', data: data, async: false, complete: function (res, status) { if (status == 'success') { sessionID = res.responseText; } } }); return sessionID; }

3.2 根据sessionid打印报表

编写函数根据传入的偏移量和sessionid进行打印,参考代码如下:

function print(x,y,sessionid){ var pianyiurl="/webroot/decision/view/report?op=printer_offset&cmd=pt_submit&sessionID="+sessionid+"&type=2&offset_x="+x+"&offset_y="+y+"&copy_IP=localOffset";//偏移量的设置的url,其中sessionID就是报表的sessionID,type是偏移的类型1代表全局设置,2代表单个模板设置,offset_x和offset_y分别是横纵方向的偏移量可以为负数 FR.ajax({ url:pianyiurl, type:"GET", async: false, complete: function(msg){ FR.doURLPDFPrint("/webroot/decision/view/report?sessionID="+sessionid); } }) }

3.3 传入报表参数打印

传入报表名字和参数进行打印

print(100,0,getsessionid("1.cpt",{a:'111',b:'222'}));

模板设计的样式:

222

A1、B1单元格为获取传入的参数。

B5单元格表示当前的页码数。

打印样式:

222

完整的html代码:

<head> <title>FineReport Demo</title> <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 getsessionid(cpt,para){ var sessionID; var url="/webroot/decision/view/report" var data = $.extend({ op:'getSessionID', reportlet:cpt },para); FR.ajax({ url: url, type: 'POST', data: data, async: false, complete: function (res, status) { if (status == 'success') { sessionID = res.responseText; } } }); return sessionID; } function print(x,y,sessionid){ var pianyiurl="/webroot/decision/view/report?op=printer_offset&cmd=pt_submit&sessionID="+sessionid+"&type=2&offset_x="+x+"&offset_y="+y+"&copy_IP=localOffset";//偏移量的设置的url,其中sessionID就是报表的sessionID,type是偏移的类型1代表全局设置,2代表单个模板设置,offset_x和offset_y分别是横纵方向的偏移量可以为负数 FR.ajax({ url:pianyiurl, type:"GET", async: false, complete: function(msg){ FR.doURLPDFPrint("/webroot/decision/view/report?sessionID="+sessionid); } }) } print(100,0,getsessionid("1.cpt",{a:'111',b:'222'})); </script> </head> <body> <body> </html>

注:需要先引入finereport.js才能够调用FineReport的js方法

注:将html文件存放到%FR_HOME%\WebReport中,并挂载到决策系统中,即可查看效果。

4. 移动端编辑

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

附件列表


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

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

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