2.1 子报表

2.1.1 新建 test10001.cpt

新建普通报表,存储为:%FR_HOME%\webroot\WEB-INF\reportlets\doc\Advanced\PrintReport\test10001.cpt

模板样式如下图所示:

2.1.2 新建 test10002.cpt

新建普通模板,存储为:%FR_HOME%\webroot\WEB-INF\reportlets\doc\Advanced\PrintReport\test10002.cpt

模板样式如下图所示:

2.2 主报表

新建普通模板,存储为:%FR_HOME%\webroot\WEB-INF\reportlets\doc\Advanced\PrintReport\PrintExample.cpt

2.2.1 数据准备

新建普通报表,新建数据集 ds1,数据库查询语句为:SELECT * FROM 订单 where 1=1 ${if(len(p1) == 0,"","and 订单ID in ('" + p1 + "')")} limit 10

如下图所示:

2.2.2 设计报表

报表样式如下图所示:

2.2.3 控件设置

1)按钮控件

设置 C1、C2 单元格为按钮控件,C1 单元格的按钮名称为批量打印,C2 单元格的按钮名称为批量导出。如下图所示:

2)复选按钮控件

选中 B3 单元格,点击控件,设置为复选按钮控件,如下图所示:

选中 B3 单元格,点击单元格属性>扩展,设置扩展方向为不扩展,左父格自定义为 C3 单元格。如下图所示:

2.2.4 设置参数面板

编辑参数面板,新增一个标签控件、下拉复选框控件和查询控件。设置标签控件的控件值为 p1: 。

设置下拉复选框控件的控件名称为 p1。设置数据字典,类型设置为数据查询,实际值和显示值都是订单ID,如下图所示:

2.3 设置批量打印 JS 事件

选中 C1 单元格,点击控件>事件,添加点击事件,输入 JavaScript 代码,如下图所示:

批量打印的 JavaScript 代码如下所示:var printurl="http://localhost:8075/webroot/decision/view/report";

var names = [];

var paths = [];

var singlepaths = [];

var url = "ReportServer?reportlets=(";

var $span = $('.fr-checkbox-checkon');  //获取选中的复选框

var $tds = $("td").has($span);     //定义选中复选框的单元格

var $trs = $("tr").has($tds);

var p=[];

for(var i=0; i

var name = $("td:eq(2)",$($trs[i])).html();  //获取选中的C4单元格的值

var a =  $("td:eq(3)",$($trs[i])).html();

var b = $("td:eq(4)",$($trs[i])).html();    //

names.push(name);     //将选中的值放到数组中

var cptpath ="doc/Advanced/PrintReport/"+"test"+ name+".cpt";

var urlstring = "{reportlet:" +"'"+FR.cjkEncode(cptpath)+"'"+",p1:"+"'"+name+"'"+",p2:"+"'"+a+"'"+",p3:"+"'"+b+"'"+"}";

debugger;

paths.push(urlstring);

debugger;

}

if(paths.length>0){

var rpaths=paths.join(",");

var reportlets="["+rpaths+"]";

var config = {

url : printurl,

isPopUp : false,

data : {reportlets:reportlets}

};

}

debugger;

FR.doURLPDFPrint(config);

2.4 设置批量导出 JS 事件

选中 C2 单元格,点击控件>事件,添加点击事件,输入 JavaScript 代码,如下图所示:

批量导出的 JavaScript 代码如下:var paths = [];

var url = "report?reportlets=[";

var $span = $('.fr-checkbox-checkon'); //获取选中的复选框

var $tds = $("td").has($span); //定义选中复选框的单元格

var $trs = $("tr").has($tds);

for (var i = 0; i

var name = $("td:eq(2)", $($trs[i])).html(); //获取选中的C3单元格的值

var a = $("td:eq(3)", $($trs[i])).html();

var b = $("td:eq(4)", $($trs[i])).html();

var cptpath = "doc/Advanced/PrintReport/" + "test" + name + ".cpt";

var urlstring = "{reportlet:" + "'" + FR.cjkEncode(cptpath) + "'" + ",p1:" + "'" + name + "'" + ",p2:" + "'" + a + "'" + ",p3:" + "'" + b + "'" + "}";

paths.push(urlstring);

}

url = url + paths + "]&format=word&__filename__=Xname";

window.open(encodeURI(url));

2.5 效果预览

保存模板,点击填报预览,即可对选中行的数据根据不同模板打印或导出。效果如 1.1 预期效果所示。

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

js一键批量打印_JS 实现选中内容批量打印/导出相关推荐

  1. Android开发,使用Log打印日志,打印相同内容在Logcat中只能连续显示两次(遍历打印List中的内容,打印结果条数比List的size小)。

    这个问题也不算什么有技术含量的问题,不过我感觉还是有必要写篇博客记录,以免有人遇到和我一样的困扰,也是因为在网上搜索发现,没有多少文章说明这个如题的原因,可能是大多都没经历过这个问题,或者是感觉不值得 ...

  2. 怎么样批量修改html里的内容,批量修改替换多个Word文档中同一内容的方法

    批量修改替换多个Word文档中同一内容的方法群里一位朋友问到,如何一次性批量替换多个word文档中的同一内容.其实,实现多个Word文档的字符进行批量替换的方法有多种. 第一种方法,可以利用第三方软件 ...

  3. 京瓷2010复印a4内容不全_京瓷1800打印机打印时设置了A4为什么打印不了复印正常...

    是打印机打印不了,还是打印A4纸出来是别的尺寸?希望补充问题. 打印机若是打印不了,按照以下操作: 检查打印机是否链接上电脑:如果没有链接上的话,首先检查看电源有没打开,还有检查打印机连接电缆接口是否 ...

  4. js一键批量打印_为什么我推荐你用3D打印技术制造模具?

    我国塑料制品产量占世界总产量的比重约为20%,塑料产品的批量生产离不开模具,模具的优势在于大批量的产品生产,但在未得到充分的试制验证和市场反应之前,传统工艺的模具开发也需要一定的周期和投入,有悖当前敏 ...

  5. 点击编辑框全选内容java,js实现鼠标点击文本框自动选中内容的方法

    本文实例讲述了js实现鼠标点击文本框自动选中内容的方法.分享给大家供大家参考.具体如下: 这里使用JS实现鼠标点击时自动选中文本框文本的效果,相信许多朋友都遇到这种功能的,就是当我们点击文本框的时候, ...

  6. html获取鼠标选中文本,经过JS获得input输入框中用鼠标选中的内容

    通过JS获得input输入框中用鼠标选中的内容 New Document //Firefox, Safari, Opera下,可以用window.getSelection(), 参考MDC //IE下 ...

  7. JavaScript前端:与PDF.js结合,实现网页PDF内容批量下载

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 JavaScript前端:与PDF.js结合,实现网页PDF内容批量下载 前言 一.PDF.js是什么? 二.PDF.js单个PDF文 ...

  8. html打印指定区域内容,js print打印网页指定区域内容

    比较简单的办法 使用CSS,定义一个.noprint的class,将不打印的内容放入这个class内. 细如下: 代码如下 .noprint{visibility:hidden} 要打印的内容.哈哈! ...

  9. js学习笔记(获取选中内容、缓动动画、动态设置元素属性)

    获取选中内容 1.标准浏览器 window.getSelection()拿到的是对象 window.getSelection().toString()拿到的是选中的文字 2.ie获取选中文字 docu ...

  10. 利用js弹出select下拉选中option的内容

     直接贴代码,很简单! 首先引入jquery <script type="text/javascript" src="js/jquery.js" > ...

最新文章

  1. ISME:南农韦中等消减土壤青枯菌生物障碍新策略
  2. 【分享】【养生】消灭小肚腩
  3. java月历组件_vue之手把手教你写日历组件
  4. 阿里巴巴自研代码管理平台技术解密
  5. PHP array_merge()函数与示例
  6. # 57. 插入区间
  7. 《scikit-learn》SVM(二)数据不均衡
  8. 呼叫中心基层管理的目标和原则方法细分
  9. 12-畅通工程续(多种方法求最短路径)
  10. Fragstats景观多样性
  11. 6、深思数盾加密狗使用小记
  12. 小程序注册及域名服务器需要准备的资料
  13. Python IDLE的下载,安装和使用
  14. ubuntu安装gem和fastlane
  15. SSM遇到的表单问题:The server cannot or will not process the request due to something that is perceived to b
  16. Java学习笔记001_概述及环境搭载
  17. signature=5a537e48de3abe15561f136edabc54dc,Visual Signatures in Video Visualization
  18. c# ascii转换方法
  19. Discuz!x1.5实现在线文档(doc、ppt、pdf)播放
  20. 使用document解析xml文件

热门文章

  1. 夏普利模型在衡量团队成员价值中的思考
  2. TeamTalk Base静态库说明
  3. 谷歌浏览器为什么不能自定义安装路径?
  4. 宝马「试水」神经形态芯片
  5. CurvySplines03(模板提升工作效率)
  6. ListView列表项View复用--ViewHolder模式
  7. 使用S32DS集成MCAL
  8. lmdb数据库的读取与转换(一) —— 基本操作
  9. mega linux教程,LINUX 安装MegaRAID Storage Manager (MSM)安装使用教程.doc
  10. 【Python】使用网络调试助手传输数据(UDP协议)