let JV = require('../jpc_value_define'); let JpcFieldHelper = { getValue: function(dataField, valueIdx) { let rst = ""; if (dataField && (dataField.length > valueIdx) && (valueIdx >= 0)) { rst = dataField[valueIdx]; } return rst; }, setValue: function(dataField, valueIdx, newValue) { if (dataField && (dataField.length > valueIdx) && (valueIdx >= 0)) { dataField[valueIdx] = newValue; } }, resetFormat: function (tab_field, map_field, customizeCfg) { if (map_field && map_field[JV.PROP_PRECISION] && map_field[JV.PROP_PRECISION].type === "fixed") { let formatStrs = ["#."], ffStr = (customizeCfg && customizeCfg.fillZero)?"0":"#"; for (let idx = 0; idx < parseInt(map_field[JV.PROP_FIXED_PRECISION_AMT]); 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(""); } } }, resetFlexibleFormat: function (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_其他未列单位"]; } let formatStrs = ["#."], 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: function (cell, controls) { if (controls) { let val = cell[JV.PROP_VALUE]; let showZero = controls[cell[JV.PROP_CONTROL]][JV.PROP_SHOW_ZERO]; if (showZero && showZero === 'F' ) { if (0.0 === 1.0 * (0 + val)) { cell[JV.PROP_VALUE] = ""; } } } }, findAndPutDataFieldIdx: function (rptTpl, tab_fields, rstFields, rstFieldsIdx, isEx) { //通过FieldID找到相关映射指标的位置IDX并记录下来,方便后续引用 if (tab_fields) { let DTL_STR = isEx?JV.NODE_DETAIL_FIELDS_EX:JV.NODE_DETAIL_FIELDS; let 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]["FieldID"] === detail_fields[j]["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) rstFieldsIdx.push(JV.BLANK_FIELD_INDEX); } } } }, findAutoHeightFieldIdx: function(rptTpl, tab_fields, rstFieldsIdx, isEx) { if (tab_fields) { let DTL_STR = isEx?JV.NODE_DETAIL_FIELDS_EX:JV.NODE_DETAIL_FIELDS; let 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]["FieldID"] === detail_fields[j]["ID"]) { let item = []; item[0] = j; item[1] = tab_fields[i]; rstFieldsIdx.push(item); break; } } } } } } }; module.exports = JpcFieldHelper;