历史版本2 :根据参数批量导出多个文件 返回文档
编辑时间: 内容长度:图片数:目录数: 修改原因:

目录:

1. 概述编辑

1.1 预期效果

实际业务场景中,可能会碰到从当前表筛选控件导出多个Excel文件,如下图所示:

根据参数栏选择参数批量导出EXCEL.gif

1.2 实现思路

参数栏新增自定义按钮,给按钮添加点击事件,获取选中的复选框,批量导出当前表。

2. 示例编辑

2.1 设计主表

2.1.1 准备数据

新建普通报表,新增数据集 ds1, select * from库存 where 1=1 ${if(len(选仓库) == 0,"","and 仓库 in ('" + 选仓库 + "')")}

A.png

2.1.2 设计表格

cpt表格根据实际需求制作即可

B.png

2.1.3 参数面板设置

参数栏添加按钮,设置按钮名称为批量导出,如下图所示:

C.png

2.1.4 添加事件

给批量导出按钮添加点击事件

JavaScript 代码如下:

var url='根据参数栏选择参数批量导出.cpt&op=view';//添加模板url
var name=this.options.form.getWidgetByName("选仓库").getValue(); //获取参数面板复选框值
var arr=name.split("','");  
for (var i = 0; i < arr.length; i++) {  
var pars = '&format=excel&extype=sheet&__filename__='+arr[i]; //定义导出属性
window.open("${servletURL}?viewlet=" + encodeURI(url + pars) + "&选仓库="+ encodeURI(arr[i]),"_blank");
}


2.1.4 保存预览

注:不支持移动端。

3. 模板下载编辑

点击下载模板:

根据参数栏选择参数批量导出.cpt

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