历史版本8 :JS实现预定义导出按钮 返回文档
编辑时间:
内容长度:图片数:目录数:
修改原因:
1. 概述编辑
1.1 问题描述
FineReport 内置的导出按钮不能自定义导出的文件名称,可以用 JS 来实现自定义导出文件名,具体的应用如:JS实现自定义导出文件名称
但是如果很多模板都要实现这个功能,每个模板都去写一遍 JS,太麻烦了。所以想实现预定义一个导出按钮,所有模板都能通用。
1.2 实现思路
1)遍历参数面板控件,获取对应的参数值。
2)通过内置参数 servletURL、reportName 分别获取对应模板的路径和名称。
2. 操作步骤编辑
1)设计器菜单栏打开服务器>控件管理。
2)新建一个控件,并设置一下属性。
①点击加号新建一个控件
②双击修改名称为导出
③选择控件类型为按钮控件
④控件名为export
⑤按钮类型为普通,按钮名字为导出
3)点击事件,添加参数与 JS 代码,然后点击右下角确定。
参数如下:
servletURL:公式servletURL
reportName:公式reportName
exportName:公式indexofarray(split(indexofarray(REVERSEARRAY(split(reportName,"/")),1),".c"),1)+"_"+format(now(),"yyyyMMddHHmm"),此处自定义文件名。
JavaScript 代码如下:
var url=servletURL+"?viewlet="+reportName;
$.each(this.options.form.name_widgets,function(i,item) {
if(item.options.type!== 'label'&&item.getName()!="PARA"&&item.getName()!="SEARCH"&&item.getName()!="EXPORT") {
url+="&"+item.getName()+"="+item.getValue();
}
});
url+="&format=excel&extype=simple&__filename__="+exportName;
window.location=(FR.cjkEncode(url));
注:此代码实现的默认导出文件名称为:模板名字_导出时间(具体到分钟)。
4)在参数面板工具栏,点击小三角符就可以看到自定义的导出按钮,按住可以拖动到参数面板使用。
5)效果预览
注:不支持移动端。