TonyKang 7 年之前
父节点
当前提交
2a794b60bd

+ 14 - 10
modules/reports/rpt_component/jpc_flow_tab.js

@@ -124,6 +124,7 @@ JpcFlowTabSrv.prototype.createNew = function(){
         me.dispValueIdxLst = [];
         me.page_seg_map = [];
         me.disp_fields_idx = [];
+        me.disp_fields_ex_idx = [];
         me.seg_sum_fields_idx = [];
         me.seg_sum_tab_fields = [];
         me.page_sum_fields_idx = [];
@@ -373,6 +374,9 @@ JpcFlowTabSrv.prototype.createNew = function(){
         me.paging_option = option||JV.PAGING_OPTION_NORMAL;
         let CURRENT_FLOW_INFO = (me.isEx)?JV.NODE_FLOW_INFO_EX:JV.NODE_FLOW_INFO;
         JpcFieldHelper.findAndPutDataFieldIdx(rptTpl, rptTpl[CURRENT_FLOW_INFO][JV.NODE_FLOW_CONTENT][JV.PROP_FLOW_FIELDS], null, me.disp_fields_idx, me.isEx);
+        if (followTabEx) {
+            JpcFieldHelper.findAndPutDataFieldIdx(rptTpl, rptTpl[JV.NODE_FLOW_INFO_EX][JV.NODE_FLOW_CONTENT][JV.PROP_FLOW_FIELDS], null, me.disp_fields_ex_idx, true);
+        }
         if (me.paging_option === JV.PAGING_OPTION_INFINITY) {
             rst = me.segments.length;
             let pageStatus = [true, true, false, true, true, true, false, false];
@@ -768,20 +772,20 @@ JpcFlowTabSrv.prototype.createNew = function(){
                         }
                     }
                     if (contentValuesIdx[rowIdx][0] === JV.TYPE_FOLLOW_MODE) {
-                        for (let i = 0; i < tab_fields_ex.length; i++) {
-                            let tab_field = tab_fields_ex[i];
-                            let data_field = null;
-                            if (me.disp_fields_idx[i] !== JV.BLANK_FIELD_INDEX) {
-                                data_field = data_details_ex[me.disp_fields_idx[i]];
+                        for (let idx_ex = 0; idx_ex < tab_fields_ex.length; idx_ex++) {
+                            let tab_fieldex = tab_fields_ex[idx_ex];
+                            let data_fieldex = null;
+                            if (me.disp_fields_ex_idx[idx_ex] !== JV.BLANK_FIELD_INDEX) {
+                                data_fieldex = data_details_ex[me.disp_fields_ex_idx[idx_ex]];
                             } else {
-                                data_field = JE.F(tab_field[JV.PROP_FIELD_ID], $CURRENT_RPT);
-                                if (data_field) {
-                                    data_field = data_field[JV.PROP_AD_HOC_DATA];
+                                data_fieldex = JE.F(tab_fieldex[JV.PROP_FIELD_ID], $CURRENT_RPT);
+                                if (data_fieldex) {
+                                    data_fieldex = data_fieldex[JV.PROP_AD_HOC_DATA];
                                 }
                             }
-                            if (!(tab_field[JV.PROP_HIDDEN])) {
+                            if (!(tab_fieldex[JV.PROP_HIDDEN])) {
                                 if (contentValuesIdx[rowIdx][0] === JV.TYPE_FOLLOW_MODE && contentValuesIdx[rowIdx][1] === JV.DISPLAY_VAL_TYPE_NORMAL) {
-                                    rst.push(me.outputTabField(band, tab_field, data_field, contentValuesIdx[rowIdx][2], -1, contentValuesIdx.length, rowIdx, 1, 0, unitFactor, true, controls, multiColIdx));
+                                    rst.push(me.outputTabField(band, tab_fieldex, data_fieldex, contentValuesIdx[rowIdx][2], -1, contentValuesIdx.length, rowIdx, 1, 0, unitFactor, true, controls, multiColIdx));
                                 }
                             }
                         }

+ 4 - 2
modules/reports/util/rpt_construct_data_util.js

@@ -1006,8 +1006,10 @@ function ext_getPropertyByForeignId(foreignIdVal, adHocIdKey, propKey, dftValIfN
         if (foreignIdVal instanceof Array) {
             for (let idVal of foreignIdVal) {
                 isFound = false;
-                for (let i = 0; i < dtObj.data.length; i++) {
-                    let item = (dtObj.data[i]._doc)?dtObj.data[i]._doc:dtObj.data[i];
+                let dataArr = dtObj.data;
+                if (dtObj.moduleName === "projectGLJ") dataArr = dtObj.data.gljList;
+                for (let i = 0; i < dataArr.length; i++) {
+                    let item = (dataArr[i]._doc)?dataArr[i]._doc:dataArr[i];
                     if (item[IdKey] === idVal) {
                         let splitPKey = propKey.split(".");
                         if (splitPKey.length > 1) {

+ 2 - 2
test/unit/reports/test_tpl_09.js

@@ -58,7 +58,7 @@ test('测试 - 测试模板啦: ', function (t) {
         rptTplDataFacade.prepareProjectData(userId_Dft, demoPrjId, filter, function (err, msg, rawDataObj) {
             if (!err) {
                 try {
-                    // fsUtil.writeObjToFile(rawDataObj, "D:/GitHome/ConstructionCost/tmp/rptTplRawDataObject.jsp");
+                    // fsUtil.writeObjToFile(rawDataObj, "D:/GitHome/ConstructionCost/tmp/rptTplRawDataObject_建筑09表.jsp");
                     let tplData = rptDataUtil.assembleData(rawDataObj);
                     //it's time to build the report!!!
                     let printCom = JpcEx.createNew();
@@ -72,7 +72,7 @@ test('测试 - 测试模板啦: ', function (t) {
                     let maxPages = printCom.totalPages;
                     let pageRst = printCom.outputAsSimpleJSONPageArray(rptTpl, tplData, 1, maxPages, defProperties);
                     if (pageRst) {
-                        fsUtil.writeObjToFile(pageRst, "D:/GitHome/ConstructionCost/tmp/rptPageResult.jsp");
+                        // fsUtil.writeObjToFile(pageRst, "D:/GitHome/ConstructionCost/tmp/rptPageResult_建筑09表.jsp");
                     } else {
                         console.log("oh! no pages were created!");
                     }

+ 4 - 3
test/unit/reports/test_tpl_09_1.js

@@ -58,8 +58,9 @@ test('测试 - 测试模板啦: ', function (t) {
         rptTplDataFacade.prepareProjectData(userId_Dft, demoPrjId, filter, function (err, msg, rawDataObj) {
             if (!err) {
                 try {
-                    // fsUtil.writeObjToFile(rawDataObj, "D:/GitHome/ConstructionCost/tmp/rptTplRawDataObject.jsp");
+                    // fsUtil.writeObjToFile(rawDataObj, "D:/GitHome/ConstructionCost/tmp/rptTplRawDataObject_建筑09-1表.jsp");
                     let tplData = rptDataUtil.assembleData(rawDataObj);
+                    // fsUtil.writeObjToFile(tplData, "D:/GitHome/ConstructionCost/tmp/rptTplAssembledData_建筑09-1表.jsp");
                     //it's time to build the report!!!
                     let printCom = JpcEx.createNew();
                     rptTpl[JV.NODE_MAIN_INFO][JV.NODE_PAGE_INFO][JV.PROP_PAGE_SIZE] = pagesize;
@@ -70,7 +71,7 @@ test('测试 - 测试模板啦: ', function (t) {
                     let maxPages = printCom.totalPages;
                     let pageRst = printCom.outputAsSimpleJSONPageArray(rptTpl, tplData, 1, maxPages, defProperties);
                     if (pageRst) {
-                        // fsUtil.writeObjToFile(pageRst, "D:/GitHome/ConstructionCost/tmp/testBuiltPageResult.jsp");
+                        // fsUtil.writeObjToFile(pageRst, "D:/GitHome/ConstructionCost/tmp/testBuiltPageResult_建筑09-1表.jsp");
                     } else {
                         console.log("oh! no pages were created!");
                     }
@@ -131,7 +132,7 @@ test('close the connection', function (t) {
         mongoose.disconnect();
         t.pass('closing db connection');
         t.end();
-    }, 3000);
+    }, 1000);
     // mongoose.disconnect();
     // t.pass('closing db connection');
     // t.end();