| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174 | 
							- 'use strict';
 
- const JV = require('../jpc_value_define');
 
- const strUtil = require('../../public/stringUtil');
 
- const REG1 = new RegExp('\n\r', 'g');
 
- const REG2 = new RegExp('\r\n', 'g');
 
- const REG3 = new RegExp('\n', 'g');
 
- const REG4 = new RegExp('\r', 'g');
 
- const JpcFieldHelper = {
 
-     getValue(dataField, valueIdx) {
 
-         let rst = '';
 
-         if (dataField && (dataField.length > valueIdx) && (valueIdx >= 0)) {
 
-             rst = dataField[valueIdx];
 
-         }
 
-         // if (typeof rst === 'string') {
 
-         //     rst = rst.replace(REG1, '|').replace(REG2, '|').replace(REG3, '|').replace(REG4, '|');
 
-         // }
 
-         return rst;
 
-     },
 
-     setValue(dataField, valueIdx, newValue) {
 
-         if (dataField && (dataField.length > valueIdx) && (valueIdx >= 0)) {
 
-             dataField[valueIdx] = newValue;
 
-         }
 
-     },
 
-     resetSumFormat(ref_tab_fields, sum_tab_field) {
 
-         let rst = false;
 
-         if (ref_tab_fields && ref_tab_fields.length > 0) {
 
-             for (const tab_field of ref_tab_fields) {
 
-                 if (tab_field[JV.PROP_FIELD_ID] === sum_tab_field[JV.PROP_FIELD_ID]) {
 
-                     rst = true;
 
-                     if (tab_field[JV.PROP_FORMAT]) {
 
-                         sum_tab_field[JV.PROP_FORMAT] = tab_field[JV.PROP_FORMAT];
 
-                     }
 
-                     break;
 
-                 }
 
-             }
 
-         }
 
-         return rst;
 
-     },
 
-     resetFormat(tab_field, map_field, customizeCfg) {
 
-         let rst = false;
 
-         if (map_field && map_field[JV.PROP_PRECISION] && map_field[JV.PROP_PRECISION].type === 'fixed') {
 
-             const formatStrs = ['#'];
 
-             const ffStr = (customizeCfg && customizeCfg.fillZero) ? '0' : '#';
 
-             for (let idx = 0; idx < parseInt(map_field[JV.PROP_FIXED_PRECISION_AMT]); idx++) {
 
-                 if (idx === 0) {
 
-                     formatStrs.push('.');
 
-                 }
 
-                 formatStrs.push(ffStr);
 
-             }
 
-             if (tab_field[JV.PROP_FORMAT] && tab_field[JV.PROP_FORMAT].indexOf(',') >= 0) {
 
-                 tab_field[JV.PROP_FORMAT] = ',' + formatStrs.join('');
 
-             } else {
 
-                 tab_field[JV.PROP_FORMAT] = formatStrs.join('');
 
-             }
 
-             map_field[JV.PROP_FORMAT] = tab_field[JV.PROP_FORMAT]; // 这里顺手把format也赋给map_field,后期统计用得着
 
-             rst = true;
 
-         } else if (tab_field[JV.PROP_FORMAT] && tab_field[JV.PROP_FORMAT].indexOf('#') >= 0 && (customizeCfg && customizeCfg.fillZero)) {
 
-             tab_field[JV.PROP_FORMAT] = strUtil.replaceAll(tab_field[JV.PROP_FORMAT], '#', '0');
 
-             map_field[JV.PROP_FORMAT] = tab_field[JV.PROP_FORMAT];
 
-             rst = true;
 
-         }
 
-         return rst;
 
-     },
 
-     resetFlexibleFormat(tab_field, ref_field_data, flexiblePrecisionRefObj, valueIdx, customizeCfg) {
 
-         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_其他未列单位'];
 
-         }
 
-         const formatStrs = ['#.'];
 
-         const ffStr = (customizeCfg && customizeCfg.fillZero) ? '0' : '#';
 
-         for (let idx = 0; idx < precisionAmt; idx++) {
 
-             formatStrs.push(ffStr);
 
-         }
 
-         if (tab_field[JV.PROP_FORMAT] && tab_field[JV.PROP_FORMAT].indexOf(',') >= 0) {
 
-             tab_field[JV.PROP_FORMAT] = ',' + formatStrs.join('');
 
-         } else {
 
-             tab_field[JV.PROP_FORMAT] = formatStrs.join('');
 
-         }
 
-     },
 
-     decorateValue(cell, controls) {
 
-         if (controls) {
 
-             const showZero = controls[cell[JV.PROP_CONTROL]][JV.PROP_SHOW_ZERO];
 
-             if (showZero && showZero === 'F') {
 
-                 const val = parseFloat(cell[JV.PROP_VALUE]);
 
-                 if (val === 0) {
 
-                     let chkRst = true;
 
-                     if (typeof cell[JV.PROP_VALUE] === 'string' && cell[JV.PROP_VALUE].length > 1) {
 
-                         for (let idx = 0; idx < cell[JV.PROP_VALUE].length; idx++) {
 
-                             if (cell[JV.PROP_VALUE][idx] !== '0' && cell[JV.PROP_VALUE][idx] !== '.') {
 
-                                 chkRst = false;
 
-                                 break;
 
-                             }
 
-                         }
 
-                     }
 
-                     if (chkRst) cell[JV.PROP_VALUE] = '';
 
-                 }
 
-             }
 
-         }
 
-     },
 
-     findAndPutDataFieldIdx(rptTpl, tab_fields, rstFields, rstFieldsIdx, isEx) {
 
-         // 通过FieldID找到相关映射指标的位置IDX并记录下来,方便后续引用
 
-         if (tab_fields) {
 
-             const DTL_STR = isEx ? JV.NODE_DETAIL_FIELDS_EX : JV.NODE_DETAIL_FIELDS;
 
-             const detail_fields = rptTpl[JV.NODE_FIELD_MAP][DTL_STR];
 
-             for (let i = 0; i < tab_fields.length; i++) {
 
-                 let isFounded = false;
 
-                 for (let j = 0; j < detail_fields.length; j++) {
 
-                     if (tab_fields[i][JV.PROP_FIELD_ID] === detail_fields[j][JV.PROP_ID]) {
 
-                         isFounded = true;
 
-                         if (rstFields) rstFields.push(tab_fields[i]);
 
-                         if (rstFieldsIdx) rstFieldsIdx.push(j);
 
-                         break;
 
-                     }
 
-                 }
 
-                 if (!isFounded) {
 
-                     if (rstFields) rstFields.push(tab_fields[i]);
 
-                     if (rstFieldsIdx) {
 
-                         if (rptTpl[JV.NODE_NO_MAPPING_FIELDS] && rptTpl[JV.NODE_NO_MAPPING_FIELDS].length > 0) {
 
-                             for (const discretField of rptTpl[JV.NODE_NO_MAPPING_FIELDS]) {
 
-                                 if (discretField[JV.PROP_ID] === tab_fields[i][JV.PROP_FIELD_ID]) {
 
-                                     rstFieldsIdx.push(discretField);
 
-                                     isFounded = true;
 
-                                     break;
 
-                                 }
 
-                             }
 
-                         } else {
 
-                             rstFieldsIdx.push(JV.BLANK_FIELD_INDEX);
 
-                         }
 
-                     }
 
-                 }
 
-             }
 
-         }
 
-     },
 
-     findAutoHeightFieldIdx(rptTpl, tab_fields, rstFieldsIdx, isEx) {
 
-         if (tab_fields) {
 
-             const DTL_STR = isEx ? JV.NODE_DETAIL_FIELDS_EX : JV.NODE_DETAIL_FIELDS;
 
-             const detail_fields = rptTpl[JV.NODE_FIELD_MAP][DTL_STR];
 
-             for (let i = 0; i < tab_fields.length; i++) {
 
-                 if (tab_fields[i][JV.PROP_IS_AUTO_HEIGHT]) {
 
-                     for (let j = 0; j < detail_fields.length; j++) {
 
-                         if (tab_fields[i][JV.PROP_FIELD_ID] === detail_fields[j][JV.PROP_ID]) {
 
-                             const item = [];
 
-                             item[0] = j;
 
-                             item[1] = tab_fields[i];
 
-                             rstFieldsIdx.push(item);
 
-                             break;
 
-                         }
 
-                     }
 
-                 }
 
-             }
 
-             if (!isEx) {
 
-                 const dis_detail_fields = rptTpl[JV.NODE_NO_MAPPING_FIELDS];
 
-                 for (let i = 0; i < tab_fields.length; i++) {
 
-                     if (tab_fields[i][JV.PROP_IS_AUTO_HEIGHT]) {
 
-                         for (let j = 0; j < dis_detail_fields.length; j++) {
 
-                             if (tab_fields[i][JV.PROP_FIELD_ID] === dis_detail_fields[j][JV.PROP_ID]) {
 
-                                 const item = [];
 
-                                 item[0] = JV.BLANK_FIELD_INDEX;
 
-                                 item[1] = tab_fields[i];
 
-                                 rstFieldsIdx.push(item);
 
-                                 break;
 
-                             }
 
-                         }
 
-                     }
 
-                 }
 
-             }
 
-         }
 
-     },
 
- };
 
- module.exports = JpcFieldHelper;
 
 
  |