瀏覽代碼

实现没发布的编办也能显示并增加报表

TonyKang 6 年之前
父節點
當前提交
50ea52f09a

+ 18 - 1
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: "无映射离散指标_集合",
@@ -20,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 : "账单式表_数据",
@@ -67,6 +69,7 @@ const JV = {
     PROP_HANDLE_TYPE_ADD_DUMMY: "增加Dummy数据",
     PROP_HANDLE_TYPE_ADJUST: "数据调整",
     PROP_HANDLE_TYPE_BILLS_DATA_MOVE: "量材数据转移",
+    PROP_HANDLE_TYPE_COMPONENT_MOVE: "组成物数据转移",
     PROP_HANDLE_TYPE_COMPONENT_REPLACEMENT: "组成物替换",
     PROP_HANDLE_TYPE_PRECISION: "合计精度",
 
@@ -120,6 +123,7 @@ const JV = {
     PROP_POSITION: "Position",
     PROP_HIDDEN: "Hidden",
     PROP_IS_SERIAL: "isSerial",
+    PROP_IS_MERGE: "isMerge",
     PROP_COMBINE_TYPE: "combineType",
     PROP_IS_AUTO_HEIGHT: "isAutoHeight",
     PROP_FONT: "font",
@@ -132,6 +136,7 @@ const JV = {
     PROP_FLOW_FIELDS: "flow_field_s",
     PROP_BILL_FIELDS: "bill_field_s",
     PROP_CROSS_FIELDS: "cross_field_s",
+    PROP_CROSS_DISPLAY_ORDER: "cross_display_order",
     PROP_GROUP_FIELDS: "group_field_s", //用来分组的指标(如按清单、定额etc...)
     PROP_GROUP_LINES: "group_lines",    //显示分组行,因分组的特殊性,分组的数据当成流水数据一样(行高相同),group_lines里的每一条数据占用流水的一整行,里面再细分(指标/text)
     PROP_GROUP_SUM_KEYS: "SumKey_S",
@@ -205,13 +210,15 @@ const JV = {
 
     PAGE_STATUS: ["EveryPage","FirstPage", "LastPage", "SegmentStart", "SegmentEnd", "Group", "CrossRowEnd", "CrossColEnd"],
 
-    CONTROL_PROPS: ["Shrink", "ShowZero", "Horizon", "Vertical", "Wrap", "VerticalForExcel"],
+    CONTROL_PROPS: ["Shrink", "ShowZero", "Horizon", "Vertical", "Wrap", "VerticalForExcel", "ShrinkFirst", "CloseOutput"],
     CONTROL_PROP_IDX_SHRINK: 0,
     CONTROL_PROP_IDX_SHOW_ZERO: 1,
     CONTROL_PROP_IDX_HORIZON: 2,
     CONTROL_PROP_IDX_VERTICAL: 3,
     CONTROL_PROP_IDX_WRAP: 4,
     CONTROL_PROP_IDX_VERTICAL_EXCEL: 5,
+    CONTROL_PROP_IDX_SHRINK_FIRST: 6,
+    CONTROL_PROP_IDX_CLOSE_OUTPUT: 7,
     BORDER_STYLE_PROPS: ["LineWeight", "DashStyle", "Color"],
     PROP_LINE_WEIGHT: "LineWeight",
     PROP_DASH_STYLE: "DashStyle",
@@ -246,11 +253,21 @@ const JV = {
         H: ["left", "center", "right"],
         V: ["top", "center", "bottom"]
     },
+    H_ALIGN_IDX_LEFT : 0,
+    H_ALIGN_IDX_CENTER : 1,
+    H_ALIGN_IDX_RIGHT : 2,
+    V_ALIGN_IDX_TOP : 0,
+    V_ALIGN_IDX_CENTER : 1,
+    V_ALIGN_IDX_BOTTOM : 2,
 
     CAL_TYPE:["percentage","abstract"],
     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,
 

+ 30 - 0
web/maintain/report/html/rpt_tpl_dtl_field_loc.html

@@ -18,6 +18,28 @@
                     </div>
                 </div>
             </div>
+            <div class="row" id="element_hidden">
+                <div class="form-group col-md-1">
+                    <label>是否隐藏</label>
+                    <div class="form-check">
+                        <label class="form-check-label">
+                            <input type="checkbox" class="form-check-input" id="eleFieldHidden" onchange="rpt_tpl_cfg_helper.hiddenChange(this)">
+                        </label>
+                    </div>
+                </div>
+                <div class="form-group col-md-2">
+                    <label>交叉行序号字段</label>
+                    <div class="form-check">
+                        <label class="form-check-label">
+                            <input type="checkbox" class="form-check-input" id="eleFieldSerial" onchange="rpt_tpl_cfg_helper.crossRowIsSerialChange(this)">
+                        </label>
+                    </div>
+                </div>
+                <div class="form-group col-md-2">
+                    <label>排序类型</label>
+                    <select class="form-control" id="elementSortType" onchange="rpt_tpl_cfg_helper.crossSortOrderChange(this)"><option>无排序</option><option>升序</option><option>降序</option></select>
+                </div>
+            </div>
             <div class="row" id="element_font">
                 <div class="form-group col-md-3">
                     <label>字体选择</label>
@@ -99,6 +121,14 @@
                             <input type="checkbox" class="form-check-input" id="eleAutoWrap" onchange="" disabled>
                             自动折行
                         </label>
+                        <label class="form-check-label">
+                            <input type="checkbox" class="form-check-input" id="eleIsShrinkFirst" onchange="" disabled>
+                            缩放优先
+                        </label>
+                        <label class="form-check-label">
+                            <input type="checkbox" class="form-check-input" id="eleCloseOutput" onchange="" disabled>
+                            紧密输出
+                        </label>
                     </div>
                 </div>
             </div>

+ 56 - 3
web/maintain/report/js/rpt_tpl_cfg_helper.js

@@ -71,6 +71,7 @@ let rpt_tpl_cfg_helper = {
     checkAndSetSelectedNodeCfg: function (treeNode) {
         let me = rpt_tpl_cfg_helper;
         if (treeNode[JV.PROP_AREA]) {
+            $("#element_hidden")[0].style.display = "";
             $("#element_font")[0].style.display = "";
             $("#element_border")[0].style.display = "";
             $("#element_control")[0].style.display = "";
@@ -103,6 +104,7 @@ let rpt_tpl_cfg_helper = {
                 }
             } else {
                 $("#element_pre_suff")[0].style.display = "none";
+                $("#element_hidden")[0].style.display = "none";
             }
             //setup auto height
             if (treeNode[JV.PROP_IS_AUTO_HEIGHT]) {
@@ -110,6 +112,29 @@ let rpt_tpl_cfg_helper = {
             } else {
                 $("#eleAutoHeight").get(0).checked = false;
             }
+            //setup hidden
+            if (treeNode[JV.PROP_HIDDEN]) {
+                $("#eleFieldHidden").get(0).checked = true;
+            } else {
+                $("#eleFieldHidden").get(0).checked = false;
+            }
+            //setup cross-row serial
+            if (treeNode[JV.PROP_IS_SERIAL]) {
+                $("#eleFieldSerial").get(0).checked = true;
+            } else {
+                $("#eleFieldSerial").get(0).checked = false;
+            }
+            if (treeNode[JV.TAB_FIELD_PROP_SORT] !== null && treeNode[JV.TAB_FIELD_PROP_SORT] !== undefined) {
+                if (treeNode[JV.TAB_FIELD_PROP_SORT] === JV.TAB_FIELD_PROP_SORT_VAL_ASC) {
+                    $("#elementSortType").get(0).selectedIndex = 1;
+                } else if (treeNode[JV.TAB_FIELD_PROP_SORT] === JV.TAB_FIELD_PROP_SORT_VAL_DESC) {
+                    $("#elementSortType").get(0).selectedIndex = 2;
+                } else {
+                    $("#elementSortType").get(0).selectedIndex = 0;
+                }
+            } else {
+                $("#elementSortType").get(0).selectedIndex = 0;
+            }
             //setup font
             let fontDom = $("#elementFonts").get(0);
             fontDom.removeAttribute("disabled");
@@ -136,6 +161,7 @@ let rpt_tpl_cfg_helper = {
             me.private_setup_area(treeNode);
         } else {
             $("#elementFonts").get(0).disabled = "disabled" ;
+            $("#element_hidden")[0].style.display = "none";
             $("#element_font")[0].style.display = "none";
             $("#element_border")[0].style.display = "none";
             $("#element_control")[0].style.display = "none";
@@ -177,6 +203,31 @@ let rpt_tpl_cfg_helper = {
                 $("#element_visual_div3")[0].style.display = "none";
             }
         }
+        if (!zTreeOprObj.isCrossTpl()) {
+            $("#element_hidden")[0].style.display = "none";
+        }
+    },
+    hiddenChange: function (dom) {
+        dataInfoMapTreeOprObj.currentNode[JV.PROP_HIDDEN] = dom.checked;
+    },
+    crossRowIsSerialChange: function (dom) {
+        dataInfoMapTreeOprObj.currentNode[JV.PROP_IS_SERIAL] = dom.checked;
+    },
+    crossSortOrderChange: function (dom) {
+        switch (dom.selectedIndex) {
+            case 0:
+                dataInfoMapTreeOprObj.currentNode[JV.TAB_FIELD_PROP_SORT] = JV.TAB_FIELD_PROP_SORT_VAL_NOSORT;
+                break;
+            case 1:
+                dataInfoMapTreeOprObj.currentNode[JV.TAB_FIELD_PROP_SORT] = JV.TAB_FIELD_PROP_SORT_VAL_ASC;
+                break;
+            case 2:
+                dataInfoMapTreeOprObj.currentNode[JV.TAB_FIELD_PROP_SORT] = JV.TAB_FIELD_PROP_SORT_VAL_DESC;
+                break;
+            default:
+                dataInfoMapTreeOprObj.currentNode[JV.TAB_FIELD_PROP_SORT] = JV.TAB_FIELD_PROP_SORT_VAL_ASC;
+                break;
+        }
     },
     fontChange: function(dom) {
         let me = rpt_tpl_cfg_helper, fontAttr = dom.value;
@@ -292,9 +343,11 @@ let rpt_tpl_cfg_helper = {
 
             $("#elementAlignmentHorizon").get(0).selectedIndex = JV.OUTPUT_ALIGN.H.indexOf(ctrl[JV.CONTROL_PROPS[2]]);
             $("#elementAlignmentVertical").get(0).selectedIndex = JV.OUTPUT_ALIGN.V.indexOf(ctrl[JV.CONTROL_PROPS[3]]);
-            $("#eleShrink").get(0).checked = stringUtil.convertStrToBoolean(ctrl[JV.CONTROL_PROPS[0]]);
-            $("#eleShowZero").get(0).checked = stringUtil.convertStrToBoolean(ctrl[JV.CONTROL_PROPS[1]]);
-            $("#eleAutoWrap").get(0).checked = stringUtil.convertStrToBoolean(ctrl[JV.CONTROL_PROPS[4]]);
+            $("#eleShrink").get(0).checked = stringUtil.convertStrToBoolean(ctrl[JV.CONTROL_PROPS[JV.CONTROL_PROP_IDX_SHRINK]]);
+            $("#eleShowZero").get(0).checked = stringUtil.convertStrToBoolean(ctrl[JV.CONTROL_PROPS[JV.CONTROL_PROP_IDX_SHOW_ZERO]]);
+            $("#eleAutoWrap").get(0).checked = stringUtil.convertStrToBoolean(ctrl[JV.CONTROL_PROPS[JV.CONTROL_PROP_IDX_WRAP]]);
+            $("#eleIsShrinkFirst").get(0).checked = stringUtil.convertStrToBoolean(ctrl[JV.CONTROL_PROPS[JV.CONTROL_PROP_IDX_SHRINK_FIRST]]);
+            $("#eleCloseOutput").get(0).checked = stringUtil.convertStrToBoolean(ctrl[JV.CONTROL_PROPS[JV.CONTROL_PROP_IDX_CLOSE_OUTPUT]]);
         }
     },
     changeAlignment: function(dom, type) {

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

@@ -20,6 +20,7 @@ let dataInfoMapTreeOprObj = {
             }
         }
         // me.treeObj.expandAll(true);
+        $("#element_hidden")[0].style.display = "none";
         $("#element_font")[0].style.display = "none";
         $("#element_border")[0].style.display = "none";
         $("#element_control")[0].style.display = "none";

+ 24 - 0
web/maintain/report/js/rpt_tpl_main.js

@@ -821,6 +821,30 @@ let zTreeOprObj = {
             }
         }
     },
+    isFlowTpl: function () {
+        let rst = false;
+        let me = zTreeOprObj;
+        if (me.currentNode && me.currentNode.nodeType === RT.NodeType.TEMPLATE) {
+            rst = !!(me.currentNode.rptTpl[JV.NODE_FLOW_INFO]);
+        }
+        return rst;
+    },
+    isCrossTpl: function () {
+        let rst = false;
+        let me = zTreeOprObj;
+        if (me.currentNode && me.currentNode.nodeType === RT.NodeType.TEMPLATE) {
+            rst = !!(me.currentNode.rptTpl[JV.NODE_CROSS_INFO]);
+        }
+        return rst;
+    },
+    isBillTpl: function () {
+        let rst = false;
+        let me = zTreeOprObj;
+        if (me.currentNode && me.currentNode.nodeType === RT.NodeType.TEMPLATE) {
+            rst = !!(me.currentNode.rptTpl[JV.NODE_BILL_INFO]);
+        }
+        return rst;
+    },
     getFolderText: function (treeNode, separator) {
         let rst = "";
         if (treeNode) {