소스 검색

fix(report): 报表模块代码格式更正

lishihao 5 년 전
부모
커밋
da864eef50

+ 10 - 10
report/src/core/helper/jpc_helper_area.ts

@@ -4,14 +4,14 @@ import { IArea, IBandDetail } from '../../interface/basic';
 import JV from '../jpc_value_define';
 
 const JpcAreaHelper = {
-    outputArea: function(areaNode: IArea, band: IBandDetail, unitFactor: number, rowAmount: number, rowIdx: number, colAmount: number, colIdx: number, 
-                        multipleDispCol: number, multipleColIdx: number, syncHeight: boolean, syncWidth: boolean) {
+    outputArea: function (areaNode: IArea, band: IBandDetail, unitFactor: number, rowAmount: number, rowIdx: number, colAmount: number, colIdx: number,
+        multipleDispCol: number, multipleColIdx: number, syncHeight: boolean, syncWidth: boolean) {
         let rst = {
             Left: 0,
             Right: 0,
             Top: 0,
             Bottom: 0
-        }, 
+        },
             maxMultiColumns = 3;
         if (multipleDispCol > 0 && multipleDispCol <= maxMultiColumns) {
             //1. calculate left/right
@@ -19,13 +19,13 @@ const JpcAreaHelper = {
             areaWidth = areaWidth / colAmount;
             let innerLeft = 0.0, innerRight = areaWidth;
             //
-            if (typeof areaNode.H_CalculationType  === "string") {
+            if (typeof areaNode.H_CalculationType === "string") {
                 switch (areaNode.H_CalculationType) {
-                    case JV.CAL_TYPE[JV.CAL_TYPE_PERCENTAGE] :
+                    case JV.CAL_TYPE[JV.CAL_TYPE_PERCENTAGE]:
                         innerLeft = (1.0 * areaNode.Left * areaWidth / JV.HUNDRED_PERCENT);
                         innerRight = (1.0 * areaNode.Right * areaWidth / JV.HUNDRED_PERCENT);
                         break;
-                    case JV.CAL_TYPE[JV.CAL_TYPE_ABSTRACT] :
+                    case JV.CAL_TYPE[JV.CAL_TYPE_ABSTRACT]:
                         innerLeft = 1.0 * areaNode.Left * unitFactor;
                         innerRight = 1.0 * areaNode.Right * unitFactor;
                         break;
@@ -44,16 +44,16 @@ const JpcAreaHelper = {
                 }
             }
             //2. calculate top/bottom
-            let  areaHeight = 1.0 * (band.Bottom - band.Top);
+            let areaHeight = 1.0 * (band.Bottom - band.Top);
             areaHeight = areaHeight / rowAmount;
             let innerTop = 0.0, innerBottom = areaHeight;
-            if (typeof areaNode.V_CalculationType  === "string") {
+            if (typeof areaNode.V_CalculationType === "string") {
                 switch (areaNode.V_CalculationType) {
-                    case JV.CAL_TYPE[JV.CAL_TYPE_PERCENTAGE] :
+                    case JV.CAL_TYPE[JV.CAL_TYPE_PERCENTAGE]:
                         innerTop = (1.0 * areaNode.Top * areaHeight / JV.HUNDRED_PERCENT);
                         innerBottom = (1.0 * areaNode.Bottom * areaHeight / JV.HUNDRED_PERCENT);
                         break;
-                    case JV.CAL_TYPE[JV.CAL_TYPE_ABSTRACT] :
+                    case JV.CAL_TYPE[JV.CAL_TYPE_ABSTRACT]:
                         innerTop = 1.0 * areaNode.Top * unitFactor;
                         innerBottom = 1.0 * areaNode.Bottom * unitFactor;
                         break;

+ 5 - 5
report/src/core/helper/jpc_helper_band.ts

@@ -5,16 +5,16 @@ import JV from '../jpc_value_define';
 import JpcCommonHelper from './jpc_helper_common';
 
 let JpcBandHelper = {
-    getBandTypeValByString: function(bandType: string) {
+    getBandTypeValByString: function (bandType: string) {
         let rst = JV.PAGE_STATUS.indexOf(bandType);
         if (rst < 0) rst = JV.STATUS_NORMAL;
         return rst;
     },
-    setBandArea: function(bands: IBands, rptTpl: IRptTpl, pageStatus: boolean[], isOnlyNormalStatus: boolean, isOnlyExStatus: boolean) {
+    setBandArea: function (bands: IBands, rptTpl: IRptTpl, pageStatus: boolean[], isOnlyNormalStatus: boolean, isOnlyExStatus: boolean) {
         let me = this;
         if (rptTpl.布局框_集合) {
-            isOnlyNormalStatus = isOnlyNormalStatus||false;
-            isOnlyExStatus = isOnlyExStatus||false;
+            isOnlyNormalStatus = isOnlyNormalStatus || false;
+            isOnlyExStatus = isOnlyExStatus || false;
 
             let unitFactor = JpcCommonHelper.getUnitFactor(rptTpl);
             let orgArea = JpcCommonHelper.getReportArea(rptTpl, unitFactor);
@@ -23,7 +23,7 @@ let JpcBandHelper = {
             }
         }
     },
-    setBandPos: function(bands: IBands, bandNode: IBandDetail, orgArea: any, unitFactor: number, pageStatus: boolean[], isOnlyNormalStatus: boolean, isOnlyExStatus: boolean) {
+    setBandPos: function (bands: IBands, bandNode: IBandDetail, orgArea: any, unitFactor: number, pageStatus: boolean[], isOnlyNormalStatus: boolean, isOnlyExStatus: boolean) {
         let me = this, band = bands[bandNode.Name];
         //0. for multi flow purpose
         if (isOnlyNormalStatus) {

+ 9 - 9
report/src/core/helper/jpc_helper_common.ts

@@ -1,12 +1,12 @@
 'use strict';
 
-import { IArea, IControlCollection, IControlSubCollection, IRptTpl,IStyles } from '../../interface/basic';
+import { IArea, IControlCollection, IControlSubCollection, IRptTpl, IStyles } from '../../interface/basic';
 import JV from '../jpc_value_define';
 
 const RESOLUTION = [96, 96];
 
 const JpcCommonHelper = {
-    getResultByID(KeyID: string, collectionList: IStyles[][]|IControlCollection[]) {
+    getResultByID(KeyID: string, collectionList: IStyles[][] | IControlCollection[]) {
         let rst = null;
         if (KeyID) {
             for (let i = 0; i < collectionList.length; i++) {
@@ -32,7 +32,7 @@ const JpcCommonHelper = {
         list.push(dftFonts);
         return me.getResultByID(fontName, list);
     },
-     //by lish ,多余参数,
+    //by lish ,多余参数,
     // getStyle(styleName: string, dftStyles: IStyles[], rptTpl?: IRptTpl) {
     getStyle(styleName: string, dftStyles: IStyles[]) {
         let me = this, list = [];
@@ -40,7 +40,7 @@ const JpcCommonHelper = {
         list.push(dftStyles);
         return me.getResultByID(styleName, list);
     },
-    getControl(controlName: string, dftControls:IControlCollection, rptTpl?: IRptTpl) {
+    getControl(controlName: string, dftControls: IControlCollection, rptTpl?: IRptTpl) {
         let me = this, list = [] as IControlCollection[];
         if (rptTpl) list.push(rptTpl.control_collection);
         list.push(dftControls);
@@ -59,14 +59,14 @@ const JpcCommonHelper = {
     getBoolean(bStr: any) {  //暂定
         let rst = false;
         if (bStr !== null && bStr !== undefined) {
-            let valType = typeof(bStr);
+            let valType = typeof (bStr);
             if (valType === 'boolean') {
                 rst = bStr;
             } else if (valType === 'string') {
                 let tS = bStr.toUpperCase();
-                rst = (tS === 'T' || tS === 'TRUE' || tS === 'YES' || tS === 'Y')  as boolean;;
+                rst = (tS === 'T' || tS === 'TRUE' || tS === 'YES' || tS === 'Y') as boolean;;
             } else if (valType === 'number') {
-                rst = (bStr === 1)   ;
+                rst = (bStr === 1);
             }
         }
         return rst;
@@ -139,7 +139,7 @@ const JpcCommonHelper = {
             let areaWidth = area.Right - area.Left - JV.OUTPUT_OFFSET[JV.OFFSET_IDX_RIGHT] - JV.OUTPUT_OFFSET[JV.OFFSET_IDX_LEFT] - 1;
             let txtWidth = 0, currentW = 0;
             for (let sIdx = 0; sIdx < strVal.length; sIdx++) {
-                currentW = (strVal.charCodeAt(sIdx) > 127)?chnW:otherW;
+                currentW = (strVal.charCodeAt(sIdx) > 127) ? chnW : otherW;
                 txtWidth += currentW;
                 if (txtWidth > areaWidth) {
                     rst++;
@@ -160,7 +160,7 @@ const JpcCommonHelper = {
             let preSIdx = 0, txtWidth = 0;
             let currentW = 0;
             for (let sIdx = 0; sIdx < strVal.length; sIdx++) {
-                currentW = (strVal.charCodeAt(sIdx) > 127)?chnW:otherW;
+                currentW = (strVal.charCodeAt(sIdx) > 127) ? chnW : otherW;
                 txtWidth += currentW;
                 if (txtWidth > areaWidth) {
                     if (preSIdx < sIdx) {

+ 2 - 2
report/src/core/helper/jpc_helper_common_output.ts

@@ -9,7 +9,7 @@ let JpcCommonOutputHelper = {
     createCommonOutputWithoutDecorate: function (node: Fields, value: number | string, forceCombine: boolean) {
         let me = this,
             //1. font/style/control
-            rst  = {
+            rst = {
                 font: node.font,
                 control: node.control as string,
                 style: node.style,
@@ -38,7 +38,7 @@ let JpcCommonOutputHelper = {
                 control: node.control as string,
                 style: node.style,
                 Value: value
-             }  as INode;
+            } as INode;
         //2. value
         JpcFieldHelper.decorateValue(rst, controls);
         me.formatCell(node.Format, rst);

+ 21 - 21
report/src/core/helper/jpc_helper_cross_tab.ts

@@ -4,7 +4,7 @@ import JpcCommonHelper from './jpc_helper_common';
 import { Fields, IBands, ICurrent_RPT, IRptTpl } from '../../interface/basic';
 
 let JpcCrossTabHelper = {
-    getColIDX: function(cl: number[][], val: number) {
+    getColIDX: function (cl: number[][], val: number) {
         let rst = -1;
         for (let i = 0; i < cl.length; i++) {
             let ca = cl[i];
@@ -20,14 +20,14 @@ let JpcCrossTabHelper = {
         }
         return rst;
     },
-    pushToSeg: function(segArr: number[][], dataSeq: number[][], segIdx: number, sIdx: number, eIdx: number) {
+    pushToSeg: function (segArr: number[][], dataSeq: number[][], segIdx: number, sIdx: number, eIdx: number) {
         let arrIdx = [];
         for (let k = sIdx; k < eIdx; k++) {
             arrIdx.push(dataSeq[segIdx][k]);
         }
         segArr.push(arrIdx);
     },
-    sortFieldValue: function(sIDX: number, eIDX: number, sortOrder: string, dataField: number[], dataValSeq: number[]) {
+    sortFieldValue: function (sIDX: number, eIDX: number, sortOrder: string, dataField: number[], dataValSeq: number[]) {
         let tmpSeq = [];
         if ((sortOrder) && (sortOrder !== JV.TAB_FIELD_PROP_SORT_VAL_NOSORT)) {
             if (sIDX >= 0 && eIDX >= sIDX && dataValSeq.length > eIDX) {
@@ -38,10 +38,10 @@ let JpcCrossTabHelper = {
                 for (let i = sIDX; i <= eIDX; i++) {
                     tmpSeq.push(dataValSeq[i]);
                 }
-                tmpSeq.sort(function(idx1, idx2) {
+                tmpSeq.sort(function (idx1, idx2) {
                     let rst = 0;
                     // if (isNaN(parseFloat(dataField[idx1])) || isNaN(parseFloat(dataField[idx1]))) {
-                    if (typeof (dataField[idx1]) === 'string' || typeof (dataField[idx1]) === 'string' ) {
+                    if (typeof (dataField[idx1]) === 'string' || typeof (dataField[idx1]) === 'string') {
                         if (dataField[idx1] > dataField[idx2]) {
                             rst = reversed;
                         } else if (dataField[idx1] < dataField[idx2]) {
@@ -65,7 +65,7 @@ let JpcCrossTabHelper = {
         }
         return tmpSeq;
     },
-    checkIfEqual: function(dataFields: number[][], seq1: number, seq2: number) {
+    checkIfEqual: function (dataFields: number[][], seq1: number, seq2: number) {
         let rst = true;
         for (let i = 0; i < dataFields.length; i++) {
             if ((dataFields[i][seq1] !== dataFields[i][seq2])) {
@@ -76,7 +76,7 @@ let JpcCrossTabHelper = {
         return rst;
     },
     //暂定
-    sortTabFields: function(tabFields: Fields[], fieldSeqs: any[], data_details: any[], dataSeq: number[][], $CURRENT_RPT: ICurrent_RPT) {
+    sortTabFields: function (tabFields: Fields[], fieldSeqs: any[], data_details: any[], dataSeq: number[][], $CURRENT_RPT: ICurrent_RPT) {
         let me = this;
         let sIDX = 0, eIDX = -1, isFirstSort = true;
         for (let i = 0; i < tabFields.length; i++) {
@@ -89,7 +89,7 @@ let JpcCrossTabHelper = {
                         sIDX = 0;
                         eIDX = dataSeq[j].length - 1;
                         //sort the field value here
-                        if (typeof(fieldSeqs[i]) === "object") {
+                        if (typeof (fieldSeqs[i]) === "object") {
                             let exFirstField = JE.F(fieldSeqs[i].ID, $CURRENT_RPT);
                             if (exFirstField) {
                                 me.sortFieldValue(sIDX, eIDX, tabField.Sort, exFirstField.data_field, dataSeq[j]);
@@ -97,7 +97,7 @@ let JpcCrossTabHelper = {
                                 //不排序(健壮性)
                             }
                         } else {
-                            me.sortFieldValue(sIDX, eIDX, tabField.Sort,data_details[fieldSeqs[i]], dataSeq[j]);
+                            me.sortFieldValue(sIDX, eIDX, tabField.Sort, data_details[fieldSeqs[i]], dataSeq[j]);
                         }
                         // me.sortFieldValue(sIDX, eIDX, tabField.Sort,data_details[fieldSeqs[i]], dataSeq[j]);
                     }
@@ -106,7 +106,7 @@ let JpcCrossTabHelper = {
                     for (let j = 0; j < dataSeq.length; j++) {
                         let chkFields = [];
                         for (let k = 0; k < i; k++) {
-                            if (typeof(fieldSeqs[k]) === "object") {
+                            if (typeof (fieldSeqs[k]) === "object") {
                                 let exField = JE.F(fieldSeqs[k].ID, $CURRENT_RPT);
                                 if (exField) {
                                     chkFields.push(exField.data_field);
@@ -127,7 +127,7 @@ let JpcCrossTabHelper = {
                             };
                             if (eIDX >= sIDX) {
                                 if (eIDX != sIDX) {
-                                    if (typeof(fieldSeqs[i]) === "object") {
+                                    if (typeof (fieldSeqs[i]) === "object") {
                                         let exOtherField = JE.F(fieldSeqs[i].ID, $CURRENT_RPT);
                                         if (exOtherField) {
                                             me.sortFieldValue(sIDX, eIDX, tabField.Sort, exOtherField.data_field, dataSeq[j]);
@@ -135,7 +135,7 @@ let JpcCrossTabHelper = {
                                             //不排序(健壮性)
                                         }
                                     } else {
-                                        me.sortFieldValue(sIDX, eIDX, tabField.Sort,data_details[fieldSeqs[i]], dataSeq[j]);
+                                        me.sortFieldValue(sIDX, eIDX, tabField.Sort, data_details[fieldSeqs[i]], dataSeq[j]);
                                     }
                                     // me.sortFieldValue(sIDX, eIDX, tabField.Sort,data_details[fieldSeqs[i]], dataSeq[j]);
                                 }
@@ -148,39 +148,39 @@ let JpcCrossTabHelper = {
             }
         }
     },
-    getMaxRowsPerPage: function(bands: IBands, rptTpl: IRptTpl) {
+    getMaxRowsPerPage: function (bands: IBands, rptTpl: IRptTpl) {
         let rst = 1;
         let band = bands[rptTpl.交叉表_信息.交叉行.BandName];
         if (band) {
-            rst =  getMaxTabCntPerPage(rptTpl, '交叉行','CommonHeight', band.Bottom - band.Top);
+            rst = getMaxTabCntPerPage(rptTpl, '交叉行', 'CommonHeight', band.Bottom - band.Top);
         }
         return rst;
     },
-    getMaxColsPerPage: function(bands: IBands, rptTpl: IRptTpl) {
+    getMaxColsPerPage: function (bands: IBands, rptTpl: IRptTpl) {
         let rst = 1;
         let band = bands[rptTpl.交叉表_信息.交叉列.BandName];
         if (band) {
-            rst =  getMaxTabCntPerPage(rptTpl, '交叉列', 'CommonWidth', band.Right - band.Left);
+            rst = getMaxTabCntPerPage(rptTpl, '交叉列', 'CommonWidth', band.Right - band.Left);
         }
         return rst;
     },
-    getActualRowsHeight: function(bands: IBands, rptTpl: IRptTpl, segments: number[][], page: number) {
+    getActualRowsHeight: function (bands: IBands, rptTpl: IRptTpl, segments: number[][], page: number) {
         let rst = 1;
         let band = bands[rptTpl.交叉表_信息.交叉行.BandName];
         if (band) {
-            rst =  getActualContentAreaMeasurement(rptTpl, '交叉行', 'CommonHeight', band.Bottom - band.Top, segments, page);
+            rst = getActualContentAreaMeasurement(rptTpl, '交叉行', 'CommonHeight', band.Bottom - band.Top, segments, page);
         }
         return rst;
     },
-    getActualColsWidth: function(bands: IBands, rptTpl: IRptTpl, segments: number[][], page: number) {
+    getActualColsWidth: function (bands: IBands, rptTpl: IRptTpl, segments: number[][], page: number) {
         let rst = 1;
         let band = bands[rptTpl.交叉表_信息.交叉列.BandName];
         if (band) {
-            rst =  getActualContentAreaMeasurement(rptTpl, JV.NODE_CROSS_COL, JV.PROP_CMN_WIDTH, band.Right - band.Left, segments, page);
+            rst = getActualContentAreaMeasurement(rptTpl, JV.NODE_CROSS_COL, JV.PROP_CMN_WIDTH, band.Right - band.Left, segments, page);
         }
         return rst;
     },
-    chkTabEnd: function(tabType: string, rptTpl: IRptTpl, bands: IBands, sortedSequence: number[][], segIdx: number, preRec: number, nextRec: number) {
+    chkTabEnd: function (tabType: string, rptTpl: IRptTpl, bands: IBands, sortedSequence: number[][], segIdx: number, preRec: number, nextRec: number) {
         let me = this, rst = true;
         let remainAmt = preRec + nextRec - sortedSequence[segIdx].length;
         rst = me.hasEnoughSpace(tabType, rptTpl, bands, remainAmt);

+ 2 - 2
report/src/core/helper/jpc_helper_discrete.ts

@@ -7,7 +7,7 @@ import JpcFieldHelper from './jpc_helper_field';
 import { IBandDetail, IBands, ICell, ICurrent_RPT, ICustomizeCfg, IDataObj, IDiscrete } from '../../interface/basic';
 
 const JpcDiscreteHelper = {
-    outputDiscreteInfo: function (discreteArray: IDiscrete[], bands: IBands, dataObj: IDataObj|null, unitFactor: number, pageStatus: boolean[], segIdx: number, multiCols: number, multiColIdx: number, $CURRENT_RPT: ICurrent_RPT, customizeCfg: ICustomizeCfg|null) {
+    outputDiscreteInfo: function (discreteArray: IDiscrete[], bands: IBands, dataObj: IDataObj | null, unitFactor: number, pageStatus: boolean[], segIdx: number, multiCols: number, multiColIdx: number, $CURRENT_RPT: ICurrent_RPT, customizeCfg: ICustomizeCfg | null) {
         let rst = [];
         if (discreteArray && dataObj) {
             for (let i = 0; i < discreteArray.length; i++) {
@@ -60,7 +60,7 @@ const JpcDiscreteHelper = {
                                 }
                             } else if (df.ParamID) {
                                 let param = JE.P(df.ParamID, $CURRENT_RPT);
-                               if(param && param.Default_Value) value = param.Default_Value;
+                                if (param && param.Default_Value) value = param.Default_Value;
                             }
                             let item = JpcCommonOutputHelper.createCommonOutputWithoutDecorate(df, value, true);
                             //position

+ 13 - 13
report/src/core/helper/jpc_helper_field.ts

@@ -5,19 +5,19 @@ import strUtil from '../../public/stringUtil';
 import { Fields, ICell, IControlCollection, ICustomizeCfg, IGroupField, INode, IOrgGroupField, IRptTpl } from '../../interface/basic';
 
 let JpcFieldHelper = {
-    getValue: function(dataField: string[]|null, valueIdx: number) {
-        let rst ='';
+    getValue: function (dataField: string[] | null, valueIdx: number) {
+        let rst = '';
         if (dataField && (dataField.length > valueIdx) && (valueIdx >= 0)) {
             rst = dataField[valueIdx];
         }
         return rst;
     },
-    setValue: function(dataField: string[], valueIdx: number, newValue: string) {
+    setValue: function (dataField: string[], valueIdx: number, newValue: string) {
         if (dataField && (dataField.length > valueIdx) && (valueIdx >= 0)) {
             dataField[valueIdx] = newValue;
         }
     },
-    resetSumFormat: function(ref_tab_fields: Fields[], sum_tab_field: Fields) {
+    resetSumFormat: function (ref_tab_fields: Fields[], sum_tab_field: Fields) {
         let rst = false;
         if (ref_tab_fields && ref_tab_fields.length > 0) {
             for (let tab_field of ref_tab_fields) {
@@ -32,10 +32,10 @@ let JpcFieldHelper = {
         }
         return rst;
     },
-    resetFormat: function (tab_field: Fields, map_field: IGroupField|null, customizeCfg: ICustomizeCfg|null) {
+    resetFormat: function (tab_field: Fields, map_field: IGroupField | null, customizeCfg: ICustomizeCfg | null) {
         let rst = false;
         if (map_field && map_field.Precision && map_field.Precision.type === "fixed") {
-            let formatStrs = ["#"], ffStr = (customizeCfg && customizeCfg.fillZero)?"0":"#";
+            let formatStrs = ["#"], ffStr = (customizeCfg && customizeCfg.fillZero) ? "0" : "#";
             for (let idx = 0; idx < parseInt(map_field[JV.PROP_FIXED_PRECISION_AMT]); idx++) {
                 if (idx === 0) {
                     formatStrs.push(".");
@@ -56,13 +56,13 @@ let JpcFieldHelper = {
         }
         return rst;
     },
-    resetFlexibleFormat: function (tab_field: Fields, ref_field_data: IGroupField|null, flexiblePrecisionRefObj: Record<string,number>, valueIdx: number, customizeCfg: ICustomizeCfg|null) {
+    resetFlexibleFormat: function (tab_field: Fields, ref_field_data: IGroupField | null, flexiblePrecisionRefObj: Record<string, number>, valueIdx: number, customizeCfg: ICustomizeCfg | null) {
         let precisionAmt = 2;
         if (ref_field_data && flexiblePrecisionRefObj && valueIdx >= 0) {
             precisionAmt = flexiblePrecisionRefObj["refUnit_" + ref_field_data[valueIdx]];
             if (precisionAmt === null || precisionAmt === undefined) precisionAmt = flexiblePrecisionRefObj["refUnit_其他未列单位"];
         }
-        let formatStrs = ["#."], ffStr = (customizeCfg && customizeCfg.fillZero)?"0":"#";
+        let formatStrs = ["#."], ffStr = (customizeCfg && customizeCfg.fillZero) ? "0" : "#";
         for (let idx = 0; idx < precisionAmt; idx++) {
             formatStrs.push(ffStr);
         }
@@ -72,7 +72,7 @@ let JpcFieldHelper = {
             tab_field.Format = formatStrs.join("");
         }
     },
-    decorateValue: function (cell: INode, controls: IControlCollection|null) {
+    decorateValue: function (cell: INode, controls: IControlCollection | null) {
         if (controls) {
             const showZero = controls[cell.control].ShowZero;
             if (showZero && showZero === 'F') {
@@ -83,10 +83,10 @@ let JpcFieldHelper = {
             }
         }
     },
-    findAndPutDataFieldIdx: function (rptTpl: IRptTpl, tab_fields: {FieldID:number}[]|null, rstFields: {FieldID:number}[]|null, rstFieldsIdx: any[]|null, isEx: boolean) {
+    findAndPutDataFieldIdx: function (rptTpl: IRptTpl, tab_fields: { FieldID: number }[] | null, rstFields: { FieldID: number }[] | null, rstFieldsIdx: any[] | null, isEx: boolean) {
         //通过FieldID找到相关映射指标的位置IDX并记录下来,方便后续引用
         if (tab_fields) {
-            let DTL_STR = isEx?'从数据指标_拓展集合':'从数据指标_集合';
+            let DTL_STR = isEx ? '从数据指标_拓展集合' : '从数据指标_集合';
             let detail_fields = rptTpl.指标_数据_映射[DTL_STR];
             for (let i = 0; i < tab_fields.length; i++) {
                 let isFounded = false;
@@ -117,9 +117,9 @@ let JpcFieldHelper = {
             }
         }
     },
-    findAutoHeightFieldIdx: function(rptTpl: IRptTpl, tab_fields: Fields[], rstFieldsIdx: any[], isEx: boolean) {
+    findAutoHeightFieldIdx: function (rptTpl: IRptTpl, tab_fields: Fields[], rstFieldsIdx: any[], isEx: boolean) {
         if (tab_fields) {
-            let DTL_STR = isEx?JV.NODE_DETAIL_FIELDS_EX:JV.NODE_DETAIL_FIELDS;
+            let DTL_STR = isEx ? JV.NODE_DETAIL_FIELDS_EX : JV.NODE_DETAIL_FIELDS;
             let detail_fields = rptTpl.指标_数据_映射[DTL_STR];
             for (let i = 0; i < tab_fields.length; i++) {
                 if (tab_fields[i].isAutoHeight) {

+ 9 - 9
report/src/core/helper/jpc_helper_flow_tab.ts

@@ -5,10 +5,10 @@ import JV from '../jpc_value_define';
 import JpcCommonHelper from './jpc_helper_common';
 
 let JpcFlowTabHelper = {
-    getMaxRowsPerPage: function(bands: IBands, rptTpl: IRptTpl, isEx: boolean) {
+    getMaxRowsPerPage: function (bands: IBands, rptTpl: IRptTpl, isEx: boolean) {
         let rst = 1;
-        let tab ;
-        (!isEx)?tab = rptTpl.流水式表_信息.流水式表_数据:tab = rptTpl.流水式表_拓展信息.流水式表_数据;
+        let tab;
+        (!isEx) ? tab = rptTpl.流水式表_信息.流水式表_数据 : tab = rptTpl.流水式表_拓展信息.流水式表_数据;
         let band = bands[tab.BandName];
         if (band) {
             let maxFieldMeasure = 1.0;
@@ -22,10 +22,10 @@ let JpcFlowTabHelper = {
         }
         return rst;
     },
-    getActualContentAreaHeight: function(bands: IBands, rptTpl: IRptTpl, segments: number[][], rowAmt: number, page: number, isEx: boolean) {
+    getActualContentAreaHeight: function (bands: IBands, rptTpl: IRptTpl, segments: number[][], rowAmt: number, page: number, isEx: boolean) {
         let rst = 1;
-        let tab ;
-        (!isEx)?tab = rptTpl.流水式表_信息.流水式表_数据:tab = rptTpl.流水式表_拓展信息.流水式表_数据;
+        let tab;
+        (!isEx) ? tab = rptTpl.流水式表_信息.流水式表_数据 : tab = rptTpl.流水式表_拓展信息.流水式表_数据;
         let band = bands[tab.BandName];
         if (band) {
             let maxFieldMeasure = 1.0;
@@ -51,9 +51,9 @@ let JpcFlowTabHelper = {
         if (remainAmt < 0) return false;
         let rst = true, measurement = 1.0, douDiffForCompare = 0.00001;
         let unitFactor = JpcCommonHelper.getUnitFactor(rptTpl);
-        let FLOW_INFO_STR = (!isEx)?'流水式表_信息':'流水式表_拓展信息';
-        let tab ;
-        (!isEx)?tab = rptTpl.流水式表_信息.流水式表_数据:tab = rptTpl.流水式表_拓展信息.流水式表_数据;
+        let FLOW_INFO_STR = (!isEx) ? '流水式表_信息' : '流水式表_拓展信息';
+        let tab;
+        (!isEx) ? tab = rptTpl.流水式表_信息.流水式表_数据 : tab = rptTpl.流水式表_拓展信息.流水式表_数据;
         let band = bands[tab.BandName];
         if (band !== null && band !== undefined) {
             measurement = 1.0 * tab.CommonHeight * unitFactor;

+ 1 - 1
report/src/core/helper/jpc_helper_font_width.ts

@@ -499,7 +499,7 @@ const fontWidthMap = {
             '_64': 35.59000015258789
         }
     },
-    getFontWidth: function(fontName: string, fontHeight: number, typeStr: string) {
+    getFontWidth: function (fontName: string, fontHeight: number, typeStr: string) {
         let rst = 12;
         if ((fontWidthMap as any)[fontName]) {
             rst = (fontWidthMap as any)[fontName][typeStr]['_' + fontHeight];

+ 2 - 2
report/src/core/jpc_cross_tab.ts

@@ -28,10 +28,10 @@ import { IDataObj_props } from '../interface/enum'
 class JpcCrossTabClass {
     dispValueIdxLst_Row: number[][];
     dispValueIdxLst_Col: any[];
-    dispValueIdxLst_Content:  number[][][];
+    dispValueIdxLst_Content: number[][][];
     dispSerialIdxLst_Row: number[][];
     col_sum_fields_idx: any[];
-    col_sum_fields_value_total:any[][];
+    col_sum_fields_value_total: any[][];
     dispSumValueLst_Col: any[];
     page_seg_map: any;
     row_fields_idx: any[];

+ 8 - 8
report/src/core/jpc_data.ts

@@ -12,14 +12,14 @@ const JpcData = {
             exDataSeq: [],
             analyzeData(rptTpl: IRptTpl, dataObj: IDataObj) {
                 let me = this;
-                let _analyse = function(MASTER_FIELD_STR: string, DETAIL_FIELD_STR: string, MASTER_DATA_STR: string, DETAIL_DATA_STR: string, dataSeqArr: any) {
+                let _analyse = function (MASTER_FIELD_STR: string, DETAIL_FIELD_STR: string, MASTER_DATA_STR: string, DETAIL_DATA_STR: string, dataSeqArr: any) {
                     //1. get ID fields
                     let masterIDs = [];
                     if (rptTpl.指标_数据_映射[MASTER_FIELD_STR]) {
                         for (let i = 0; i < rptTpl.指标_数据_映射[MASTER_FIELD_STR].length; i++) {
                             let mstFieldObj = rptTpl.指标_数据_映射[MASTER_FIELD_STR][i];
                             if (jpc_common_helper.getBoolean(mstFieldObj.isID)) {
-                                masterIDs.push({"idx": i, "seq": mstFieldObj.IDSeq});
+                                masterIDs.push({ "idx": i, "seq": mstFieldObj.IDSeq });
                             }
                         }
                     }
@@ -28,19 +28,19 @@ const JpcData = {
                         for (let i = 0; i < rptTpl.指标_数据_映射[DETAIL_FIELD_STR].length; i++) {
                             let dtlFieldObj = rptTpl.指标_数据_映射[DETAIL_FIELD_STR][i];
                             if (jpc_common_helper.getBoolean(dtlFieldObj.isID)) {
-                                detailIDs.push({"idx": i, "seq": dtlFieldObj.IDSeq});
+                                detailIDs.push({ "idx": i, "seq": dtlFieldObj.IDSeq });
                             }
                         }
                     }
                     //2. sort the ID fields
                     if (masterIDs.length > 1) {
-                        masterIDs.sort(function(a, b) {
-                            return 1*a["seq"] - 1*b["seq"];
+                        masterIDs.sort(function (a, b) {
+                            return 1 * a["seq"] - 1 * b["seq"];
                         })
                     }
                     if (detailIDs.length > 1) {
-                        detailIDs.sort(function(a, b) {
-                            return 1*a["seq"] - 1*b["seq"];
+                        detailIDs.sort(function (a, b) {
+                            return 1 * a["seq"] - 1 * b["seq"];
                         })
                     }
                     //3. prepare data sequence
@@ -106,7 +106,7 @@ const JpcData = {
                 if ((rptTpl) && (dataObj)) {
                     _analyse('主数据指标_集合', '从数据指标_集合', IDataObj_props.master_data, IDataObj_props.detail_data, me.dataSeq);
                     if (rptTpl.流水式表_拓展信息) {
-                        _analyse('主数据指标_拓展集合', '从数据指标_拓展集合', IDataObj_props.master_data_ex,IDataObj_props.detail_data_ex, me.exDataSeq);
+                        _analyse('主数据指标_拓展集合', '从数据指标_拓展集合', IDataObj_props.master_data_ex, IDataObj_props.detail_data_ex, me.exDataSeq);
                     }
                 }
             }

+ 3 - 3
report/src/core/jpc_event.ts

@@ -15,12 +15,12 @@ const JpcEvent = {
         };
         if (rptTpl.事件_集合) {
             for (let i = 0; i < rptTpl.事件_集合.length; i++) {
-                let item = {...rptTpl.事件_集合[i]};
+                let item = { ...rptTpl.事件_集合[i] };
                 // let propArr = Object.getOwnPropertyNames(rptTpl[JV.NODE_EVENTS][i]);
                 // for (let key of propArr) {
                 //     item[key] = rptTpl[JV.NODE_EVENTS][i][key];
                 // }
-                const event_type=[IEvent_type.GRP_ON_CREATE,IEvent_type.FLOW_CONTENT_ON_CREATE]
+                const event_type = [IEvent_type.GRP_ON_CREATE, IEvent_type.FLOW_CONTENT_ON_CREATE]
                 switch (event_type.indexOf(item.type)) {
                     case JV.EVENT_IDX_GRP_ON_CREATE:
                         rst.FLOW_CONTENT_ON_CREATE = item;
@@ -28,7 +28,7 @@ const JpcEvent = {
                     case JV.EVENT_IDX_FLOW_CONTENT_ON_CREATE:
                         rst.FLOW_CONTENT_ON_CREATE = item;
                         break;
-                    default :
+                    default:
                         break;
                 }
                 //rst.push(item);

+ 20 - 20
report/src/core/jpc_ex.ts

@@ -13,18 +13,18 @@ import JpcEvent from './jpc_event';
 import JpcData from './jpc_data';
 import JpcCommonHelper from './helper/jpc_helper_common';
 import $JE from './jpc_rte'; //Important: for self-define function execution purpose
-import {IDefProperties,IFormula,IParams,ICurrent_RPT,ICurrent_DATA,ICustomizeCfg,ITargetFields,IRptTpl, IDataObj, IBands, IControlCollection, IStyles, BorderStyle, IFontSubCollection, IControlSubCollection, IPreviewPage} from '../interface/basic'
-import { IFlowTabClass ,IBillTabClass,ICostTabClass} from '../interface/classType';
+import { IDefProperties, IFormula, IParams, ICurrent_RPT, ICurrent_DATA, ICustomizeCfg, ITargetFields, IRptTpl, IDataObj, IBands, IControlCollection, IStyles, BorderStyle, IFontSubCollection, IControlSubCollection, IPreviewPage } from '../interface/basic'
+import { IFlowTabClass, IBillTabClass, ICostTabClass } from '../interface/classType';
 
-class JpcExClass{
+class JpcExClass {
     flowTab: IFlowTabClass = new IFlowTabClass;
-    flowTabEx:  IFlowTabClass = new IFlowTabClass;
+    flowTabEx: IFlowTabClass = new IFlowTabClass;
     billTab: IBillTabClass = new IBillTabClass;
     crossTab: ICostTabClass = new ICostTabClass;
     isFollowMode: boolean = false;
     totalPages: number = 0;
     exTotalPages: number = 0;
-    runTimePageData: {currentPage?:number};
+    runTimePageData: { currentPage?: number };
     fields: ITargetFields;
     params: IParams;
     formulas: IFormula[];
@@ -56,7 +56,7 @@ class JpcExClass{
     };
 
     analyzeData(rptTpl: IRptTpl, dataObj: IDataObj, defProperties: IDefProperties, option: string, outputType: string) {
-        let me = this, dftPagingOption = option||JV.PAGING_OPTION_NORMAL;
+        let me = this, dftPagingOption = option || JV.PAGING_OPTION_NORMAL;
         //1. data object
         let dataHelper: any = JpcData.createNew();
         me.executeFormulas(JV.RUN_TYPE_BEFORE_ANALYZING, rptTpl, dataObj, me); //在分析前运行,主要是增加灵活性,比如:重新编排数据的主从关系
@@ -92,7 +92,7 @@ class JpcExClass{
     };
 
     paging(rptTpl: IRptTpl, dataObj: IDataObj, defProperties: IDefProperties, option: string) {
-        let me = this, dftPagingOption = option||JV.PAGING_OPTION_NORMAL;
+        let me = this, dftPagingOption = option || JV.PAGING_OPTION_NORMAL;
         if (me.flowTab) {
             if (me.isFollowMode) {
                 me.totalPages = me.flowTab.preSetupPages(rptTpl, dataObj, defProperties, dftPagingOption, me, me.flowTabEx);
@@ -116,7 +116,7 @@ class JpcExClass{
         let execFmlMe = this;
         for (let execFmlIdx = 0; execFmlIdx < execFmlMe.formulas.length; execFmlIdx++) {
             //remark: 搞这么复杂的变量名是为了防止与表达式起冲突(如循环变量i,j,k,容易造成变量冲突且不容易看出问题)
-            if (execFmlMe.formulas[execFmlIdx].run_type=== runType) {
+            if (execFmlMe.formulas[execFmlIdx].run_type === runType) {
                 let expression = execFmlMe.formulas[execFmlIdx].expression;
                 if (expression) {
                     let $ME = execFmlMe.formulas[execFmlIdx];
@@ -133,10 +133,10 @@ class JpcExClass{
     };
 
     outputAsPreviewPage(rptTpl: IRptTpl, defProperties: IDefProperties) {
-        let me = this, rst :any= {};
-        rst.control_collection = private_buildDftControls(rptTpl, (defProperties === null)?null:defProperties.ctrls);
-        rst.style_collection = private_buildDftStyles(rptTpl, (defProperties === null)?null:defProperties.styles);
-        rst.font_collection = private_buildDftFonts(rptTpl, (defProperties === null)?null:defProperties.fonts);
+        let me = this, rst: any = {};
+        rst.control_collection = private_buildDftControls(rptTpl, (defProperties === null) ? null : defProperties.ctrls);
+        rst.style_collection = private_buildDftStyles(rptTpl, (defProperties === null) ? null : defProperties.styles);
+        rst.font_collection = private_buildDftFonts(rptTpl, (defProperties === null) ? null : defProperties.fonts);
         rst.打印页面_信息 = {};
         rst.打印页面_信息.报表名称 = rptTpl.主信息.报表名称;
         rst.打印页面_信息.纸张宽高 = JpcCommonHelper.getPageSize(rptTpl);
@@ -181,7 +181,7 @@ class JpcExClass{
                 mergedBand.style = band.style;
                 rst.MergeBand = mergedBand;
             }
-        } catch(exception) {
+        } catch (exception) {
             console.log(exception);
         } finally {
             bands = null;
@@ -192,9 +192,9 @@ class JpcExClass{
     outputAsSimpleJSONPageArray(rptTpl: IRptTpl, dataObj: IDataObj, startPage: number, endPage: number, defProperties: IDefProperties, customizeCfg: ICustomizeCfg) {
         let me = this, rst: any = {};
         if ((startPage > 0) && (startPage <= endPage) && (endPage <= me.totalPages)) {
-            rst.control_collection = private_buildDftControls(rptTpl, (defProperties === null)?null:defProperties.ctrls);
-            rst.style_collection = private_buildDftStyles(rptTpl, (defProperties === null)?null:defProperties.styles);
-            rst[JV.NODE_FONT_COLLECTION] = private_buildDftFonts(rptTpl, (defProperties === null)?null:defProperties.fonts);
+            rst.control_collection = private_buildDftControls(rptTpl, (defProperties === null) ? null : defProperties.ctrls);
+            rst.style_collection = private_buildDftStyles(rptTpl, (defProperties === null) ? null : defProperties.styles);
+            rst[JV.NODE_FONT_COLLECTION] = private_buildDftFonts(rptTpl, (defProperties === null) ? null : defProperties.fonts);
             rst.打印页面_信息 = {};
             rst.打印页面_信息.报表名称 = rptTpl.主信息.报表名称;
             rst.打印页面_信息.纸张宽高 = JpcCommonHelper.getPageSize(rptTpl);
@@ -216,7 +216,7 @@ class JpcExClass{
                     mergedBand.style = band.style;
                     rst.MergeBand = mergedBand;
                 }
-            } catch(exception) {
+            } catch (exception) {
                 console.log(exception);
             } finally {
                 bands = null;
@@ -303,15 +303,15 @@ function private_buildDftItems(rptTpl: any, dftCollection: any, propArray: any,
     return rst;
 }
 
-function private_buildDftControls(rptTpl: IRptTpl, dftControlCollection: IControlSubCollection[]|null) {
+function private_buildDftControls(rptTpl: IRptTpl, dftControlCollection: IControlSubCollection[] | null) {
     return private_buildDftItems(rptTpl, dftControlCollection, JV.CONTROL_PROPS, JV.NODE_CONTROL_COLLECTION);
 }
 
-function private_buildDftFonts(rptTpl: IRptTpl, dftFontCollection: IFontSubCollection[]|null) {
+function private_buildDftFonts(rptTpl: IRptTpl, dftFontCollection: IFontSubCollection[] | null) {
     return private_buildDftItems(rptTpl, dftFontCollection, JV.FONT_PROPS, JV.NODE_FONT_COLLECTION);
 }
 
-function private_buildDftStyles(rptTpl: IRptTpl, dftStyleCollection: IStyles[]|null) {
+function private_buildDftStyles(rptTpl: IRptTpl, dftStyleCollection: IStyles[] | null) {
     const rst: any = {};
     function private_CopyBorder(destItem: BorderStyle, srcItem: BorderStyle) {
         destItem.LineWeight = srcItem.LineWeight;

+ 16 - 16
report/src/core/jpc_field.ts

@@ -1,32 +1,32 @@
 'use strict';
 
 import JV from './jpc_value_define';
-import {    IRptTpl,IGroupField,IOrgGroupField} from '../interface/basic'
-import {IDataObj_props} from '../interface/enum'
+import { IRptTpl, IGroupField, IOrgGroupField } from '../interface/basic'
+import { IDataObj_props } from '../interface/enum'
 const JpcField = {
     createNew(rptTpl: IRptTpl) {
         let me = this;
         let JpcFieldResult = {
-            离散指标_集合 : {},
-            主数据指标_集合 : {},
-            从数据指标_集合 : {},
-            无映射离散指标_集合 : {},
-            主数据指标_拓展集合 : {},
-            从数据指标_拓展集合 : {}
+            离散指标_集合: {},
+            主数据指标_集合: {},
+            从数据指标_集合: {},
+            无映射离散指标_集合: {},
+            主数据指标_拓展集合: {},
+            从数据指标_拓展集合: {}
         };
         if (rptTpl.指标_数据_映射 && rptTpl.指标_数据_映射.离散指标_集合) {
             for (let i = 0; i < rptTpl.指标_数据_映射.离散指标_集合.length; i++) {
                 me.createSingle(rptTpl.指标_数据_映射.离散指标_集合[i], JpcFieldResult.离散指标_集合, IDataObj_props.discrete_data, i);
             }
         }
-        if (rptTpl.指标_数据_映射&& rptTpl.指标_数据_映射.主数据指标_集合) {
+        if (rptTpl.指标_数据_映射 && rptTpl.指标_数据_映射.主数据指标_集合) {
             for (let i = 0; i < rptTpl.指标_数据_映射.主数据指标_集合.length; i++) {
                 me.createSingle(rptTpl.指标_数据_映射.主数据指标_集合[i], JpcFieldResult.主数据指标_集合, IDataObj_props.master_data, i);
             }
         }
         if (rptTpl.指标_数据_映射 && rptTpl.指标_数据_映射.从数据指标_集合) {
             for (let i = 0; i < rptTpl.指标_数据_映射.从数据指标_集合.length; i++) {
-                me.createSingle(rptTpl.指标_数据_映射.从数据指标_集合[i], JpcFieldResult.从数据指标_集合,IDataObj_props.detail_data, i);
+                me.createSingle(rptTpl.指标_数据_映射.从数据指标_集合[i], JpcFieldResult.从数据指标_集合, IDataObj_props.detail_data, i);
             }
         }
         if (rptTpl.无映射离散指标_集合) {
@@ -47,14 +47,14 @@ const JpcField = {
         //NODE_MASTER_FIELDS_EX
         return JpcFieldResult;
     },
-    createSingle(fieldNode: IOrgGroupField, parentObj:Record<string,IOrgGroupField> , dataNodeName: IDataObj_props|string, sequence: number) {
+    createSingle(fieldNode: IOrgGroupField, parentObj: Record<string, IOrgGroupField>, dataNodeName: IDataObj_props | string, sequence: number) {
         if (fieldNode && fieldNode.ID) {
             let item = {
-                ID : fieldNode.ID,
-                Name : fieldNode.Name,
-                DataType : fieldNode.DataType,
+                ID: fieldNode.ID,
+                Name: fieldNode.Name,
+                DataType: fieldNode.DataType,
                 // Precision : null//  edit by lish
-                Precision : {}
+                Precision: {}
             } as any;
             if (fieldNode.Precision) {
                 item.Precision = {};
@@ -68,7 +68,7 @@ const JpcField = {
             }
             item.DataNodeName = dataNodeName;
             item.DataSeq = sequence;
-            parentObj[ "ID_" + fieldNode.ID] = item;
+            parentObj["ID_" + fieldNode.ID] = item;
         }
     }
 };

+ 81 - 81
report/src/core/jpc_flow_tab.ts

@@ -35,14 +35,14 @@ import {
     IPageAreaObj,
     IControlSubCollection,
     INode,
-    
+
 } from '../interface/basic'
 
 class JpcFlowTabClass {
     isEx: boolean;
     paging_option: string;
     segments: number[][];
-    dispValueIdxLst:number[][][];
+    dispValueIdxLst: number[][][];
     page_seg_map: number[][];
     disp_fields_idx: any[];
     disp_fields_ex_idx: any[];
@@ -50,20 +50,20 @@ class JpcFlowTabClass {
     seg_sum_tab_fields: any[];
     page_sum_fields_idx: any[];
     page_sum_tab_fields: any[];
-    auto_height_fields_idx:[number,Fields][];//那些被标记为判断自动行高的指标集合
-    auto_height_info:  number[][];
+    auto_height_fields_idx: [number, Fields][];//那些被标记为判断自动行高的指标集合
+    auto_height_info: number[][];
     group_check_fields: Fields[];
     group_sum_fields: Fields[];
     group_sum_values: Fields[];
-    group_node_info:  number[][]; //记录在哪个seg及到哪条记录后有group sum信息
+    group_node_info: number[][]; //记录在哪个seg及到哪条记录后有group sum信息
     group_lines_amt: number;    //每group一次占用多少行,计算page信息会用到
-    pageStatusLst:boolean[][];
+    pageStatusLst: boolean[][];
     groupSumValLst: any[];
     segSumValLst: any[];
     pageSumValLst: any[];
     multiCols: number;
     pagesAmt: number;
-    
+
     constructor(isEx: boolean) {
         //初始化
         this.isEx = isEx;
@@ -99,7 +99,7 @@ class JpcFlowTabClass {
         let me = this;
         // let FLOW_NODE_STR = me.isEx?'流水式表_拓展信息':'流水式表_信息';
         //因为rptTpl[FLOW_NODE_STR的写法不兼容ts,所以把变量改为flow_node_str代替
-        let flow_node_str=me.isEx?rptTpl.流水式表_拓展信息:rptTpl.流水式表_信息;
+        let flow_node_str = me.isEx ? rptTpl.流水式表_拓展信息 : rptTpl.流水式表_信息;
         if (flow_node_str.流水式表_段统计信息) JpcFieldHelper.findAndPutDataFieldIdx(rptTpl, flow_node_str.流水式表_段统计信息.sum_field_s, me.seg_sum_tab_fields, me.seg_sum_fields_idx, me.isEx);
         if (flow_node_str.流水式表_页统计信息) JpcFieldHelper.findAndPutDataFieldIdx(rptTpl, flow_node_str.流水式表_页统计信息.sum_field_s, me.page_sum_tab_fields, me.page_sum_fields_idx, me.isEx);
         if (flow_node_str.流水式表_分组信息) {
@@ -124,10 +124,10 @@ class JpcFlowTabClass {
     };
     sumSeg(dataObj: IDataObj, $CURRENT_RPT: ICurrent_RPT) {
         let me = this;
-        let data_details = me.isEx?dataObj.detail_data_ex:dataObj.detail_data,
+        let data_details = me.isEx ? dataObj.detail_data_ex : dataObj.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);
@@ -146,7 +146,7 @@ class JpcFlowTabClass {
                     rowGrandTotal.push(0.0);
                     let precisionAmt = 4;
                     let sum_field = JE.F(me.seg_sum_tab_fields[di][JV.PROP_FIELD_ID], $CURRENT_RPT);
-                    if (sum_field&&sum_field.Precision && sum_field.Precision.type === `fixed`) {
+                    if (sum_field && sum_field.Precision && sum_field.Precision.type === `fixed`) {
                         precisionAmt = sum_field.fixedPrecisionNum;
                     } else {
                         let flowF = me.seg_sum_tab_fields[di];
@@ -173,9 +173,9 @@ class JpcFlowTabClass {
     sumUpGrp(rptTpl: IRptTpl, $CURRENT_RPT: ICurrent_RPT, dataObj: IDataObj, segIdx: number, preGrpIdx: number, nexGrpIdx: number) {
         let me = this, segDataIdx = me.segments[segIdx];
         for (let j = 0; j < me.group_sum_fields.length; j++) {
-            let sum_field :IGroupField|null = JE.F(me.group_sum_fields[j].FieldID, $CURRENT_RPT);
+            let sum_field: IGroupField | null = JE.F(me.group_sum_fields[j].FieldID, $CURRENT_RPT);
             if (sum_field) {
-                let data_field= null;
+                let data_field = null;
                 if (sum_field.data_field) {
                     data_field = sum_field.data_field
                 } else {
@@ -209,14 +209,14 @@ class JpcFlowTabClass {
             me.group_sum_values = [];
             me.group_node_info = [];
             // let CURRENT_FLOW_INFO = (me.isEx)?'流水式表_拓展信息':'流水式表_信息';
-            let current_flow_info=me.isEx?rptTpl.流水式表_拓展信息:rptTpl.流水式表_信息;
-            me.group_lines_amt =current_flow_info.流水式表_分组信息.group_lines.length;
+            let current_flow_info = me.isEx ? rptTpl.流水式表_拓展信息 : rptTpl.流水式表_信息;
+            me.group_lines_amt = current_flow_info.流水式表_分组信息.group_lines.length;
             //
             let preGrpIdx = 0, nexGrpIdx = 0;
             for (let segIdx = 0; segIdx < me.segments.length; segIdx++) {
                 let segDataIdx = me.segments[segIdx];
                 // me.group_sum_values.push([]);
-                me.group_sum_values.push({} as Fields) ;
+                me.group_sum_values.push({} as Fields);
                 me.group_node_info.push([]);
                 for (let j = 0; j < me.group_sum_fields.length; j++) {
                     // me.group_sum_values[segIdx].push([]);
@@ -227,7 +227,7 @@ class JpcFlowTabClass {
                     let hasDiff = false;
                     if (di >= 1) {
                         for (let i = 0; i < me.group_check_fields.length; i++) {
-                            let grp_field= JE.F(me.group_check_fields[i].FieldID, $CURRENT_RPT);
+                            let grp_field = JE.F(me.group_check_fields[i].FieldID, $CURRENT_RPT);
                             if (grp_field) {
                                 let data_field = null;
                                 if (grp_field.data_field) {
@@ -264,13 +264,13 @@ class JpcFlowTabClass {
         let me = this;
         if (me.auto_height_fields_idx.length > 0) {
             // let CURRENT_FLOW_INFO = (me.isEx)?'流水式表_拓展信息':'流水式表_信息';
-            let current_flow_info=me.isEx?rptTpl.流水式表_拓展信息:rptTpl.流水式表_信息;
+            let current_flow_info = me.isEx ? rptTpl.流水式表_拓展信息 : rptTpl.流水式表_信息;
             let band = bands[current_flow_info.流水式表_数据.BandName];
-            let data_details = me.isEx?dataObj.detail_data_ex:dataObj.detail_data;
+            let data_details = me.isEx ? dataObj.detail_data_ex : dataObj.detail_data;
             let tab_fields = current_flow_info.流水式表_数据.flow_field_s;
             let adHocAutoHeightStyleStr = [];
-            let reg1 = new RegExp('\n\r','g'), reg2 = new RegExp('\r\n','g'),
-                reg3 = new RegExp('\n','g'), reg4 = new RegExp('\r','g');
+            let reg1 = new RegExp('\n\r', 'g'), reg2 = new RegExp('\r\n', 'g'),
+                reg3 = new RegExp('\n', 'g'), reg4 = new RegExp('\r', 'g');
             // let doc = new PDFKit({autoFirstPage: false});
             let fonts = defProperties.fonts;
             let fontCache: any = {};
@@ -289,7 +289,7 @@ class JpcFlowTabClass {
                 }
                 return rst;
             };
-            let private_get_max_lines_of_the_record = function(theRecIdx: number) {
+            let private_get_max_lines_of_the_record = function (theRecIdx: number) {
                 let rst = 1;
                 for (let loop = 0; loop < me.auto_height_fields_idx.length; loop++) {
                     let tab_field = me.auto_height_fields_idx[loop][1];
@@ -363,9 +363,9 @@ class JpcFlowTabClass {
                     rptTpl.style_collection = [];
                 }
                 for (let styleStr of adHocAutoHeightStyleStr) {
-                    let adHocStyle1 = {"ID": styleStr + "_AutoHeightMerge_Top"};
-                    let adHocStyle2 = {"ID": styleStr + "_AutoHeightMerge_Middle"};
-                    let adHocStyle3 = {"ID": styleStr + "_AutoHeightMerge_Bottom"};
+                    let adHocStyle1 = { "ID": styleStr + "_AutoHeightMerge_Top" };
+                    let adHocStyle2 = { "ID": styleStr + "_AutoHeightMerge_Middle" };
+                    let adHocStyle3 = { "ID": styleStr + "_AutoHeightMerge_Bottom" };
                     rptTpl.style_collection.push(adHocStyle1);
                     rptTpl.style_collection.push(adHocStyle2);
                     rptTpl.style_collection.push(adHocStyle3);
@@ -383,8 +383,8 @@ class JpcFlowTabClass {
     preSetupPages(rptTpl: IRptTpl, dataObj: IDataObj, defProperties: IDefProperties, option: string, $CURRENT_RPT: ICurrent_RPT, followTabEx: any) {
         //换一种思路来整理流水式数据
         let me = this, rst = 1, counterRowRec = 0, counterRowRecEx = 0, maxRowRec = 1, pageIdx = 0, currentRecAmt = 0;
-        me.paging_option = option||JV.PAGING_OPTION_NORMAL;
-        let current_flow_info=me.isEx?rptTpl.流水式表_拓展信息:rptTpl.流水式表_信息;
+        me.paging_option = option || JV.PAGING_OPTION_NORMAL;
+        let current_flow_info = me.isEx ? rptTpl.流水式表_拓展信息 : rptTpl.流水式表_信息;
         JpcFieldHelper.findAndPutDataFieldIdx(rptTpl, current_flow_info.流水式表_数据.flow_field_s, null, me.disp_fields_idx, me.isEx);
         if (followTabEx) {
             JpcFieldHelper.findAndPutDataFieldIdx(rptTpl, rptTpl.流水式表_拓展信息.流水式表_数据.flow_field_s, null, me.disp_fields_ex_idx, true);
@@ -456,7 +456,7 @@ class JpcFlowTabClass {
                 pageIdx++;
                 function private_chk_handle_rec_amt(dv: any[], isEx: boolean) {
                     if ((dv[1] === JV.DISPLAY_VAL_TYPE_NORMAL) || (dv[1] === JV.DISPLAY_VAL_TYPE_AUTO_HEIGHT && dv[3] === dv[4] - 1)) {
-                        if (isEx) {counterRowRecEx++} else counterRowRec++;
+                        if (isEx) { counterRowRecEx++ } else counterRowRec++;
                     } else if (dv[1] === JV.DISPLAY_VAL_TYPE_AUTO_HEIGHT) {
                         redundantRecAmt++;
                     }
@@ -464,7 +464,7 @@ class JpcFlowTabClass {
                 let restRecAmt = 0;
                 if (isMix) {
                     //先处理上半部分
-                    prePageLeftAutoHeightRecAmt = _addPageValue(me.dispValueIdxLst, me.segments[segIdx], grpSeqInfo, counterRowRec, mixSplitPoint,me.page_seg_map, segIdx, pageIdx, grpPageInfo, false, me.auto_height_info, prePageLeftAutoHeightRecAmt);
+                    prePageLeftAutoHeightRecAmt = _addPageValue(me.dispValueIdxLst, me.segments[segIdx], grpSeqInfo, counterRowRec, mixSplitPoint, me.page_seg_map, segIdx, pageIdx, grpPageInfo, false, me.auto_height_info, prePageLeftAutoHeightRecAmt);
                     for (let dv of me.dispValueIdxLst[me.dispValueIdxLst.length - 1]) {
                         private_chk_handle_rec_amt(dv, false);
                     }
@@ -487,7 +487,7 @@ class JpcFlowTabClass {
                         private_chk_handle_rec_amt(dv, true);
                     }
                 } else {
-                    prePageLeftAutoHeightRecAmt = _addPageValue(me.dispValueIdxLst, me.segments[segIdx], grpSeqInfo, counterRowRec, maxRowRec,me.page_seg_map, segIdx, pageIdx, grpPageInfo, false, me.auto_height_info, prePageLeftAutoHeightRecAmt);
+                    prePageLeftAutoHeightRecAmt = _addPageValue(me.dispValueIdxLst, me.segments[segIdx], grpSeqInfo, counterRowRec, maxRowRec, me.page_seg_map, segIdx, pageIdx, grpPageInfo, false, me.auto_height_info, prePageLeftAutoHeightRecAmt);
                     for (let dv of me.dispValueIdxLst[me.dispValueIdxLst.length - 1]) {
                         private_chk_handle_rec_amt(dv, false);
                     }
@@ -499,8 +499,8 @@ class JpcFlowTabClass {
                 }
             }
             for (let segIdx = 0; segIdx < me.segments.length; segIdx++) {
-                let grpSeqInfo = (me.group_node_info)?me.group_node_info[segIdx]:null;
-                let grpRecAmt = (grpSeqInfo)?(grpSeqInfo.length*me.group_lines_amt):0;
+                let grpSeqInfo = (me.group_node_info) ? me.group_node_info[segIdx] : null;
+                let grpRecAmt = (grpSeqInfo) ? (grpSeqInfo.length * me.group_lines_amt) : 0;
                 let grpRecAmtEx = 0;
                 let accAutoHeightAmt = 0; //累计的自动行高数量
                 handledRowAmt = 0; //初始化每一段的已处理纪录行数
@@ -520,7 +520,7 @@ class JpcFlowTabClass {
                 counterRowRec = 0;
                 counterRowRecEx = 0;
                 let ttlSegRecAmtNormal = me.segments[segIdx].length + grpRecAmt; //正常的segment下的数据长度累计(含grouping data)
-                let ttlSegRecAmt = (followTabEx)?(me.segments[segIdx].length + grpRecAmt + followTabEx.segments[segIdx].length + grpRecAmtEx):(me.segments[segIdx].length + grpRecAmt); //所有的segment下的数据长度累计(包括ex部分)
+                let ttlSegRecAmt = (followTabEx) ? (me.segments[segIdx].length + grpRecAmt + followTabEx.segments[segIdx].length + grpRecAmtEx) : (me.segments[segIdx].length + grpRecAmt); //所有的segment下的数据长度累计(包括ex部分)
                 let adHocAutoHeightAmt = 0;
                 let normalContentAmt = 0;
                 let exBuffer = 0;
@@ -603,7 +603,7 @@ class JpcFlowTabClass {
                                     }
                                 } else {
                                     //在这里要考虑如果有多页正常的流水数据情况,那么就得考虑这页有多少条普通流水记录,不应该一刀切地用ttlSegRecAmtNormal
-                                    let splitPoint = ttlSegRecAmtNormal - handledRowAmt ;
+                                    let splitPoint = ttlSegRecAmtNormal - handledRowAmt;
                                     // if (splitPoint > (exBuffer + maxRowRec)) {
                                     //     splitPoint = splitPoint % (exBuffer + maxRowRec);
                                     // }
@@ -735,7 +735,7 @@ class JpcFlowTabClass {
     outputAsSimpleJSONPage(rptTpl: IRptTpl, dataObj: IDataObj, page: number, bands: IBands, controls: IControlCollection, adHocMergePos: IMergePos, $CURRENT_RPT: ICurrent_RPT, customizeCfg: ICustomizeCfg) {
         let me = this, rst: any[] = [], tabRstLst = [];
         // let FLOW_NODE_STR = me.isEx?'流水式表_拓展信息':'流水式表_信息';
-        let flow_node_str=me.isEx?rptTpl.流水式表_拓展信息:rptTpl.流水式表_信息;
+        let flow_node_str = me.isEx ? rptTpl.流水式表_拓展信息 : rptTpl.流水式表_信息;
         let unitFactor = JpcCommonHelper.getUnitFactor(rptTpl);
         if (me.paging_option === "infinity") {
             const segIdx = page - 1;
@@ -813,22 +813,22 @@ class JpcFlowTabClass {
     outputContent(rptTpl: IRptTpl, dataObj: IDataObj, page: number, bands: IBands, unitFactor: number, controls: IControlCollection, multiColIdx: number, $CURRENT_RPT: ICurrent_RPT, customizeCfg: ICustomizeCfg) {
         let me = this, rst: any[] = [], prepareObj = {};
         // let FLOW_NODE_STR = me.isEx?'流水式表_拓展信息':'流水式表_信息';
-        let flow_node_str=me.isEx?rptTpl.流水式表_拓展信息:rptTpl.流水式表_信息;
+        let flow_node_str = me.isEx ? rptTpl.流水式表_拓展信息 : rptTpl.流水式表_信息;
         let tab = flow_node_str.流水式表_数据;
-        let tabEx = (rptTpl.流水式表_拓展信息)?rptTpl.流水式表_拓展信息.流水式表_数据:null;
+        let tabEx = (rptTpl.流水式表_拓展信息) ? rptTpl.流水式表_拓展信息.流水式表_数据 : null;
         let verticalCombinePos = [], horizonCombinePos = []; //合并特性用
         let band = bands[tab.BandName];
         if (band) {
             let pageStatus = me.pageStatusLst[page - 1];
             if (pageStatus[(band.DisplayType) as number]) {
                 let tab_fields = tab.flow_field_s;
-                let tab_fields_ex = tabEx?tabEx.flow_field_s:null;
-                let data_details = me.isEx?dataObj.detail_data_ex:dataObj.detail_data;
-                let data_details_ex = $CURRENT_RPT.isFollowMode?dataObj.detail_data_ex:null;
+                let tab_fields_ex = tabEx ? tabEx.flow_field_s : null;
+                let data_details = me.isEx ? dataObj.detail_data_ex : dataObj.detail_data;
+                let data_details_ex = $CURRENT_RPT.isFollowMode ? dataObj.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++) {
-                    if (typeof(me.page_sum_fields_idx[i]) === "object") {
+                    if (typeof (me.page_sum_fields_idx[i]) === "object") {
                         let exField = JE.F(me.page_sum_fields_idx[i][JV.PROP_ID], $CURRENT_RPT);
                         if (exField) {
                             page_sum_data_fields.push(exField.data_field);
@@ -861,9 +861,9 @@ class JpcFlowTabClass {
                         if (map_data_field && map_data_field.Precision && map_data_field.flexiblePrecisionRefObj) {
                             if (flexiblePrecisionRefObj === null) {
                                 flexiblePrecisionRefObj = {};
-                                if(map_data_field.Precision.flexibleRefFieldID)
-                                flexibleRefField = JE.F(map_data_field.Precision.flexibleRefFieldID, $CURRENT_RPT);
-                               if(flexibleRefField) precision_ref_data = dataObj[map_data_field.DataNodeName][flexibleRefField.DataSeq];
+                                if (map_data_field.Precision.flexibleRefFieldID)
+                                    flexibleRefField = JE.F(map_data_field.Precision.flexibleRefFieldID, $CURRENT_RPT);
+                                if (flexibleRefField) precision_ref_data = dataObj[map_data_field.DataNodeName][flexibleRefField.DataSeq];
                                 for (let decimalObj of map_data_field.flexiblePrecisionRefObj) {
                                     flexiblePrecisionRefObj["refUnit_" + decimalObj.unit] = decimalObj.decimal;
                                 }
@@ -888,7 +888,7 @@ class JpcFlowTabClass {
                                     } else if (contentValuesIdx[rowIdx][3] === contentValuesIdx[rowIdx][4] - 1) {
                                         cellItem.style = cellItem.style + '_AutoHeightMerge_Bottom';
                                     } else {
-                                        cellItem.style= cellItem.style + '_AutoHeightMerge_Middle';
+                                        cellItem.style = cellItem.style + '_AutoHeightMerge_Middle';
                                     }
                                     prepareAutoHeightCells(prepareObj, cellItem, rst.length - 1, rst);
                                 }
@@ -920,8 +920,8 @@ class JpcFlowTabClass {
                             if (map_data_fieldex && map_data_fieldex.Precision && map_data_fieldex.flexiblePrecisionRefObj) {
                                 if (flexiblePrecisionRefObj === null) {
                                     flexiblePrecisionRefObj = {};
-                                    if(map_data_fieldex.Precision.flexibleRefFieldID)
-                                    flexibleRefField = JE.F(map_data_fieldex.Precision.flexibleRefFieldID, $CURRENT_RPT);
+                                    if (map_data_fieldex.Precision.flexibleRefFieldID)
+                                        flexibleRefField = JE.F(map_data_fieldex.Precision.flexibleRefFieldID, $CURRENT_RPT);
                                     for (let decimalObj of map_data_fieldex.flexiblePrecisionRefObj) {
                                         flexiblePrecisionRefObj["refUnit_" + decimalObj.unit] = decimalObj.decimal;
                                     }
@@ -1000,14 +1000,14 @@ class JpcFlowTabClass {
         me.checkCombineEvent(JV.RUN_TYPE_AFTER_COMBINE, verticalCombinePos, horizonCombinePos, rst, $CURRENT_RPT);
         return rst;
     };
-    combinePageCells(rstPageCells: ICell[], verticalCombinePos: number[][], horizonCombinePos:number[][]) {
+    combinePageCells(rstPageCells: ICell[], verticalCombinePos: number[][], horizonCombinePos: number[][]) {
         // let me = this;
         //备注:纵向合并要考虑以下因素:
         //     如果有多个column纵向合并,需要总体考虑分割,
         //     假如:第一列的前3个数据(1、2、3)是相同的,第二列中第2、3、4行数据相同,那么第二列只能合并2、3行的数据,不能合并到第四行
         //     同理如此类推第三列...n列
         if (verticalCombinePos.length > 0 || horizonCombinePos.length > 1) {
-            let cacheObj: any = {vCache:{}, hCache: {}, hCacheStr: []};
+            let cacheObj: any = { vCache: {}, hCache: {}, hCacheStr: [] };
             let removeCellIds = [];
             for (let vPosArr of verticalCombinePos) {
                 let pStr = "_" + vPosArr[0] + "_" + vPosArr[1];
@@ -1141,10 +1141,10 @@ class JpcFlowTabClass {
             }
         }
     };
-    outputColumn(rptTpl: IRptTpl, dataObj: IDataObj|null, page: number, segIdx: number, bands: IBands, unitFactor: number, multiColIdx: number, $CURRENT_RPT: ICurrent_RPT, customizeCfg: ICustomizeCfg|null) {
+    outputColumn(rptTpl: IRptTpl, dataObj: IDataObj | null, page: number, segIdx: number, bands: IBands, unitFactor: number, multiColIdx: number, $CURRENT_RPT: ICurrent_RPT, customizeCfg: ICustomizeCfg | null) {
         let me = this, rst: any = [];
         // let FLOW_NODE_STR = me.isEx?'流水式表_拓展信息':'流水式表_信息';
-        let flow_node_str=me.isEx?rptTpl.流水式表_拓展信息:rptTpl.流水式表_信息;
+        let flow_node_str = me.isEx ? rptTpl.流水式表_拓展信息 : rptTpl.流水式表_信息;
         let tab = flow_node_str.流水式表_列;
         let band = bands[tab.BandName];
         if (band) {
@@ -1158,16 +1158,16 @@ class JpcFlowTabClass {
     outputSegSum(rptTpl: IRptTpl, dataObj: IDataObj, page: number, segIdx: number, bands: IBands, unitFactor: number, controls: IControlCollection, $CURRENT_RPT: ICurrent_RPT, customizeCfg: ICustomizeCfg) {
         let me = this, rst: any = [];
         // let FLOW_NODE_STR = me.isEx?'流水式表_拓展信息':'流水式表_信息';
-        let flow_node_str=me.isEx?rptTpl.流水式表_拓展信息:rptTpl.流水式表_信息;
+        let flow_node_str = me.isEx ? rptTpl.流水式表_拓展信息 : rptTpl.流水式表_信息;
         let tab = flow_node_str.流水式表_段统计信息;
         let refTab = flow_node_str.流水式表_数据;
-        let refTabEx = (rptTpl.流水式表_拓展信息)?rptTpl.流水式表_拓展信息.流水式表_数据:null;
+        let refTabEx = (rptTpl.流水式表_拓展信息) ? rptTpl.流水式表_拓展信息.流水式表_数据 : null;
         let band = bands[tab.BandName];
         if (band) {
             let pageStatus = me.pageStatusLst[page - 1];
             if (pageStatus[(band.DisplayType) as number]) {
                 let ref_tab_fields = refTab.flow_field_s;
-                let ref_tab_fields_ex = refTabEx?refTabEx.flow_field_s:null;
+                let ref_tab_fields_ex = refTabEx ? refTabEx.flow_field_s : null;
                 let tab_fields = me.seg_sum_tab_fields;
                 for (let i = 0; i < tab_fields.length; i++) {
                     if (ref_tab_fields_ex && !JpcFieldHelper.resetSumFormat(ref_tab_fields, tab_fields[i])) {
@@ -1194,16 +1194,16 @@ class JpcFlowTabClass {
     outputPageSum(rptTpl: IRptTpl, dataObj: IDataObj, page: number, segIdx: number, bands: IBands, unitFactor: number, controls: IControlCollection, $CURRENT_RPT: ICurrent_RPT, customizeCfg: ICustomizeCfg) {
         let me = this, rst: any = [];
         // let FLOW_NODE_STR = me.isEx?'流水式表_拓展信息':'流水式表_信息';
-        let flow_node_str=me.isEx?rptTpl.流水式表_拓展信息:rptTpl.流水式表_信息;
+        let flow_node_str = me.isEx ? rptTpl.流水式表_拓展信息 : rptTpl.流水式表_信息;
         let tab = flow_node_str.流水式表_页统计信息;
         let refTab = flow_node_str.流水式表_数据;
-        let refTabEx = (rptTpl.流水式表_拓展信息)?rptTpl.流水式表_拓展信息.流水式表_数据:null;
+        let refTabEx = (rptTpl.流水式表_拓展信息) ? rptTpl.流水式表_拓展信息.流水式表_数据 : null;
         let band = bands[tab.BandName];
         if (band) {
             let pageStatus = me.pageStatusLst[page - 1];
             if (pageStatus[(band.DisplayType) as number]) {
                 let ref_tab_fields = refTab.flow_field_s;
-                let ref_tab_fields_ex = refTabEx?refTabEx.flow_field_s:null;
+                let ref_tab_fields_ex = refTabEx ? refTabEx.flow_field_s : null;
                 let tab_fields = me.page_sum_tab_fields;
                 for (let i = 0; i < tab_fields.length; i++) {
                     if (!JpcFieldHelper.resetSumFormat(ref_tab_fields, tab_fields[i])) {
@@ -1222,10 +1222,10 @@ class JpcFlowTabClass {
         }
         return rst;
     };
-    outputTabField(band: IBandDetail, tab_field: Fields, data_field: string[]|null, valueIdx: number, serialIdx: number, rows: number, rowIdx: number, cols: number, colIdx: number, unitFactor: number, isRow: boolean, controls: IControlCollection, multiColIdx: number) {
+    outputTabField(band: IBandDetail, tab_field: Fields, data_field: string[] | null, valueIdx: number, serialIdx: number, rows: number, rowIdx: number, cols: number, colIdx: number, unitFactor: number, isRow: boolean, controls: IControlCollection, multiColIdx: number) {
         let me = this,
             rst = JpcCommonOutputHelper.createCommonOutput(tab_field, JpcFieldHelper.getValue(data_field, valueIdx), controls);
-        rst.area  = JpcAreaHelper.outputArea(tab_field.area, band, unitFactor, rows, rowIdx, cols, colIdx, me.multiCols, multiColIdx, isRow, false);
+        rst.area = JpcAreaHelper.outputArea(tab_field.area, band, unitFactor, rows, rowIdx, cols, colIdx, me.multiCols, multiColIdx, isRow, false);
         return rst;
     };
     outputAutoHeightTabField(band: IBandDetail, tab_field: Fields, data_field: string[], contentValInfo: number[], rows: number, rowIdx: number, cols: number, colIdx: number, unitFactor: number, isRow: boolean, controls: IControlCollection, multiColIdx: number) {
@@ -1242,13 +1242,13 @@ class JpcFlowTabClass {
                 showText = '';
             }
             let rst = JpcCommonOutputHelper.createCommonOutput(tab_field, showText, controls);
-            rst.area  = JpcAreaHelper.outputArea(tab_field.area, band, unitFactor, rows, rowIdx, cols, colIdx, me.multiCols, multiColIdx, true, false);
+            rst.area = JpcAreaHelper.outputArea(tab_field.area, band, unitFactor, rows, rowIdx, cols, colIdx, me.multiCols, multiColIdx, true, false);
             rst.isAutoHeight = true;
             return rst;
         } else {
             if (contentValInfo[3] > 0) showText = '';
             let rst = JpcCommonOutputHelper.createCommonOutput(tab_field, showText, controls);
-            rst.area  = JpcAreaHelper.outputArea(tab_field.area, band, unitFactor, rows, rowIdx, cols, colIdx, me.multiCols, multiColIdx, true, false);
+            rst.area = JpcAreaHelper.outputArea(tab_field.area, band, unitFactor, rows, rowIdx, cols, colIdx, me.multiCols, multiColIdx, true, false);
             rst.isAutoHeight = false;
             return rst;
         }
@@ -1261,7 +1261,7 @@ class JpcFlowTabClass {
             for (let sumFieldNode of grp_line.SumKey_S) {
                 // let value = curSegGrpSum[sumFieldNode[JV.PROP_SUM_KEY]][grpValueIdx[2]];
                 let value = curSegGrpSum[`grp_sum_key_` + sumFieldNode.FieldID][grpValueIdx[2]];
-                let sumFldRst = JpcTextHelper.outputDirectValue(sumFieldNode, value,  band, unitFactor, rows, rowIdx, cols, colIdx, me.multiCols, multiColIdx);
+                let sumFldRst = JpcTextHelper.outputDirectValue(sumFieldNode, value, band, unitFactor, rows, rowIdx, cols, colIdx, me.multiCols, multiColIdx);
                 rst.push(sumFldRst);
             }
         }
@@ -1300,7 +1300,7 @@ class JpcFlowTabClass {
             }
         }
     };
-    commonTabRestOutput(dataObj: IDataObj|null, page: number, segIdx: number, bands: IBands, band: IBandDetail, unitFactor: number, tab: ITab, multiColIdx: number, $CURRENT_RPT: ICurrent_RPT, customizeCfg: ICustomizeCfg|null){
+    commonTabRestOutput(dataObj: IDataObj | null, page: number, segIdx: number, bands: IBands, band: IBandDetail, unitFactor: number, tab: ITab, multiColIdx: number, $CURRENT_RPT: ICurrent_RPT, customizeCfg: ICustomizeCfg | null) {
         let me = this, rst = [];
         if (tab.text) {
             rst.push(JpcTextHelper.outputText(tab.text, band, unitFactor, 1, 0, 1, 0, me.multiCols, multiColIdx));
@@ -1317,11 +1317,11 @@ class JpcFlowTabClass {
     };
 };
 
-function _addPageValue(ValuedIdxLst: number[][][], sortedSequence: number[], grpSequenceInfo: any, startRecIdx: number, maxRecPerPage: number, page_seg_map: number[][], 
-                        segIdx: number, pageIdx: number, grpPageInfo: IGrpPageInfo|null, isFollow: boolean, segAutoHeightInfo: number[][]|null, prePageLeftAutoHeightRecAmt: number) {
-    let vIdx = [], vFirstIdx = [], preAmt = 0, insertedGrpAmt = 0, grp_lines = 0, followMode = (isFollow)?JV.TYPE_FOLLOW_MODE:-1, nextPageAutoHeightRecAmt = 0;
+function _addPageValue(ValuedIdxLst: number[][][], sortedSequence: number[], grpSequenceInfo: any, startRecIdx: number, maxRecPerPage: number, page_seg_map: number[][],
+    segIdx: number, pageIdx: number, grpPageInfo: IGrpPageInfo | null, isFollow: boolean, segAutoHeightInfo: number[][] | null, prePageLeftAutoHeightRecAmt: number) {
+    let vIdx = [], vFirstIdx = [], preAmt = 0, insertedGrpAmt = 0, grp_lines = 0, followMode = (isFollow) ? JV.TYPE_FOLLOW_MODE : -1, nextPageAutoHeightRecAmt = 0;
     if (grpSequenceInfo && grpPageInfo) {
-        if ( grpPageInfo.preAddPageGrpInfo.length > 0) {
+        if (grpPageInfo.preAddPageGrpInfo.length > 0) {
             for (let grpLineIdx of grpPageInfo.preAddPageGrpInfo) {
                 //vIdx.push([followMode, JV.DISPLAY_VAL_TYPE_GROUP, grpPageInfo.segGrpRecStartIdx, grpLineIdx]);
                 vFirstIdx.push([followMode, JV.DISPLAY_VAL_TYPE_GROUP, grpPageInfo.segGrpRecStartIdx, grpLineIdx]);
@@ -1336,7 +1336,7 @@ function _addPageValue(ValuedIdxLst: number[][][], sortedSequence: number[], grp
     let private_addAutoHeightPageValue = function (vi: number) {
         let couldBreak = false, startIdx = 0;
         let ttlValAmt = 0;
-        if (segAutoHeightInfo&&[segIdx].length > startRecIdx + vi) {
+        if (segAutoHeightInfo && [segIdx].length > startRecIdx + vi) {
             ttlValAmt = segAutoHeightInfo[segIdx][startRecIdx + vi];
         }
         if (prePageLeftAutoHeightRecAmt > 0 && vi === 0) {
@@ -1353,9 +1353,9 @@ function _addPageValue(ValuedIdxLst: number[][][], sortedSequence: number[], grp
         }
         return couldBreak;
     };
-    let private_inner_add_grp_rec = function(vi: number) {
+    let private_inner_add_grp_rec = function (vi: number) {
         let hasFullGrp = true, couldBreak = false;
-        if(grpPageInfo){
+        if (grpPageInfo) {
             for (let i = 0; i < grp_lines; i++) {
                 if (vIdx.length >= maxRecPerPage) {
                     for (let j = i; j < grp_lines; j++) {
@@ -1379,7 +1379,7 @@ function _addPageValue(ValuedIdxLst: number[][][], sortedSequence: number[], grp
         }
         return couldBreak;
     };
-    let private_normal_add_rec = function(vi: number) {
+    let private_normal_add_rec = function (vi: number) {
         let couldBreak = false;
         if (segAutoHeightInfo && segAutoHeightInfo.length > 0) {
             if (segAutoHeightInfo[segIdx].length > startRecIdx + vi) {
@@ -1444,10 +1444,10 @@ function push_cell(pageCellObj: IPageCellObj, cell: INode, cellIdx: number) {
         pageCellObj[key] = [];
     }
     let cellArr = pageCellObj[key];
-    cellArr.push({"cellIdx": cellIdx, "cell": cell});
+    cellArr.push({ "cellIdx": cellIdx, "cell": cell });
 }
 
-function prepareAutoHeightCells(prepareObj: IPageAreaObj|{}, cellItem: INode, cellIdx: number, cellsArr: ICell[]) {
+function prepareAutoHeightCells(prepareObj: IPageAreaObj | {}, cellItem: INode, cellIdx: number, cellsArr: ICell[]) {
     if (prepareObj) {
         if ((prepareObj as IPageAreaObj).cellsArr === undefined) {
             (prepareObj as IPageAreaObj).cellsArr = cellsArr;
@@ -1459,7 +1459,7 @@ function prepareAutoHeightCells(prepareObj: IPageAreaObj|{}, cellItem: INode, ce
 
 function setupControl(mergeCell: ICell, controls: IControlCollection) {
     let orgCtrl = null;
-    if ( typeof mergeCell.control === "string") {
+    if (typeof mergeCell.control === "string") {
         orgCtrl = controls[mergeCell.control];
         mergeCell.control = {
             "Shrink": "T",
@@ -1468,14 +1468,14 @@ function setupControl(mergeCell: ICell, controls: IControlCollection) {
             "ShowZero": orgCtrl.ShowZero,
             "Horizon": orgCtrl.Horizon,
             "Vertical": orgCtrl.Vertical,
-            "Wrap": (mergeCell.isAutoHeight)?'T':'F',
+            "Wrap": (mergeCell.isAutoHeight) ? 'T' : 'F',
             "VerticalForExcel": "center"
         } as IControlSubCollection;
     } else {
         mergeCell.control.Shrink = "T";
         mergeCell.control.Vertical = "top";
-        mergeCell.control.Wrap = (mergeCell.isAutoHeight)?'T':'F',
-        mergeCell.control.VerticalForExcel = "center";
+        mergeCell.control.Wrap = (mergeCell.isAutoHeight) ? 'T' : 'F',
+            mergeCell.control.VerticalForExcel = "center";
         orgCtrl = mergeCell.control;
     }
     if (mergeCell.isAutoHeight) {
@@ -1488,7 +1488,7 @@ function setupControl(mergeCell: ICell, controls: IControlCollection) {
     return orgCtrl;
 }
 
-function combineAutoHeightCells(prepareObj: IPageAreaObj|{}, page: number, controls: IControlCollection) {
+function combineAutoHeightCells(prepareObj: IPageAreaObj | {}, page: number, controls: IControlCollection) {
     let rst = [];
     if ((prepareObj as IPageAreaObj).cellsArr) {
         //merge cells' value and area
@@ -1497,7 +1497,7 @@ function combineAutoHeightCells(prepareObj: IPageAreaObj|{}, page: number, contr
             let sameColCells = (prepareObj as IPageAreaObj).pageCellObj[mergeKey]; //左右位置相同的Cell先放在一起,统一处理
             if (sameColCells.length > 1) {
                 //强转格式,此处是强制把本来是字符串的control属性转化为对象,by lish
-                let firstMergeCell:ICell = {...sameColCells[0].cell , control:{} as IControlSubCollection};
+                let firstMergeCell: ICell = { ...sameColCells[0].cell, control: {} as IControlSubCollection };
                 firstMergeCell.style = firstMergeCell.style.slice(0, firstMergeCell.style.indexOf("_AutoHeightMerge")); //首先还原original style
                 //生成原始对象,并且把对象中的control属性转化为对象
                 let orgCtrl = setupControl(firstMergeCell, controls);
@@ -1515,7 +1515,7 @@ function combineAutoHeightCells(prepareObj: IPageAreaObj|{}, page: number, contr
                         rst.push(sameColCells[i].cellIdx); //记下Cell的位置,在函数外消除
                         //如果到了最后一条数据,得判断firstMergeCell是否满格(即数据是满的,有可能有些格数据也有折行但不是自动行高判断指标)
                         //不满格的cell的Vertical强制设置为 'center'
-                        if (i === sameColCells.length - 1 && validValueAmt !== fullValidValueAmt && (fullValidValueAmt / validValueAmt > 2.5) ) {
+                        if (i === sameColCells.length - 1 && validValueAmt !== fullValidValueAmt && (fullValidValueAmt / validValueAmt > 2.5)) {
                             firstMergeCell.control.VerticalForExcel = 'center';
                         }
                     } else {
@@ -1535,7 +1535,7 @@ function combineAutoHeightCells(prepareObj: IPageAreaObj|{}, page: number, contr
             }
         }
         rst.sort(function (i1, i2) {
-            return (i1 > i2)?1:-1;
+            return (i1 > i2) ? 1 : -1;
         });
     }
     return rst;

+ 1 - 1
report/src/core/jpc_function.ts

@@ -8,7 +8,7 @@ const JpcFunc = {
         let rst = [];
         if (rptTpl.计算式_集合) {
             for (let i = 0; i < rptTpl.计算式_集合.length; i++) {
-                let item = {...rptTpl.计算式_集合[i]}; // 新的copy规范
+                let item = { ...rptTpl.计算式_集合[i] }; // 新的copy规范
                 // let propArr = Object.getOwnPropertyNames(rptTpl[JV.NODE_FORMULAS][i]);
                 // for (let key of propArr) {
                 //     item[key] = rptTpl[JV.NODE_FORMULAS][i][key];

+ 7 - 7
report/src/core/jpc_param.ts

@@ -1,6 +1,6 @@
 'use strict';
 
-import { IRptTpl,IOrgGroupField } from '../interface/basic';
+import { IRptTpl, IOrgGroupField } from '../interface/basic';
 import JV from './jpc_value_define';
 
 const JpcParam = {
@@ -14,14 +14,14 @@ const JpcParam = {
         }
         return JpcParamResult;
     },
-    createSingle(paramNode: IOrgGroupField, parentObj: Record<string,IOrgGroupField|{}>, sequence: number) {
+    createSingle(paramNode: IOrgGroupField, parentObj: Record<string, IOrgGroupField | {}>, sequence: number) {
         if (paramNode && paramNode.ID) {
             const item = {
-                ID : paramNode.ID,
-                Name : paramNode.Name,
-                DataType : paramNode.DataType,
-                Default_Value : (paramNode.Default_Value) ? paramNode.Default_Value : null,
-                DataSeq : sequence
+                ID: paramNode.ID,
+                Name: paramNode.Name,
+                DataType: paramNode.DataType,
+                Default_Value: (paramNode.Default_Value) ? paramNode.Default_Value : null,
+                DataSeq: sequence
             };
             parentObj[JV.PROP_ID + '_' + paramNode.ID] = item;
         }

+ 6 - 6
report/src/core/jpc_rte.ts

@@ -12,9 +12,9 @@ import { IDataObj_props } from '../interface/enum';
 const JE = {
     $STR_UTIL: strUtil,
     $SC_MATH_UTIL: scMathUtil,
-    F: function(fID: number, $CURRENT_RPT: ICurrent_RPT) {
+    F: function (fID: number, $CURRENT_RPT: ICurrent_RPT) {
         let rst = null;
-        if ($CURRENT_RPT && ($CURRENT_RPT.fields.从数据指标_集合[JV.PROP_ID +"_" + fID])) {
+        if ($CURRENT_RPT && ($CURRENT_RPT.fields.从数据指标_集合[JV.PROP_ID + "_" + fID])) {
             rst = $CURRENT_RPT.fields.从数据指标_集合[JV.PROP_ID + "_" + fID];
         } else if ($CURRENT_RPT && ($CURRENT_RPT.fields.主数据指标_集合[JV.PROP_ID + "_" + fID])) {
             rst = $CURRENT_RPT.fields.主数据指标_集合[JV.PROP_ID + "_" + fID];
@@ -33,7 +33,7 @@ const JE = {
         }
         return rst;
     },
-    P: function(pID: number, $CURRENT_RPT: any) {//暂定
+    P: function (pID: number, $CURRENT_RPT: any) {//暂定
         let rst = null;
         if ($CURRENT_RPT && ($CURRENT_RPT.params[JV.PROP_ID + "_" + pID])) {
             rst = $CURRENT_RPT.params[JV.PROP_ID + "_" + pID];
@@ -56,7 +56,7 @@ const JE = {
         }
         return rst;
     },
-    getFieldDataLen: function(field: Fields, dataObj: IDataObj) {
+    getFieldDataLen: function (field: Fields, dataObj: IDataObj) {
         let rst = 0;
         if (field.DataNodeName === 'NA') {
             if (!field.data_field) {
@@ -121,7 +121,7 @@ const JE = {
         if (rst === null || rst === undefined) rst = newVal;
         return rst;
     },
-    getFieldValueArray: function(field: Fields, dataObj: IDataObj) {
+    getFieldValueArray: function (field: Fields, dataObj: IDataObj) {
         let rst = null;
         if (field.DataNodeName === 'NA') {
             if (!field.data_field) {
@@ -140,7 +140,7 @@ const JE = {
         if (rst === null || rst === undefined) rst = [];
         return rst;
     },
-    setFieldValueArray: function(field: Fields, dataObj: IDataObj, newArr: number[]) {
+    setFieldValueArray: function (field: Fields, dataObj: IDataObj, newArr: number[]) {
         if (newArr instanceof Array) {
             if (field.DataNodeName === 'NA') {
                 field.data_field = newArr;

+ 1 - 1
report/src/interface/basic.ts

@@ -256,7 +256,7 @@ export interface IFlowTab {
     checkGrpTxtOutEvent: ($RUN_TYPE: string, $TEXT: Fields, $TIMES: number, $CURRENT_RPT: ICurrent_RPT) => void
     combinePageCells: (rstPageCells: ICell[], verticalCombinePos: any[], horizonCombinePos: any[]) => void;
     commonTabRestOutput: (dataObj: IDataObj, page: number, segIdx: number, bands: IBands, band: IBandDetail, unitFactor: number, tab: { BandName: string, text_s?: Fields[], text?: string }, multiColIdx: number) => Fields[]
-   
+
 }
 interface IParam {
     DataSeq: number;

+ 8 - 8
report/src/interface/enum.ts

@@ -1,13 +1,13 @@
 export declare enum IDataObj_props {
-    detail_data='detail_data',
-    detail_data_ex='detail_data_ex',
-    discrete_data='discrete_data',
-    master_data='master_data',
-    master_data_ex='master_data_ex',
+    detail_data = 'detail_data',
+    detail_data_ex = 'detail_data_ex',
+    discrete_data = 'discrete_data',
+    master_data = 'master_data',
+    master_data_ex = 'master_data_ex',
 }
 
-export declare enum IEvent_type{
-    GRP_ON_CREATE='GRP_ON_CREATE', 
-    FLOW_CONTENT_ON_CREATE= 'FLOW_CONTENT_ON_CREATE'
+export declare enum IEvent_type {
+    GRP_ON_CREATE = 'GRP_ON_CREATE',
+    FLOW_CONTENT_ON_CREATE = 'FLOW_CONTENT_ON_CREATE'
 }
 export default {}