|
@@ -153,7 +153,7 @@ JpcFlowTabSrv.prototype.createNew = function(){
|
|
|
|
|
|
me.auto_height_fields_idx = [];//那些被标记为判断自动行高的指标集合
|
|
|
me.auto_height_info = [];
|
|
|
- me.group_fields = [];
|
|
|
+ me.group_check_fields = [];
|
|
|
me.group_sum_fields = [];
|
|
|
me.group_sum_values = null;
|
|
|
me.group_node_info = null; //记录在哪个seg及到哪条记录后有group sum信息
|
|
@@ -172,8 +172,17 @@ JpcFlowTabSrv.prototype.createNew = function(){
|
|
|
if (rptTpl[FLOW_NODE_STR][JV.NODE_FLOW_SEG_SUM]) JpcFieldHelper.findAndPutDataFieldIdx(rptTpl, rptTpl[FLOW_NODE_STR][JV.NODE_FLOW_SEG_SUM][JV.PROP_SUM_FIELDS], me.seg_sum_tab_fields, me.seg_sum_fields_idx, me.isEx);
|
|
|
if (rptTpl[FLOW_NODE_STR][JV.NODE_FLOW_PAGE_SUM]) JpcFieldHelper.findAndPutDataFieldIdx(rptTpl, rptTpl[FLOW_NODE_STR][JV.NODE_FLOW_PAGE_SUM][JV.PROP_SUM_FIELDS], me.page_sum_tab_fields, me.page_sum_fields_idx, me.isEx);
|
|
|
if (rptTpl[FLOW_NODE_STR][JV.NODE_FLOW_GROUP]) {
|
|
|
- JpcFieldHelper.findAndPutDataFieldIdx(rptTpl, rptTpl[FLOW_NODE_STR][JV.NODE_FLOW_GROUP][JV.PROP_GROUP_FIELDS], me.group_fields, null, me.isEx);
|
|
|
- JpcFieldHelper.findAndPutDataFieldIdx(rptTpl, rptTpl[FLOW_NODE_STR][JV.NODE_FLOW_GROUP][JV.PROP_SUM_FIELDS], me.group_sum_fields, null, me.isEx);
|
|
|
+ JpcFieldHelper.findAndPutDataFieldIdx(rptTpl, rptTpl[FLOW_NODE_STR][JV.NODE_FLOW_GROUP][JV.PROP_GROUP_FIELDS], me.group_check_fields, null, me.isEx);
|
|
|
+ if (rptTpl[FLOW_NODE_STR][JV.NODE_FLOW_GROUP][JV.PROP_GROUP_LINES]) {
|
|
|
+ for (let grpLine of rptTpl[FLOW_NODE_STR][JV.NODE_FLOW_GROUP][JV.PROP_GROUP_LINES]) {
|
|
|
+ if (grpLine[JV.PROP_GROUP_SUM_KEYS] && grpLine[JV.PROP_GROUP_SUM_KEYS].length > 0) {
|
|
|
+ JpcFieldHelper.findAndPutDataFieldIdx(rptTpl, grpLine[JV.PROP_GROUP_SUM_KEYS], me.group_sum_fields, null, me.isEx);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ for (let grp_sum_f of me.group_sum_fields) {
|
|
|
+ grp_sum_f[JV.PROP_SUM_KEY] = `grp_sum_key_` + grp_sum_f[JV.PROP_FIELD_ID];
|
|
|
+ }
|
|
|
}
|
|
|
JpcFieldHelper.findAutoHeightFieldIdx(rptTpl, rptTpl[FLOW_NODE_STR][JV.NODE_FLOW_CONTENT][JV.PROP_FLOW_FIELDS], me.auto_height_fields_idx, me.isEx);
|
|
|
for (let si = 0; si < dataSeq.length; si++) {
|
|
@@ -187,7 +196,7 @@ JpcFlowTabSrv.prototype.createNew = function(){
|
|
|
let data_details = me.isEx?dataObj[JV.DATA_DETAIL_DATA_EX]:dataObj[JV.DATA_DETAIL_DATA],
|
|
|
data_fields = [];
|
|
|
for (let i = 0; i < me.seg_sum_fields_idx.length; i++) {
|
|
|
- if (typeof(me.seg_sum_fields_idx[i])=="object") {
|
|
|
+ if (typeof(me.seg_sum_fields_idx[i]) === "object") {
|
|
|
let exField = JE.F(me.seg_sum_fields_idx[i][JV.PROP_ID], $CURRENT_RPT);
|
|
|
if (exField) {
|
|
|
data_fields.push(exField["data_field"]);
|
|
@@ -227,36 +236,7 @@ JpcFlowTabSrv.prototype.createNew = function(){
|
|
|
}
|
|
|
}
|
|
|
};
|
|
|
- JpcFlowTabResult.getFlowFieldById = function (fieldKey, rptTpl) {
|
|
|
- let rst = null;
|
|
|
- if (rptTpl[JV.NODE_FLOW_INFO][JV.NODE_FLOW_GROUP] && rptTpl[JV.NODE_FLOW_INFO][JV.NODE_FLOW_GROUP][JV.PROP_GROUP_LINES] && rptTpl[JV.NODE_FLOW_INFO][JV.NODE_FLOW_GROUP][JV.PROP_GROUP_LINES].length > 0) {
|
|
|
- for (let grpLine of rptTpl[JV.NODE_FLOW_INFO][JV.NODE_FLOW_GROUP][JV.PROP_GROUP_LINES]) {
|
|
|
- if (grpLine[JV.PROP_GROUP_SUM_KEYS] && grpLine[JV.PROP_GROUP_SUM_KEYS].length > 0) {
|
|
|
- for (let sumKey of grpLine[JV.PROP_GROUP_SUM_KEYS]) {
|
|
|
- if (sumKey[JV.PROP_SUM_KEY] === fieldKey) {
|
|
|
- rst = sumKey;
|
|
|
- break;
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- if (rst) break;
|
|
|
- }
|
|
|
- }
|
|
|
- if (!(rst) && rptTpl[JV.NODE_FLOW_INFO_EX] && rptTpl[JV.NODE_FLOW_INFO_EX][JV.NODE_FLOW_GROUP] && rptTpl[JV.NODE_FLOW_INFO_EX][JV.NODE_FLOW_GROUP][JV.PROP_GROUP_LINES] && rptTpl[JV.NODE_FLOW_INFO_EX][JV.NODE_FLOW_GROUP][JV.PROP_GROUP_LINES].length > 0) {
|
|
|
- for (let grpLine of rptTpl[JV.NODE_FLOW_INFO_EX][JV.NODE_FLOW_GROUP][JV.PROP_GROUP_LINES]) {
|
|
|
- if (grpLine[JV.PROP_GROUP_SUM_KEYS] && grpLine[JV.PROP_GROUP_SUM_KEYS].length > 0) {
|
|
|
- for (let sumKey of grpLine[JV.PROP_GROUP_SUM_KEYS]) {
|
|
|
- if (sumKey[JV.PROP_SUM_KEY] === fieldKey) {
|
|
|
- rst = sumKey;
|
|
|
- break;
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- if (rst) break;
|
|
|
- }
|
|
|
- }
|
|
|
- return rst;
|
|
|
- };
|
|
|
+
|
|
|
JpcFlowTabResult.sumUpGrp = function (rptTpl, $CURRENT_RPT, dataObj, segIdx, preGrpIdx, nexGrpIdx) {
|
|
|
let me = this, segDataIdx = me.segments[segIdx];
|
|
|
for (let j = 0; j < me.group_sum_fields.length; j++) {
|
|
@@ -273,7 +253,7 @@ JpcFlowTabSrv.prototype.createNew = function(){
|
|
|
if (sum_field[JV.PROP_PRECISION] && sum_field[JV.PROP_PRECISION].type === `fixed`) {
|
|
|
precisionAmt = sum_field[JV.PROP_FIXED_PRECISION_AMT];
|
|
|
} else {
|
|
|
- let flowF = me.getFlowFieldById(me.group_sum_fields[j][JV.PROP_SUM_KEY], rptTpl);
|
|
|
+ let flowF = me.group_sum_fields[j]; //调整后,me.group_sum_fields[j]就是group lines下数组SumKey_S的元素值,无需再找
|
|
|
if (flowF && !strUtil.isEmptyString(flowF[JV.PROP_FORMAT])) {
|
|
|
let idx = flowF[JV.PROP_FORMAT].indexOf('.');
|
|
|
if (idx >= 0) {
|
|
@@ -292,7 +272,7 @@ JpcFlowTabSrv.prototype.createNew = function(){
|
|
|
};
|
|
|
JpcFlowTabResult.setupGroupingData = function (rptTpl, dataObj, $CURRENT_RPT) {
|
|
|
let me = this;
|
|
|
- if (me.group_fields.length > 0 && me.group_sum_fields.length > 0) {
|
|
|
+ if (me.group_check_fields.length > 0 && me.group_sum_fields.length > 0) {
|
|
|
me.group_sum_values = [];
|
|
|
me.group_node_info = [];
|
|
|
let CURRENT_FLOW_INFO = (me.isEx)?JV.NODE_FLOW_INFO_EX:JV.NODE_FLOW_INFO;
|
|
@@ -312,8 +292,8 @@ JpcFlowTabSrv.prototype.createNew = function(){
|
|
|
for (let di = 0; di < segDataIdx.length; di++) {
|
|
|
let hasDiff = false;
|
|
|
if (di > 1) {
|
|
|
- for (let i = 0; i < me.group_fields.length; i++) {
|
|
|
- let grp_field = JE.F(me.group_fields[i][JV.PROP_FIELD_ID], $CURRENT_RPT);
|
|
|
+ for (let i = 0; i < me.group_check_fields.length; i++) {
|
|
|
+ let grp_field = JE.F(me.group_check_fields[i][JV.PROP_FIELD_ID], $CURRENT_RPT);
|
|
|
if (grp_field) {
|
|
|
let data_field = null;
|
|
|
if (grp_field[JV.PROP_AD_HOC_DATA]) {
|
|
@@ -984,14 +964,11 @@ JpcFlowTabSrv.prototype.createNew = function(){
|
|
|
if (contentValuesIdx[rowIdx][3] === grpIdx) {
|
|
|
let grp_line = rptTpl[FLOW_NODE_STR][JV.NODE_FLOW_GROUP][JV.PROP_GROUP_LINES][grpIdx];
|
|
|
if (page === 1) {
|
|
|
- let sumFields = rptTpl[FLOW_NODE_STR][JV.NODE_FLOW_GROUP][JV.PROP_SUM_FIELDS];
|
|
|
- for (let sumF of sumFields) {
|
|
|
- if (grp_line[JV.PROP_GROUP_SUM_KEYS] && grp_line[JV.PROP_GROUP_SUM_KEYS].length > 0) {
|
|
|
- for (let grp_sum_field of grp_line[JV.PROP_GROUP_SUM_KEYS]) {
|
|
|
- if (grp_sum_field[JV.PROP_SUM_KEY] === sumF[JV.PROP_SUM_KEY]) {
|
|
|
- let map_field = JE.F(sumF[JV.PROP_FIELD_ID], $CURRENT_RPT);
|
|
|
- JpcFieldHelper.resetFormat(grp_sum_field, map_field, customizeCfg);
|
|
|
- }
|
|
|
+ if (grp_line[JV.PROP_GROUP_SUM_KEYS] && grp_line[JV.PROP_GROUP_SUM_KEYS].length > 0) {
|
|
|
+ for (let grp_sum_field of grp_line[JV.PROP_GROUP_SUM_KEYS]) {
|
|
|
+ if (grp_sum_field[JV.PROP_FIELD_ID]) {
|
|
|
+ let map_field = JE.F(grp_sum_field[JV.PROP_FIELD_ID], $CURRENT_RPT);
|
|
|
+ JpcFieldHelper.resetFormat(grp_sum_field, map_field, customizeCfg);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
@@ -1147,7 +1124,8 @@ JpcFlowTabSrv.prototype.createNew = function(){
|
|
|
let segIdx = JpcCommonHelper.getSegIdxByPageIdx(page, me.page_seg_map);
|
|
|
let curSegGrpSum = me.group_sum_values[segIdx];
|
|
|
for (let sumFieldNode of grp_line[JV.PROP_GROUP_SUM_KEYS]) {
|
|
|
- let value = curSegGrpSum[sumFieldNode[JV.PROP_SUM_KEY]][grpValueIdx[2]];
|
|
|
+ // let value = curSegGrpSum[sumFieldNode[JV.PROP_SUM_KEY]][grpValueIdx[2]];
|
|
|
+ let value = curSegGrpSum[`grp_sum_key_` + sumFieldNode[JV.PROP_FIELD_ID]][grpValueIdx[2]];
|
|
|
let sumFldRst = JpcTextHelper.outputDirectValue(sumFieldNode, value, band, unitFactor, rows, rowIdx, cols, colIdx, me.multiCols, multiColIdx);
|
|
|
rst.push(sumFldRst);
|
|
|
}
|