【仅供内部供应商使用,不提供对外解答和培训】
【仅供内部供应商使用,不提供对外解答和培训】
定时任务默认可选的导出文件类型可行包含: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
李志伟
源码看不了