Browse Source

code sync + 增加计算式套路

TonyKang 7 năm trước cách đây
mục cha
commit
c807b7afe2

+ 6 - 1
modules/reports/rpt_component/jpc_flow_tab.js

@@ -14,6 +14,7 @@ let PDFKit = require('pdfkit');
 let JpcFlowTabSrv = function(){};
 JpcFlowTabSrv.prototype.createNew = function(){
     //grpPageInfo :{"segGrpRecStartIdx": 0, "insertedGrpRecAmt": 0, "preAddPageGrpInfo": null}; //纯属解释参数grpPageInfo结构
+    //valueIdx: [isFollowMode, type(normal, auto-height, group), valueIndex, sub-value-index(自动行高特有), total-value-amount(自动行高特有)] //解释 dispValueIdxLst 数据构造
     function private_addPageValue(ValuedIdxLst, sortedSequence, grpSequenceInfo, startRecIdx, maxRecPerPage,page_seg_map, segIdx, pageIdx, grpPageInfo, isFollow, segAutoHeightInfo, prePageLeftAutoHeightRecAmt) {
         let vIdx = [], preAmt = 0, insertedGrpAmt = 0, grp_lines = 0, followMode = (isFollow)?JV.TYPE_FOLLOW_MODE:-1, nextPageAutoHeightRecAmt = 0;
         if (grpSequenceInfo && grpPageInfo) {
@@ -809,7 +810,11 @@ JpcFlowTabSrv.prototype.createNew = function(){
                     }
                     //page sum content
                     for (let di = 0; di < page_sum_data_fields.length; di++) {
-                        rowGrandTotal[di] = rowGrandTotal[di] + 1.0 * JpcFieldHelper.getValue(page_sum_data_fields[di], contentValuesIdx[rowIdx][2]);
+                        if (contentValuesIdx[rowIdx][1] === JV.DISPLAY_VAL_TYPE_NORMAL ||
+                            contentValuesIdx[rowIdx][1] === JV.DISPLAY_VAL_TYPE_AUTO_HEIGHT && contentValuesIdx[rowIdx][3] === 0) {
+                            rowGrandTotal[di] = rowGrandTotal[di] + 1.0 * JpcFieldHelper.getValue(page_sum_data_fields[di], contentValuesIdx[rowIdx][2]);
+                        }
+                        // rowGrandTotal[di] = rowGrandTotal[di] + 1.0 * JpcFieldHelper.getValue(page_sum_data_fields[di], contentValuesIdx[rowIdx][2]);
                     }
                 }
                 me.pageSumValLst.push(rowGrandTotal);

+ 2 - 1
web/maintain/report/js/rpt_tpl_calculation.js

@@ -5,7 +5,8 @@
 let expr_templates = [
     // {Name: "整理序号(单层)", Expression: "let destField = $JE.F(/*指标ID*/,$CURRENT_RPT);\n  destField[JV.PROP_AD_HOC_DATA] = [];\n  for (let innerFmlIdx = 0; innerFmlIdx < $CURRENT_DATA[JV.DATA_DETAIL_DATA][0].length; innerFmlIdx++) {\n    $JE.setFieldValue(destField, $CURRENT_DATA, innerFmlIdx, (innerFmlIdx + 1));\n}"},
     {Name: "转换大写金额", Expression: "let capF = $JE.F(/*目标指标ID*/, $CURRENT_RPT), orgF = $JE.F(/*原始指标ID*/, $CURRENT_RPT);\n $JE.setFieldValue(capF, $CURRENT_DATA, 0, $JE.$STR_UTIL.convertToCaptionNum(parseFloat($JE.getFieldValue(orgF, $CURRENT_DATA, 0, 0)).toFixed(2), true, true));"},
-    {Name: "总计汇总", Expression: "let totalFee = $JE.F(/*目标指标ID*/,$CURRENT_RPT), bill1 = $JE.F(/*原始指标ID*/,$CURRENT_RPT);\n let sumValue = 0.0;\n sumValue += parseFloat($JE.getFieldValue(bill1,$CURRENT_DATA,0,0));\n $JE.setFieldValue(totalFee,$CURRENT_DATA,0,sumValue);"}
+    {Name: "总计汇总", Expression: "let totalFee = $JE.F(/*目标指标ID*/,$CURRENT_RPT), bill1 = $JE.F(/*原始指标ID*/,$CURRENT_RPT);\n let sumValue = 0.0;\n sumValue += parseFloat($JE.getFieldValue(bill1,$CURRENT_DATA,0,0));\n $JE.setFieldValue(totalFee,$CURRENT_DATA,0,sumValue);"},
+    {Name: "格式化指标时间", Expression: "let dtF = $JE.F(/*时间指标ID*/,$CURRENT_RPT);\n let dt = new Date($JE.getFieldValue(dtF, $CURRENT_DATA, 0, 0));\n $JE.setFieldValue(dtF, $CURRENT_DATA, 0, dt.Format($ME.format));"},
 ];
 
 let calculationTreeOprObj = {