forked from fanruan/finekit
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
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); |
|
} |
|
} |
|
} |
|
}
|
|
|