历史版本2 :JS实现批量导出多个模板 返回文档
编辑时间: 内容长度:图片数:目录数: 修改原因:

目录:

1. 概述编辑

1.1 预期效果

业务场景中,可能碰到从主表勾选数据,批量导出子表明细excel。如下图所示:

批量导出子报表明细.gif

1.2 实现思路

可通过添主页面添加复选按钮控件和自定义按钮批量导出来实现效果。


2. 示例编辑

2.1 设计主表

    1)新建cpt,添加数据集ds1

    1.png

2)拖入以下字段至对应单元格,需注意以下几点

            1.需在A1单元格添加按钮控件,控件名自定义

            2.在A3单元格添加复选按钮控件,此处注意复选按钮控件左父格需设置为B3

2.png

3)在A1按钮单元格添加如下点击事件

3.png

  JS代码如下:

var $span = $('.fr-checkbox-checkon'); //获取选中的复选框  
var $tds = $("td").has($span); //定义选中复选框的单元格   
var $trs = $("tr").has($tds);
for (var i = 1; i < $trs.length; i++) {
var name = $("td:eq(2)", $($trs[i])).find("div").html();  //获取选中的C3单元格的值
window.open("http://localhost:8075/webroot/decision/view/report?viewlet=%25E8%25AE%25A2%25E5%258D%2595%25E6%2598%258E%25E7%25BB%2586.cpt&op=write&id="+name+"&format=excel&extype=simple"+"&__filename__="+name);

//子报表设计完成后,打开将网址复制到&id之前

4) 主表页面预览如下

4.png


2.1 设计子表

1) 新建cpt,添加数据集ds1,添加过滤参数ID

z1.png

2)将数据集所需字段拖动至单元格保存,即可

    TIPS:保存后打开表需将网址复制到主表A1单元格的按钮点击事件里

z2.png


2.2 效果预览

保存报表,点击填报预览,效果如 1.1预期效果 中所示。


2.模板下载编辑

订单明细.cpt

批量导出明细表EXCEL.cpt


TIPS:如果发现点击后,只导出一个excel的话,确认代码无误的情况下,需要把浏览器的禁止弹窗设为允许