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.
47 lines
1.8 KiB
47 lines
1.8 KiB
5 years ago
|
package com.fanruan.api.report.analy;
|
||
|
|
||
|
import com.fanruan.api.report.analy.data.TreeNode;
|
||
|
import com.fr.main.workbook.ResultWorkBook;
|
||
|
import com.fr.report.report.Report;
|
||
|
import com.fr.report.report.ResultReport;
|
||
|
import com.fr.report.worksheet.AnalysisRWorkSheet;
|
||
|
import com.fr.script.Calculator;
|
||
|
import com.fr.web.core.TreeHTMLWriter;
|
||
|
import com.fr.web.core.reportcase.WebElementReportCase;
|
||
|
import com.fr.web.output.html.chwriter.ViewCellWriter;
|
||
|
import com.fr.web.request.EmptyRepository;
|
||
|
|
||
|
import java.util.Map;
|
||
|
/**
|
||
|
* @ClassName AnalyKit
|
||
|
* @Author zack
|
||
|
* @Date 2019/8/23
|
||
|
* @Version 10.0
|
||
|
* 数据分析相关工具类
|
||
|
*/
|
||
|
public class AnalyKit {
|
||
|
/**
|
||
|
* 折叠树模板,将结果报表行转成一个树形数据结构
|
||
|
*
|
||
|
* @param book 结果报表
|
||
|
* @param index sheet索引
|
||
|
* @return 树节点集合
|
||
|
*/
|
||
|
public static Map<Integer, TreeNode> generateResultBookTree(ResultWorkBook book, int index) {
|
||
|
ResultReport resultWS = book.getResultReport(index);
|
||
|
if (!(resultWS instanceof AnalysisRWorkSheet)) {
|
||
|
//只有分析预览支持折叠树
|
||
|
throw new UnsupportedOperationException();
|
||
|
}
|
||
|
AnalysisRWorkSheet analysisRWorkSheet = (AnalysisRWorkSheet) resultWS;
|
||
|
|
||
|
Calculator c = Calculator.createCalculator();
|
||
|
c.setAttribute(Report.KEY, analysisRWorkSheet);
|
||
|
TreeHTMLWriter htmlWriter = new TreeHTMLWriter();
|
||
|
ViewCellWriter cellHtmlWriter = new ViewCellWriter(new EmptyRepository(), 1, resultWS.getReportSettings(), true);
|
||
|
htmlWriter.writeReportToHtml(new WebElementReportCase(analysisRWorkSheet, new EmptyRepository()), 1, cellHtmlWriter, new EmptyRepository(), "");
|
||
|
cellHtmlWriter.dealWithAllTreeNodeRelation(c);
|
||
|
|
||
|
return AnalyKitHelper.generateNodeTree(analysisRWorkSheet);
|
||
|
}
|
||
|
}
|