Browse Source

multi-flow tuning

TonyKang 7 years ago
parent
commit
471c63de07
2 changed files with 3 additions and 88 deletions
  1. 0 86
      modules/reports/rpt_component/jpc_data.js
  2. 3 2
      modules/reports/rpt_component/jpc_ex.js

+ 0 - 86
modules/reports/rpt_component/jpc_data.js

@@ -92,97 +92,11 @@ let JpcData = {
                 }
             };
             if ((rptTpl) && (dataObj)) {
-                //*
                 private_analyse(JV.NODE_MASTER_FIELDS, JV.NODE_DETAIL_FIELDS, JV.DATA_MASTER_DATA, JV.DATA_DETAIL_DATA, me.dataSeq);
                 if (rptTpl[JV.NODE_FLOW_INFO_EX]) {
                     private_analyse(JV.NODE_MASTER_FIELDS_EX, JV.NODE_DETAIL_FIELDS_EX, JV.DATA_MASTER_DATA_EX, JV.DATA_DETAIL_DATA_EX, me.exDataSeq);
                 }
-                /*/
-                //1. get ID fields
-                let masterIDs = [];
-                for (let i = 0; i < rptTpl[JV.NODE_FIELD_MAP][JV.NODE_MASTER_FIELDS].length; i++) {
-                    let mstFieldObj = rptTpl[JV.NODE_FIELD_MAP][JV.NODE_MASTER_FIELDS][i];
-                    if ((mstFieldObj[JV.PROP_IS_ID]) && (mstFieldObj[JV.PROP_IS_ID] === 'T')) {
-                        masterIDs.push({"idx": i, "seq": mstFieldObj[JV.PROP_ID_SEQ]});
-                    }
-                }
-                let detailIDs = [];
-                for (let i = 0; i < rptTpl[JV.NODE_FIELD_MAP][JV.NODE_DETAIL_FIELDS].length; i++) {
-                    let dtlFieldObj = rptTpl[JV.NODE_FIELD_MAP][JV.NODE_DETAIL_FIELDS][i];
-                    if ((dtlFieldObj[JV.PROP_IS_ID]) && (dtlFieldObj[JV.PROP_IS_ID] === 'T')) {
-                        detailIDs.push({"idx": i, "seq": dtlFieldObj[JV.PROP_ID_SEQ]});
-                    }
-                }
-                //2. sort the ID fields
-                if (masterIDs.length > 1) {
-                    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"];
-                    })
-                }
-                //3. prepare data sequence
-                if (masterIDs.length > 0) {
-                    let mst_dt_len = 0, dtl_dt_len = 0, mst_fields = [];
-                    for (let i = 0; i < masterIDs.length; i++) {
-                        mst_fields.push(dataObj[JV.DATA_MASTER_DATA][masterIDs[i]["idx"]]);
-                        mst_dt_len = dataObj[JV.DATA_MASTER_DATA][masterIDs[i]["idx"]].length;
-                    }
-                    let dtl_fields = [];
-                    for (let i = 0; i < detailIDs.length; i++) {
-                        dtl_fields.push(dataObj[JV.DATA_DETAIL_DATA][detailIDs[i]["idx"]]);
-                        dtl_dt_len = dataObj[JV.DATA_DETAIL_DATA][detailIDs[i]["idx"]].length;
-                    }
-                    let sIdx = 0;
-                    let isEqual = true;
-                    for (let i = 0; i < mst_dt_len; i++) {
-                        me.dataSeq.push([]);
-                        //then compare the master/detail ID-field value
-                        for (let j = sIdx; j < dtl_dt_len; j++) {
-                            isEqual = true;
-                            for (let k = 0; k < mst_fields.length; k++) {
-                                if (!(mst_fields[k][i] === dtl_fields[k][j])) {
-                                    isEqual = false;
-                                    break;
-                                }
-                            }
-                            if (isEqual) {
-                                me.dataSeq[i].push(j);
-                            } else {
-                                sIdx = j;
-                                //below logic is for the data robustness purpose, to avoid those strange record(detail level) which could not match even one of the master record!
-                                if (i < mst_dt_len - 1 && j < dtl_dt_len - 1) {
-                                    for (let j1 = j; j1 < dtl_dt_len; j1++) {
-                                        isEqual = true;
-                                        for (let k = 0; k < mst_fields.length; k++) {
-                                            if (!(mst_fields[k][i + 1] === dtl_fields[k][j1])) {
-                                                isEqual = false;
-                                                break;
-                                            }
-                                        }
-                                        if (isEqual) {
-                                            sIdx = j1;
-                                            break;
-                                        }
-                                    }
-                                }
-                                break;
-                            }
-                        }
-                    }
-                } else { //if no master data
-                    let field = dataObj[JV.DATA_DETAIL_DATA][0];
-                    me.dataSeq = [[]];
-                    for (let i = 0; i < field.length; i++) {
-                        me.dataSeq[0].push(i);
-                    }
-                }
-                //*/
             }
-            //alert(3);
         };
         return JpcDataRst;
     }

+ 3 - 2
modules/reports/rpt_component/jpc_ex.js

@@ -187,6 +187,8 @@ JpcExSrv.prototype.createNew = function(){
                     mergedBand[JV.BAND_PROP_STYLE] = band[JV.BAND_PROP_STYLE];
                     rst[JV.BAND_PROP_MERGE_BAND] = mergedBand;
                 }
+            } catch(exception) {
+                console.log(exception);
             } finally {
                 bands = null;
             }
@@ -203,9 +205,8 @@ JpcExSrv.prototype.createNew = function(){
                 if (me.totalPages - me.exTotalPages >= page) {
                     rst.cells = me.flowTab.outputAsSimpleJSONPage(rptTpl, dataObj, page, bands, controls, me);
                 } else {
-                    rst.cells = me.flowTabEx.outputAsSimpleJSONPage(rptTpl, dataObj, page - me.exTotalPages, bands, controls, me);
+                    rst.cells = me.flowTabEx.outputAsSimpleJSONPage(rptTpl, dataObj, page - (me.totalPages - me.exTotalPages), bands, controls, me);
                 }
-                //rst.cells = me.flowTab.outputAsSimpleJSONPage(rptTpl, dataObj, page, bands, controls, me);
             } else if (me.crossTab) {
                 rst.cells = me.crossTab.outputAsSimpleJSONPage(rptTpl, dataObj, page, bands, controls, me);
             } else if (me.billTab) {