瀏覽代碼

1. 实现没发布的编办也能显示并增加报表 2. 导出excel时对NaN的精确判断

TonyKang 6 年之前
父節點
當前提交
0fa62a6481

+ 1 - 0
modules/reports/rpt_component/helper/jpc_helper_cross_tab.js

@@ -232,6 +232,7 @@ function getMaxTabCntPerPage(rptTpl, tabNodeName, tabMeasurePropName, measureFor
         }
         rst = Math.floor(measureForCal / maxFieldMeasure);
     }
+    if (rst <= 0) rst = 1;
     return rst;
 };
 

+ 5 - 0
modules/reports/rpt_component/helper/jpc_helper_field.js

@@ -1,4 +1,5 @@
 let JV = require('../jpc_value_define');
+let strUtil = require("../../../../public/stringUtil");
 
 let JpcFieldHelper = {
     getValue: function(dataField, valueIdx) {
@@ -45,6 +46,10 @@ let JpcFieldHelper = {
             }
             map_field[JV.PROP_FORMAT] = tab_field[JV.PROP_FORMAT]; //这里顺手把format也赋给map_field,后期统计用得着
             rst = true;
+        } else if (tab_field[JV.PROP_FORMAT] && tab_field[JV.PROP_FORMAT].indexOf("#") >= 0 && (customizeCfg && customizeCfg.fillZero)) {
+            tab_field[JV.PROP_FORMAT] = strUtil.replaceAll(tab_field[JV.PROP_FORMAT], '#', '0');
+            map_field[JV.PROP_FORMAT] = tab_field[JV.PROP_FORMAT];
+            rst = true;
         }
         return rst;
     },

+ 2 - 1
modules/reports/util/rpt_excel_util.js

@@ -444,7 +444,7 @@ function writeSheet(pageData, sheetData, paperSize, sharedStrList, stylesObj, ap
     };
     let private_getSharedStrIdx = function(val) {
         let strVal = val;
-        if (val === null) {
+        if (val === null || val === undefined || (typeof val === 'number' && isNaN(val))) {
             strVal = "";
         }
         let rst = sharedStrList.indexOf(strVal);
@@ -749,6 +749,7 @@ function writeSheet(pageData, sheetData, paperSize, sharedStrList, stylesObj, ap
                     let valIdx = private_getSharedStrIdx(theShtData.cells[cIdx][JV.PROP_VALUE]);
                     cellObj.v = valIdx;
                 }
+
                 rowIdx2 = theYPos.indexOf(theShtData.cells[cIdx][JV.PROP_AREA][JV.PROP_BOTTOM]);
                 colIdx2 = xPos.indexOf(theShtData.cells[cIdx][JV.PROP_AREA][JV.PROP_RIGHT]);
                 if ((rowIdx2 - rowIdx1 > 1) || (colIdx2 - colIdx1 > 1)) {

+ 5 - 0
public/web/rpt_value_define.js

@@ -21,6 +21,7 @@ const JV = {
     NODE_DETAIL_FIELDS_EX: "从数据指标_拓展集合",
     NODE_BAND_COLLECTION: "布局框_集合",
     NODE_FORMULAS: "计算式_集合",
+    NODE_EVENTS: "事件_集合",
     NODE_DISCRETE_INFO: "离散信息",
     NODE_BILL_INFO: "账单式表_信息",
     NODE_BILL_CONTENT : "账单式表_数据",
@@ -263,6 +264,10 @@ const JV = {
     CAL_TYPE_PERCENTAGE: 0,
     CAL_TYPE_ABSTRACT: 1,
 
+    EVENT_TYPE: ["GRP_ON_CREATE", "FLOW_CONTENT_ON_CREATE"],
+    EVENT_IDX_GRP_ON_CREATE: 0,
+    EVENT_IDX_FLOW_CONTENT_ON_CREATE: 1,
+
     PAGE_ORIENTATION_V_FIRST: 0,
     PAGE_ORIENTATION_H_FIRST: 1,
 

+ 7 - 5
web/maintain/report/js/rpt_tpl_main.js

@@ -38,9 +38,9 @@ let zTreeOprObj = {
         CommonAjax.postEx("report_tpl_api/getCompilationList", params, 20000, true, function(result){
                 //console.log(result);
                 for (let item of result) {
-                    if (item.is_release) {
+                    // if (item.is_release) {
                         $("#compilations").append("<option value='" + item._id + "'>" + item.name + "</option>");
-                    }
+                    // }
                 }
                 // me.getReportTemplateTree($("#compilations").get(0));
                 me.getReportTemplateTreeEx($("#compilations").get(0));
@@ -581,10 +581,12 @@ let zTreeOprObj = {
             // me.chkAndSetDupRefTplIds(result);
             // console.log(dupRefIds);
             let allTopTplNodes = [{userId: "-100", name: "公共模板", items:[], isParent: true, refId: ""}];
-            if (!result[0].hasOwnProperty("refId")) {
-                result[0].refId = "";
+            if (result.length > 0) {
+                if (!result[0].hasOwnProperty("refId")) {
+                    result[0].refId = "";
+                }
+                allTopTplNodes[0].items.push(result[0]);
             }
-            allTopTplNodes[0].items.push(result[0]);
             let userIds = [];
             for (let idx = 1; idx < result.length; idx++) {
                 let item = result[idx];