报表预览按需计算sheet内容。
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.

44 lines
1.4 KiB

package com.fr.plugin.lazy.sheet.fun;
import com.fanruan.api.report.executor.ViewWorkBookExecutor;
import com.fr.main.TemplateWorkBook;
import com.fr.report.report.ResultReport;
import com.fr.report.report.TemplateReport;
import com.fr.report.stable.fun.Actor;
import java.util.Map;
/**
* Created by richie on 15/7/17.
*/
public class LazySheetWorkBookExecutor extends ViewWorkBookExecutor {
private int sheetIndex;
public LazySheetWorkBookExecutor(TemplateWorkBook workBook, Map<String, Object> parameterMap, int sheetIndex) {
super(workBook, parameterMap);
this.sheetIndex = sheetIndex;
}
@Override
public Actor getExeType() {
return new LazySheetActor();
}
protected void _execute() {
// 先按顺序来,其实这里就一个个塞进去,然后在这里面开始统一分步计算
TemplateReport report;
for (int i = 0, len = this.nameListMap.size(); i < len; i++) {
report = (TemplateReport) this.nameListMap.getByIndex(i);
Actor actor = getExeType();
if (i == sheetIndex) {
ResultReport resultReport = report.execute(parameterMap, actor);
if (null != resultReport) {
this.listForResultReport.set(i, resultReport);
}
} else {
this.listForResultReport.set(i, ResultReport.EMPTY);
}
}
}
}