|
@@ -85,6 +85,7 @@ JpcFlowTabSrv.prototype.createNew = function(){
|
|
|
me.seg_sum_fields_idx = [];
|
|
|
me.seg_sum_tab_fields = [];
|
|
|
me.page_sum_fields_idx = [];
|
|
|
+ me.page_sum_tab_fields = [];
|
|
|
|
|
|
me.group_fields = [];
|
|
|
me.group_sum_fields = [];
|
|
@@ -95,6 +96,7 @@ JpcFlowTabSrv.prototype.createNew = function(){
|
|
|
me.pageStatusLst = [];
|
|
|
me.groupSumValLst = [];
|
|
|
me.segSumValLst = [];
|
|
|
+ me.pageSumValLst = [];
|
|
|
me.multiCols = 1;
|
|
|
me.pagesAmt = 0;
|
|
|
};
|
|
@@ -102,7 +104,7 @@ JpcFlowTabSrv.prototype.createNew = function(){
|
|
|
let me = this;
|
|
|
let FLOW_NODE_STR = me.isEx?JV.NODE_FLOW_INFO_EX:JV.NODE_FLOW_INFO;
|
|
|
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);
|
|
|
- JpcFieldHelper.findAndPutDataFieldIdx(rptTpl, rptTpl[FLOW_NODE_STR][JV.NODE_FLOW_PAGE_SUM][JV.PROP_SUM_FIELDS], null, me.page_sum_fields_idx, me.isEx);
|
|
|
+ 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);
|
|
|
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);
|
|
|
for (let si = 0; si < dataSeq.length; si++) {
|
|
@@ -355,15 +357,18 @@ JpcFlowTabSrv.prototype.createNew = function(){
|
|
|
} else {
|
|
|
if (currentRecAmt + maxRowRec >= ttlSegRecAmt) {
|
|
|
pageStatus[JV.STATUS_SEGMENT_END] = true;
|
|
|
+ pageStatus[JV.STATUS_REPORT_END] = true;
|
|
|
private_resetBandArea();
|
|
|
let hasAdHocRow = !JpcFlowTabHelper.chkSegEnd(bands, rptTpl, ttlSegRecAmt, currentRecAmt, maxRowRec, me.isEx);
|
|
|
if (hasAdHocRow) {
|
|
|
//add page info(pre segment end)
|
|
|
pageStatus[JV.STATUS_SEGMENT_END] = false;
|
|
|
+ pageStatus[JV.STATUS_REPORT_END] = false;
|
|
|
private_addPage(segIdx, grpSeqInfo, false, false, -1);
|
|
|
}
|
|
|
//add page info
|
|
|
pageStatus[JV.STATUS_SEGMENT_END] = true;
|
|
|
+ pageStatus[JV.STATUS_REPORT_END] = true;
|
|
|
private_addPage(segIdx, grpSeqInfo, false, false, -1);
|
|
|
} else {
|
|
|
private_addPage(segIdx, grpSeqInfo, false, false, -1);
|
|
@@ -503,6 +508,7 @@ JpcFlowTabSrv.prototype.createNew = function(){
|
|
|
// 2.3 Sum Seg
|
|
|
tabRstLst.push(me.outputSegSum(rptTpl, dataObj, page, segIdx, bands, unitFactor, controls));
|
|
|
// 2.4 Sum Page
|
|
|
+ tabRstLst.push(me.outputPageSum(rptTpl, dataObj, page, segIdx, bands, unitFactor, controls));
|
|
|
// 2.5 Group
|
|
|
// 2.6 Discrete
|
|
|
tabRstLst.push(JpcDiscreteHelper.outputDiscreteInfo(rptTpl[FLOW_NODE_STR][JV.NODE_DISCRETE_INFO], bands, dataObj, unitFactor, me.pageStatusLst[page - 1], segIdx, 1, 0, $CURRENT_RPT));
|
|
@@ -536,6 +542,7 @@ JpcFlowTabSrv.prototype.createNew = function(){
|
|
|
// 2.3 Sum Seg
|
|
|
tabRstLst.push(me.outputSegSum(rptTpl, dataObj, actualPage, segIdx, bands, unitFactor, controls));
|
|
|
// 2.4 Sum Page
|
|
|
+ tabRstLst.push(me.outputPageSum(rptTpl, dataObj, actualPage, segIdx, bands, unitFactor, controls));
|
|
|
// 2.5 Group
|
|
|
// 2.6 Discrete
|
|
|
if (pi === 0) {
|
|
@@ -563,6 +570,15 @@ JpcFlowTabSrv.prototype.createNew = function(){
|
|
|
let data_details = me.isEx?dataObj[JV.DATA_DETAIL_DATA_EX]:dataObj[JV.DATA_DETAIL_DATA];
|
|
|
let data_details_ex = $CURRENT_RPT.isFollowMode?dataObj[JV.DATA_DETAIL_DATA_EX]:null;
|
|
|
let contentValuesIdx = me.dispValueIdxLst[page - 1];
|
|
|
+ let page_sum_data_fields = [];
|
|
|
+ for (let i = 0; i < me.page_sum_fields_idx.length; i++) {
|
|
|
+ let data_field = data_details[me.page_sum_fields_idx[i]];
|
|
|
+ page_sum_data_fields.push(data_field);
|
|
|
+ }
|
|
|
+ let rowGrandTotal = [];
|
|
|
+ for (let di = 0; di < page_sum_data_fields.length; di++) {
|
|
|
+ rowGrandTotal.push(0.0);
|
|
|
+ }
|
|
|
//normal content
|
|
|
for (let rowIdx = 0; rowIdx < contentValuesIdx.length; rowIdx++) {
|
|
|
for (let i = 0; i < tab_fields.length; i++) {
|
|
@@ -603,7 +619,12 @@ JpcFlowTabSrv.prototype.createNew = function(){
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
+ //page sum content
|
|
|
+ for (let di = 0; di < page_sum_data_fields.length; di++) {
|
|
|
+ rowGrandTotal[di] = rowGrandTotal[di] + 1.0 * JpcFieldHelper.getValue(page_sum_data_fields[di], contentValuesIdx[rowIdx][2]);
|
|
|
+ }
|
|
|
}
|
|
|
+ me.pageSumValLst.push(rowGrandTotal);
|
|
|
//grouping content
|
|
|
for (let rowIdx = 0; rowIdx < contentValuesIdx.length; rowIdx++) {
|
|
|
if (contentValuesIdx[rowIdx][1] === JV.DISPLAY_VAL_TYPE_GROUP) {
|
|
@@ -672,6 +693,35 @@ JpcFlowTabSrv.prototype.createNew = function(){
|
|
|
}
|
|
|
return rst;
|
|
|
};
|
|
|
+ JpcFlowTabResult.outputPageSum = function (rptTpl, dataObj, page, segIdx, bands, unitFactor, controls) {
|
|
|
+ let me = this, rst = [];
|
|
|
+ let FLOW_NODE_STR = me.isEx?JV.NODE_FLOW_INFO_EX:JV.NODE_FLOW_INFO;
|
|
|
+ let tab = rptTpl[FLOW_NODE_STR][JV.NODE_FLOW_PAGE_SUM];
|
|
|
+ let band = bands[tab[JV.PROP_BAND_NAME]];
|
|
|
+ if (band) {
|
|
|
+ let pageStatus = me.pageStatusLst[page - 1];
|
|
|
+ if (pageStatus[band[JV.BAND_PROP_DISPLAY_TYPE]]) {
|
|
|
+ let tab_fields = me.page_sum_tab_fields;
|
|
|
+ for (let i = 0; i < tab_fields.length; i++) {
|
|
|
+ let cellItem = JpcCommonOutputHelper.createCommonOutput(tab_fields[i], me.pageSumValLst[page - 1], controls);
|
|
|
+ cellItem[JV.PROP_AREA] = JpcAreaHelper.outputArea(tab_fields[i][JV.PROP_AREA], band, unitFactor, 1, 0, 1, 0, me.multiCols, 0, true, false);
|
|
|
+ rst.push(cellItem);
|
|
|
+ }
|
|
|
+ if (tab[JV.PROP_TEXT]) {
|
|
|
+ rst.push(JpcTextHelper.outputText(tab[JV.PROP_TEXT], band, unitFactor, 1, 0, 1, 0, me.multiCols, 0));
|
|
|
+ }
|
|
|
+ if (tab[JV.PROP_TEXTS]) {
|
|
|
+ for (let j = 0; j < tab[JV.PROP_TEXTS].length; j++) {
|
|
|
+ rst.push(JpcTextHelper.outputText(tab[JV.PROP_TEXTS][j], band, unitFactor, 1, 0, 1, 0, me.multiCols, 0));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (tab[JV.NODE_DISCRETE_INFO]) {
|
|
|
+ rst = rst.concat(JpcDiscreteHelper.outputDiscreteInfo(tab[JV.NODE_DISCRETE_INFO], bands, dataObj, unitFactor, me.pageStatusLst[page - 1], segIdx, me.multiCols, 0));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return rst;
|
|
|
+ };
|
|
|
JpcFlowTabResult.outputTabField = function (band, tab_field, data_field, valueIdx, serialIdx, rows, rowIdx, cols, colIdx, unitFactor, isRow, controls, multiColIdx) {
|
|
|
let me = this,
|
|
|
rst = JpcCommonOutputHelper.createCommonOutput(tab_field, JpcFieldHelper.getValue(data_field, valueIdx), controls);
|
|
@@ -695,10 +745,10 @@ JpcFlowTabSrv.prototype.createNew = function(){
|
|
|
}
|
|
|
}
|
|
|
if (grp_line[JV.PROP_DISCRETE_FIELDS]) {
|
|
|
- //
|
|
|
+ //暂时不支持
|
|
|
}
|
|
|
if (grp_line[JV.PROP_PARAMS]) {
|
|
|
- //
|
|
|
+ //暂时不支持
|
|
|
}
|
|
|
// console.log(rst);
|
|
|
return rst;
|