TonyKang hace 6 años
padre
commit
f7cd1079b8

+ 4 - 5
config/config.js

@@ -15,7 +15,7 @@ module.exports = {
             useMongoClient: true
         }
     },
-    pp:{ server: "172.18.111.231",
+    pp:{  server: "112.74.42.187",
         port: "27017",
         options:{
             user:'smartcost',
@@ -25,10 +25,9 @@ module.exports = {
             },
             connectTimeoutMS: 50000,
             useMongoClient: true
-        }
-    },
-    ab:{  server: "112.74.42.187",
-        port: "27017",
+        }},
+    prod_s:{  server: "112.74.42.187",
+        port: "28066",
         options:{
             user:'smartcost',
             pass:'SmartCost3850888',

+ 34 - 3
modules/reports/util/rpt_pdf_util.js

@@ -136,10 +136,41 @@ function export_pdf_file (pageData, paperSize, fName, callback) {
             }
             let height = cell[JV.PROP_AREA][JV.PROP_BOTTOM] - cell[JV.PROP_AREA][JV.PROP_TOP];
             let area = [cell[JV.PROP_AREA][JV.PROP_LEFT] + offsetX, cell[JV.PROP_AREA][JV.PROP_TOP] + offsetY, cell[JV.PROP_AREA][JV.PROP_RIGHT] + offsetX, cell[JV.PROP_AREA][JV.PROP_BOTTOM] + offsetY];
+            let ah = height;
+            let restTopH = 0, restBottomH = 0;
+            if (control[JV.CONTROL_PROPS[JV.CONTROL_PROP_IDX_CLOSE_OUTPUT]] === 'T') {
+                ah = (parseFloat(font[JV.FONT_PROPS[1]]) + JV.OUTPUT_OFFSET[JV.OFFSET_IDX_TOP] + JV.OUTPUT_OFFSET[JV.OFFSET_IDX_BOTTOM]) * values.length;
+                let restH = height - ah;
+                if (control[JV.CONTROL_PROPS[JV.CONTROL_PROP_IDX_VERTICAL]] === 'center') {
+                    restTopH = restH / 2;
+                    restBottomH = restH / 2;
+                } else if (control[JV.CONTROL_PROPS[JV.CONTROL_PROP_IDX_VERTICAL]] === 'bottom') {
+                    restBottomH = restH;
+                } else {
+                    restTopH = restH;
+                }
+            }
+            let spaceIdxArr = [];
             for (let i = 0; i < values.length; i++) {
-                area[JV.IDX_TOP] = cell[JV.PROP_AREA][JV.PROP_TOP] + i * (height / values.length) + offsetY;
-                area[JV.IDX_BOTTOM] = cell[JV.PROP_AREA][JV.PROP_TOP] + (i + 1) * (height / values.length) + offsetY;
+                // area[JV.IDX_TOP] = cell[JV.PROP_AREA][JV.PROP_TOP] + i * (height / values.length) + offsetY;
+                // area[JV.IDX_BOTTOM] = cell[JV.PROP_AREA][JV.PROP_TOP] + (i + 1) * (height / values.length) + offsetY;
+                area[JV.IDX_TOP] = cell[JV.PROP_AREA][JV.PROP_TOP] + i * (ah / values.length) + offsetY + restTopH;
+                area[JV.IDX_BOTTOM] = cell[JV.PROP_AREA][JV.PROP_TOP] + (i + 1) * (ah / values.length) + offsetY + restBottomH;
+                if (values[i] === null || values[i] === undefined || values[i] === 'null') {
+                    values[i] = "";
+                }
+                // 因pdfkit输出空格只有一半宽度,需要额外加空格补上 -----------------------------
+                if (typeof(values[i]) === "string") {
+                    for (let j = 0; j < values[i].length; j++) {
+                        if (values[i][j] === ' ') spaceIdxArr.push(j);
+                    }
+                }
+                for (let j = spaceIdxArr.length - 1; j >= 0; j--) {
+                    values[i] = values[i].slice(0, spaceIdxArr[j]) + ' ' + values[i].slice(spaceIdxArr[j]);
+                }
+                // -----------------------------
                 private_drawText(values[i], area, font, control);
+                spaceIdxArr = [];
             }
         }
     }
@@ -243,7 +274,7 @@ function export_pdf_file (pageData, paperSize, fName, callback) {
             while (true) {
                 //*/
                 let lines = Math.floor((area[JV.IDX_BOTTOM] - area[JV.IDX_TOP]) / (dftFontHeight + JV.OUTPUT_OFFSET[JV.OFFSET_IDX_BOTTOM] + JV.OUTPUT_OFFSET[JV.OFFSET_IDX_TOP] + 4));
-                lines = (lines === 0)?1:lines;
+                lines = (lines === 0 || (control.Shrink === 'T' && control.ShrinkFirst === 'T'))?1:lines;
                 let actLines = private_splitString(val, validAreaTxtWidth, doc);
                 if (actLines.length > lines && dftFontHeight >= 6) {
                     dftFontHeight--;

+ 18 - 4
web/maintain/report/js/rpt_tpl_cfg_helper.js

@@ -328,10 +328,24 @@ let rpt_tpl_cfg_helper = {
             let border = me.reportCfg.styles[idx];
             dataInfoMapTreeOprObj.currentNode[JV.PROP_STYLE] = borderAttr;
 
-            $("#eleBorderLeft").get(0).value = border[JV.PROP_BORDER_STYLE][JV.IDX_LEFT][JV.PROP_LINE_WEIGHT];
-            $("#eleBorderRight").get(0).value = border[JV.PROP_BORDER_STYLE][JV.IDX_RIGHT][JV.PROP_LINE_WEIGHT];
-            $("#eleBorderTop").get(0).value = border[JV.PROP_BORDER_STYLE][JV.IDX_TOP][JV.PROP_LINE_WEIGHT];
-            $("#eleBorderBottom").get(0).value = border[JV.PROP_BORDER_STYLE][JV.IDX_BOTTOM][JV.PROP_LINE_WEIGHT];
+            for (let borderLine of border[JV.PROP_BORDER_STYLE]) {
+                switch (borderLine[JV.PROP_POSITION]) {
+                    case JV.PROP_LEFT:
+                        $("#eleBorderLeft").get(0).value = borderLine[JV.PROP_LINE_WEIGHT];
+                        break;
+                    case JV.PROP_RIGHT:
+                        $("#eleBorderRight").get(0).value = borderLine[JV.PROP_LINE_WEIGHT];
+                        break;
+                    case JV.PROP_TOP:
+                        $("#eleBorderTop").get(0).value = borderLine[JV.PROP_LINE_WEIGHT];
+                        break;
+                    case JV.PROP_BOTTOM:
+                        $("#eleBorderBottom").get(0).value = borderLine[JV.PROP_LINE_WEIGHT];
+                        break;
+                    default:
+                        break;
+                }
+            }
         }
     },
     controlChange: function(dom) {