package com.ycsoft.report.query.cube.detail; import java.util.List; import java.util.Map; import com.ycsoft.commons.exception.ReportException; import com.ycsoft.report.bean.RepDetailData; import com.ycsoft.report.dto.RepKeyDto; import com.ycsoft.report.query.QueryResultOlap; import com.ycsoft.report.query.cube.CubeDataSet; import com.ycsoft.report.query.cube.CubeHeadCell; import com.ycsoft.report.query.cube.CubeExec; import com.ycsoft.report.query.cube.Dimension; import com.ycsoft.report.query.key.Impl.ConKeyValue; /** * cube明细报表计算维度键值转换接口 */ public interface CubeDetail { /** * 创建cube明细报表的dim键值替换语句 * @param cube * @param headdatacells * @return * @throws ReportException */ public List<ConKeyValue> createCubeDetailKeys(CubeExec cube, List<CubeHeadCell> headdatacells)throws ReportException; /** * 创建cube明细报表的测试用dim替换键值 * @param dimlist * @return */ public List<ConKeyValue> createTestKeys(CubeExec cube); /** * 生成 手工可编辑明细报表的查询控制sql,headdatacells 页面坐标,detaildimmap 可编辑明细报表的维度位置信息 * @return * @throws ReportException */ public String customQuerySql(List<CubeHeadCell> headdatacells,Map<Dimension,Integer> detaildimmap) throws ReportException; /** * 生成 手工可编辑明细报表一条记录的 维度坐标取值bean * @param headdatacells * @param detaildimmap * @return * @throws ReportException */ public RepDetailData customDimData(List<CubeHeadCell> headdatacells,Map<Dimension,Integer> detaildimmap) throws ReportException; }