浏览代码

code sync for cross-tab row ad-hoc

TonyKang 6 年之前
父节点
当前提交
de5b625a65

+ 10 - 6
modules/reports/rpt_component/jpc_cross_tab.js

@@ -363,7 +363,9 @@ JpcCrossTabSrv.prototype.createNew = function(){
         return rst;
     };
     JpcCrossTabResult.outputPreviewRowTab = function(rptTpl, bands, controls, $CURRENT_RPT, customizeCfg, maxRowRec, unitFactor) {
-        return this.private_OutputPreviewCommon(rptTpl, bands, controls, $CURRENT_RPT, customizeCfg, maxRowRec, 1, rptTpl[JV.NODE_CROSS_INFO][JV.NODE_CROSS_ROW], unitFactor);
+        let rst = this.private_OutputPreviewCommon(rptTpl, bands, controls, $CURRENT_RPT, customizeCfg, maxRowRec, 1, rptTpl[JV.NODE_CROSS_INFO][JV.NODE_CROSS_ROW], unitFactor);
+        rst = rst.concat(this.private_OutputPreviewCommon(rptTpl, bands, controls, $CURRENT_RPT, customizeCfg, maxRowRec, 1, rptTpl[JV.NODE_CROSS_INFO][JV.NODE_CROSS_ROW_AD_HOC], unitFactor));
+        return rst;
     };
     JpcCrossTabResult.outputPreviewColTab = function(rptTpl, bands, controls, $CURRENT_RPT, customizeCfg, maxColRec, unitFactor) {
         return this.private_OutputPreviewCommon(rptTpl, bands, controls, $CURRENT_RPT, customizeCfg, 1, maxColRec, rptTpl[JV.NODE_CROSS_INFO][JV.NODE_CROSS_COL], unitFactor);
@@ -384,7 +386,7 @@ JpcCrossTabSrv.prototype.createNew = function(){
     };
     JpcCrossTabResult.private_OutputPreviewCommon = function(rptTpl, bands, controls, $CURRENT_RPT, customizeCfg, maxRowRec, maxColRec, tab, unitFactor) {
         let me = this, rst = [];
-        let band = bands[tab[JV.PROP_BAND_NAME]];
+        let band = (tab)?bands[tab[JV.PROP_BAND_NAME]]:null;
         if (band) {
             let tab_fields = tab[JV.PROP_CROSS_FIELDS];
             for (let rowIdx = 0; rowIdx < maxRowRec; rowIdx++) {
@@ -449,7 +451,9 @@ JpcCrossTabSrv.prototype.createNew = function(){
             JpcBandHelper.setBandArea(bands, rptTpl, me.pageStatusLst[page - 1]);
             //2. start to output detail-part
             //2.1 Row-Tab
-            tabRstLst.push(me.outputRowTab(rptTpl, dataObj, page, bands, unitFactor, controls, $CURRENT_RPT, customizeCfg));
+            //tabRstLst.push(me.outputRowTab(rptTpl, dataObj, page, bands, unitFactor, controls, $CURRENT_RPT, customizeCfg));
+            tabRstLst.push(me.outputRowTabCommon(rptTpl, dataObj, page, bands, JV.NODE_CROSS_ROW, unitFactor, controls, $CURRENT_RPT, customizeCfg));
+            tabRstLst.push(me.outputRowTabCommon(rptTpl, dataObj, page, bands, JV.NODE_CROSS_ROW_AD_HOC, unitFactor, controls, $CURRENT_RPT, customizeCfg));
             //2.2 Col-Tab
             tabRstLst.push(me.outputColTab(rptTpl, dataObj, page, bands, unitFactor, controls, $CURRENT_RPT, customizeCfg));
             //2.3 Content-Tab
@@ -469,10 +473,10 @@ JpcCrossTabSrv.prototype.createNew = function(){
         }
         return rst;
     };
-    JpcCrossTabResult.outputRowTab = function(rptTpl, dataObj, page, bands, unitFactor, controls, $CURRENT_RPT, customizeCfg) {
+    JpcCrossTabResult.outputRowTabCommon = function(rptTpl, dataObj, page, bands, tabStr, unitFactor, controls, $CURRENT_RPT, customizeCfg) {
         let me = this, rst = [];
-        let tab = rptTpl[JV.NODE_CROSS_INFO][JV.NODE_CROSS_ROW];
-        let band = bands[tab[JV.PROP_BAND_NAME]];
+        let tab = rptTpl[JV.NODE_CROSS_INFO][tabStr];
+        let band = (tab)?bands[tab[JV.PROP_BAND_NAME]]:null;
         if (band) {
             let pageStatus = me.pageStatusLst[page - 1];
             if (pageStatus[band[JV.BAND_PROP_DISPLAY_TYPE]] === true) {

+ 1 - 0
public/web/rpt_value_define.js

@@ -10,6 +10,7 @@ const JV = {
     NODE_CROSS_COL_SUM: "交叉列合计",
     NODE_CROSS_ROW_EXT: "交叉行拓展",
     NODE_CROSS_ROW_SUM_EXT: "交叉行拓展合计",
+    NODE_CROSS_ROW_AD_HOC: "交叉行AD_HOC",
     NODE_FIELD_MAP: "指标_数据_映射",
     NODE_DISCRETE_FIELDS: "离散指标_集合",
     NODE_NO_MAPPING_FIELDS: "无映射离散指标_集合",

+ 1 - 0
web/maintain/report/js/rpt_tpl_data_map.js

@@ -170,6 +170,7 @@ let dataInfoMapTreeOprObj = {
     buildCrossData: function (rptTpl) {
         let me = this, rst = [];
         let rootRowNode = {Name: JV.NODE_CROSS_ROW, type: "cross_row", isParent: true, Title: ""};
+        // let rootRowAdHocNode = {Name: JV.NODE_CROSS_ROW, type: "cross_row", isParent: true, Title: ""};
         let rootColNode = {Name: JV.NODE_CROSS_COL, type: "cross_col", isParent: true, Title: "", items: [{"Name": "字段集", "items": [], "isParent": true, Title: ""}, {"Name": "文本集", "items": [], "isParent": true, Title: ""}]};
         let rootFieldNode = {Name: JV.NODE_CROSS_CONTENT, type: "cross_field_data", isParent: true, Title: ""};
         let rootColSumNode = {Name: JV.NODE_CROSS_COL_SUM, type: "cross_col_sum", isParent: true, Title: ""};