【仅供内部供应商使用,不提供对外解答和培训】
【仅供内部供应商使用,不提供对外解答和培训】
定时任务默认可选的导出文件类型可行包含:excel、word和pdf,如果希望支持更多其他的类型,就可以使用这个接口来实现。
该接口包含Java和JavaScript部分,下面分别介绍两部分接口内容和使用说明。
package com.fr.schedule.plugin;
import com.fr.main.workbook.ResultWorkBook;
import com.fr.stable.fun.mark.Mutable;
import java.io.File;
import java.io.OutputStream;
/**
* Created by richie on 2016/10/31.
* 定时任务导出类型接口
* 可以通过实现该接口添加更多的导出方式
*/
public interface OutputFormatProvider extends Mutable {
String MARK_STRING = "OutputFormatProvider";
int CURRENT_LEVEL = 1;
/**
* 需要是2的指数倍,作为类型标记记录到数据库中
* @return 标记数字
*/
int markNumber();
/**
* 用于桥接Java和JavaScript的标记
* @return 标记符
*/
String markString();
/**
* 文件后缀名
* @return 返回后缀名
*/
String fileSuffix();
/**
* 把结果报表导出到输出流中
*/
void flush(OutputStream out, ResultWorkBook result) throws Exception;
/**
* 是否包含了当前的导出方式
* @param format 总的导出格式记录
* @return 如果当前方式自持则返回true,否则返回false
*/
boolean accept(int format);
/**
* 过滤符合条件的文件
* @param files 全部文件
* @return 符合条件的文件
*/
File filterFiles(File[] files);
}
注意:markNumber方法的返回值必须是大于4并且为2的N次幂。
实例实现类
public class CsvOutput extends AbstractOutputFormatProvider {
@Override
public int markNumber() {
return 8;
}
@Override
public String markString() {
return "isConvertToCsv";
}
@Override
public String fileSuffix() {
return ".csv";
}
@Override
public void flush(OutputStream out, ResultWorkBook result) throws Exception {
new CSVExporter().export(out, result);
out.flush();
out.close();
}
}
FS.Plugin.OutputformatProvider = {
version: 1.0,
items: []
};
实例实现
/**
* 定时任务导出类型接口的一个实现,作为参考示例
*/
FS.Plugin.OutputformatProvider.items.push({
text : function () {
return 'csv';
},
markString: function () {
return 'isConvertToCsv';
},
markNumber : function () {
return 8;
}
});
注意:Java接口实现类和JavaScript实现类中相同名字的方法,返回值也要相同。
<extra-platform>
<extra-schedule>
<OutputFormatProvider class="com.fr.plugin.xxx.YourClassName"/>
</extra-schedule>
</extra-platform>
如果你希望查看完整的源码,请看这里:http://cloud.finedevelop.com:2015/projects/PB/repos/plugins-free/browse/plugin-scheduleoutput?at=refs%2Fheads%2Fdev
1 Comment
李志伟
源码看不了