插件开发工具库,推荐依赖该工具库。
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

60 lines
1.7 KiB

package com.fanruan.api.report.executor;
import com.fr.main.TemplateWorkBook;
import com.fr.main.workbook.ResultWorkBook;
import com.fr.report.core.sheet.AbstractWorkBookExecutor;
import com.fr.report.report.ResultReport;
import com.fr.report.report.TemplateReport;
import com.fr.report.stable.fun.Actor;
import java.util.Map;
/**
* @author richie
* @version 10.0
* Created by richie on 2019/10/12
* 将模板按指定的预览方式计算成结果集的执行器
*/
public abstract class BaseWorkBookExecutor extends AbstractWorkBookExecutor {
public BaseWorkBookExecutor(TemplateWorkBook templateWorkBook, Map<String, Object> map) {
super(templateWorkBook, map);
}
/**
* 预览的方式,通常包括分页预览、分析预览、填报预览
*
* @return 预览方式
*/
@Override
public abstract Actor getExeType();
/**
* 初始化用于装在结果集的对象
*
* @param map 报表参数
* @return 结果集
*/
@Override
public abstract ResultWorkBook initResultBook(Map<String, Object> map);
@Override
protected final void _execute() {
executeOnce();
}
/**
* 多个sheet分别执行成结果报表
*/
public void executeOnce() {
TemplateReport report;
for (int i = 0, len = this.nameListMap.size(); i < len; i++) {
report = (TemplateReport) this.nameListMap.getByIndex(i);
Actor actor = getExeType();
ResultReport resultReport = report.execute(parameterMap, actor);
if (null != resultReport) {
this.listForResultReport.set(i, resultReport);
}
}
}
}