TonyKang 7 роки тому
батько
коміт
30f52f6ff2

+ 21 - 12
modules/reports/rpt_component/jpc_cross_tab.js

@@ -109,7 +109,7 @@ JpcCrossTabSrv.prototype.createNew = function(){
             let sIDX = 0;
             //1. prepare and sort by tab-field
             let fields = [];
-            JpcFieldHelper.findAndPutDataFieldIdx(rptTpl, tab[JV.TAB_CROSS_FIELDS], fields, rstFieldsIdx);
+            JpcFieldHelper.findAndPutDataFieldIdx(rptTpl, tab[JV.PROP_CROSS_FIELDS], fields, rstFieldsIdx);
             let data_details = dataObj[JV.DATA_DETAIL_DATA];
             JpcCrossTabHelper.sortTabFields(fields, rstFieldsIdx, data_details, dataSeq);
             //2. distinguish sort tab fields value
@@ -148,7 +148,7 @@ JpcCrossTabSrv.prototype.createNew = function(){
         let result = [];
         let tab = rptTpl[JV.NODE_CROSS_INFO][JV.NODE_CROSS_CONTENT];
         if (tab) {
-            JpcFieldHelper.findAndPutDataFieldIdx(rptTpl, tab[JV.TAB_CROSS_FIELDS], null, rstFieldsIdx);
+            JpcFieldHelper.findAndPutDataFieldIdx(rptTpl, tab[JV.PROP_CROSS_FIELDS], null, rstFieldsIdx);
         }
         for (let i = 0; i < rowSeq.length; i++) {
             let rl = rowSeq[i], cl = colSeq[i];
@@ -201,7 +201,7 @@ JpcCrossTabSrv.prototype.createNew = function(){
         me.sortedRowSequence = private_SortAndOptimize(rptTpl, dataObj, dataSeq, JV.NODE_CROSS_ROW, me.row_fields_idx);
         me.sortedColSequence = private_SortAndOptimize(rptTpl, dataObj, dataSeq, JV.NODE_CROSS_COL, me.col_fields_idx);
         me.sortedContentSequence = private_SortForDisplayContent(rptTpl, me.sortedRowSequence, me.sortedColSequence, me.content_fields_idx);
-        JpcFieldHelper.findAndPutDataFieldIdx(rptTpl, rptTpl[JV.NODE_CROSS_INFO][JV.NODE_CROSS_COL_SUM][JV.TAB_CROSS_FIELDS], null, me.col_sum_fields_idx);
+        JpcFieldHelper.findAndPutDataFieldIdx(rptTpl, rptTpl[JV.NODE_CROSS_INFO][JV.NODE_CROSS_COL_SUM][JV.PROP_CROSS_FIELDS], null, me.col_sum_fields_idx);
         //pre-sum the data(for col sum display)
         let data_details = dataObj[JV.DATA_DETAIL_DATA],
             data_fields = [];
@@ -240,8 +240,8 @@ JpcCrossTabSrv.prototype.createNew = function(){
             maxRowRec = JpcCrossTabHelper.getMaxRowsPerPage(bands, rptTpl);
             maxColRec = JpcCrossTabHelper.getMaxColsPerPage(bands, rptTpl);
         }
-        JpcFieldHelper.findAndPutDataFieldIdx(rptTpl, rptTpl[JV.NODE_CROSS_INFO][JV.NODE_CROSS_ROW_EXT][JV.TAB_CROSS_FIELDS], null, me.row_extension_fields_idx);
-        JpcFieldHelper.findAndPutDataFieldIdx(rptTpl, rptTpl[JV.NODE_CROSS_INFO][JV.NODE_CROSS_ROW_SUM_EXT][JV.TAB_CROSS_FIELDS], null, me.row_sum_extension_fields_idx);
+        JpcFieldHelper.findAndPutDataFieldIdx(rptTpl, rptTpl[JV.NODE_CROSS_INFO][JV.NODE_CROSS_ROW_EXT][JV.PROP_CROSS_FIELDS], null, me.row_extension_fields_idx);
+        JpcFieldHelper.findAndPutDataFieldIdx(rptTpl, rptTpl[JV.NODE_CROSS_INFO][JV.NODE_CROSS_ROW_SUM_EXT][JV.PROP_CROSS_FIELDS], null, me.row_sum_extension_fields_idx);
         if (me.paging_option === JV.PAGING_OPTION_INFINITY) {
             /*
             rst = segCnt;
@@ -323,7 +323,10 @@ JpcCrossTabSrv.prototype.createNew = function(){
     };
     JpcCrossTabResult.outputAsPreviewPage = function (rptTpl, bands, controls, $CURRENT_RPT) {
         let me = this, rst = [];
-        //...
+        let pageStatus = [true, true, true, true, true, true, true, true];
+        me.pageStatusLst.push(pageStatus);
+        // JpcFieldHelper.findAndPutDataFieldIdx(rptTpl, rptTpl[JV.NODE_FLOW_INFO][JV.NODE_FLOW_CONTENT][JV.PROP_FLOW_FIELDS], null, me.disp_fields_idx, false);
+        JpcBandHelper.setBandArea(bands, rptTpl, pageStatus, true, false);
         return rst;
     };
     JpcCrossTabResult.outputAsSimpleJSONPage = function(rptTpl, dataObj, page, bands, controls, $CURRENT_RPT, customizeCfg) {
@@ -384,6 +387,12 @@ JpcCrossTabSrv.prototype.createNew = function(){
         }
         return rst;
     };
+    JpcCrossTabResult.outputPreviewRowTab = function(rptTpl, bands, controls, $CURRENT_RPT, customizeCfg) {
+        //
+    };
+    JpcCrossTabResult.outputPreviewColTab = function(rptTpl, bands, controls, $CURRENT_RPT, customizeCfg) {
+        //
+    };
     JpcCrossTabResult.outputRowTab = function(rptTpl, dataObj, page, bands, unitFactor, controls, $CURRENT_RPT, customizeCfg) {
         let me = this, rst = [];
         let tab = rptTpl[JV.NODE_CROSS_INFO][JV.NODE_CROSS_ROW];
@@ -391,7 +400,7 @@ JpcCrossTabSrv.prototype.createNew = function(){
         if (band) {
             let pageStatus = me.pageStatusLst[page - 1];
             if (pageStatus[band[JV.BAND_PROP_DISPLAY_TYPE]] === true) {
-                let tab_fields = tab[JV.TAB_CROSS_FIELDS];
+                let tab_fields = tab[JV.PROP_CROSS_FIELDS];
                 let data_details = dataObj[JV.DATA_DETAIL_DATA];
                 let valuesIdx = me.dispValueIdxLst_Row[page - 1];
                 let serialsIdx = me.dispSerialIdxLst_Row[page - 1];
@@ -431,7 +440,7 @@ JpcCrossTabSrv.prototype.createNew = function(){
         if (band) {
             let pageStatus = me.pageStatusLst[page - 1];
             if (pageStatus[band[JV.BAND_PROP_DISPLAY_TYPE]] === true) {
-                let tab_fields = tab[JV.TAB_CROSS_FIELDS];
+                let tab_fields = tab[JV.PROP_CROSS_FIELDS];
                 let data_details = dataObj[JV.DATA_DETAIL_DATA];
                 let valuesIdx = me.dispValueIdxLst_Col[page - 1];
                 let flexiblePrecisionRefObj = null, flexibleRefField = null, precision_ref_data = null;
@@ -482,7 +491,7 @@ JpcCrossTabSrv.prototype.createNew = function(){
         if (band) {
             let pageStatus = me.pageStatusLst[page - 1];
             if (pageStatus[band[JV.BAND_PROP_DISPLAY_TYPE]] === true) {
-                let tab_fields = tab[JV.TAB_CROSS_FIELDS];
+                let tab_fields = tab[JV.PROP_CROSS_FIELDS];
                 let data_details = dataObj[JV.DATA_DETAIL_DATA];
                 let contentValuesIdx = me.dispValueIdxLst_Content[page - 1];
                 let flexiblePrecisionRefObj = null, flexibleRefField = null, precision_ref_data = null;
@@ -524,7 +533,7 @@ JpcCrossTabSrv.prototype.createNew = function(){
         if (band) {
             let pageStatus = me.pageStatusLst[page - 1];
             if (pageStatus[band[JV.BAND_PROP_DISPLAY_TYPE]] === true) {
-                let tab_fields = tab[JV.TAB_CROSS_FIELDS];
+                let tab_fields = tab[JV.PROP_CROSS_FIELDS];
                 for (let i = 0; i < me.dispSumValueLst_Col[page - 1].length; i++) {
                     if (me.dispSumValueLst_Col[page - 1][i] !== null) {
                         for (let j = 0; j < me.dispSumValueLst_Col[page - 1][i].length; j++) {
@@ -562,7 +571,7 @@ JpcCrossTabSrv.prototype.createNew = function(){
         if (band) {
             let pageStatus = me.pageStatusLst[page - 1];
             if (pageStatus[band[JV.BAND_PROP_DISPLAY_TYPE]] === true) {
-                let tab_fields = tab[JV.TAB_CROSS_FIELDS],
+                let tab_fields = tab[JV.PROP_CROSS_FIELDS],
                     data_details = dataObj[JV.DATA_DETAIL_DATA],
                     valuesIdx = me.dispValueIdxLst_Col[page - 1];
                 for (let i = 0; i < me.row_extension_fields_idx.length; i++) {
@@ -598,7 +607,7 @@ JpcCrossTabSrv.prototype.createNew = function(){
         if (band) {
             let pageStatus = me.pageStatusLst[page - 1];
             if (pageStatus[band[JV.BAND_PROP_DISPLAY_TYPE]] === true && pageStatus[JV.STATUS_CROSS_ROW_END] === true) {
-                let tab_fields = tab[JV.TAB_CROSS_FIELDS],
+                let tab_fields = tab[JV.PROP_CROSS_FIELDS],
                     data_details = dataObj[JV.DATA_DETAIL_DATA],
                     data_fields = [];
                 for (let i = 0; i < me.row_sum_extension_fields_idx.length; i++) {

+ 1 - 1
public/web/rpt_value_define.js

@@ -130,6 +130,7 @@ const JV = {
     PROP_DISCRETE_FIELDS: "discrete_field_s",
     PROP_FLOW_FIELDS: "flow_field_s",
     PROP_BILL_FIELDS: "bill_field_s",
+    PROP_CROSS_FIELDS: "cross_field_s",
     PROP_GROUP_FIELDS: "group_field_s", //用来分组的指标(如按清单、定额etc...)
     PROP_GROUP_LINES: "group_lines",    //显示分组行,因分组的特殊性,分组的数据当成流水数据一样(行高相同),group_lines里的每一条数据占用流水的一整行,里面再细分(指标/text)
     PROP_GROUP_SUM_KEYS: "SumKey_S",
@@ -177,7 +178,6 @@ const JV = {
     PROP_IS_ID: "isID",
     PROP_ID_SEQ: "IDSeq",
 
-    TAB_CROSS_FIELDS: "cross_field_s",
     TAB_FIELD_PROP_SORT: "Sort",
     TAB_FIELD_PROP_SORT_VAL_NOSORT: "no_sort",
     TAB_FIELD_PROP_SORT_VAL_ASC: "ascend",