{ "ID_KEY": "DUMMY_FLOW_SAMPLE", "GROUP_KEY": "RPT_B5表 工程变更数量及金额汇总表_SAMPLE_TPL", "主信息": { "单位": "厘米", "版本": { "主版本": "3", "功能版本": "0" }, "页边距": { "Top": "1.0", "Left": "1.0", "Right": "1.0", "Bottom": "1.0" }, "报表名称": "B5表 工程变更数量及金额汇总表", "打印页面_信息": { "方向": "PORTRAIT", "页规格": "A4" } }, "布局框_集合": [ { "Alignment": "Top", "DisplayType": "EveryPage", "Height": "2", "Name": "TitleBand", "control": "Default", "style": "Default_None", "MergeBorder": "F" }, { "Alignment": "Top", "DisplayType": "EveryPage", "Height": "1.5", "Name": "HeaderBand", "control": "Default", "style": "Default_None", "MergeBorder": "F" }, { "Alignment": "Bottom", "DisplayType": "EveryPage", "Height": "0.6", "Name": "FooterBand", "control": "Default", "style": "Default_None", "MergeBorder": "F" }, { "Alignment": "Fulfill", "DisplayType": "EveryPage", "Name": "Report Body", "control": "Default", "style": "BORDER_ALL_AROUND", "MergeBorder": "T", "band_s": [ { "Alignment": "Top", "DisplayType": "EveryPage", "Height": "2.67", "Name": "ColumnBand", "control": "Default", "style": "Default_None", "MergeBorder": "F" }, { "Alignment": "Bottom", "DisplayType": "SegmentEnd", "Height": "6.67", "Name": "newBand_1", "control": "Default", "style": "Default_None", "MergeBorder": "F" }, { "Alignment": "Fulfill", "DisplayType": "EveryPage", "Name": "ContentBand", "control": "Default", "style": "Default_None", "MergeBorder": "F" } ] } ], "计算式_集合": [ { "Name": "获取打印时间", "run_type": "before_paging", "expression": "let rpt = $JE.P(5001,$CURRENT_RPT);\n let dt = new Date();\n rpt.Default_Value = dt.Format($ME.format);\n rpt = null;", "format": "yyyy 年 M 月 dd 日" }, { "Name": "获取当前页", "run_type": "before_output", "expression": "let ttp = $JE.P(5010,$CURRENT_RPT);\n ttp.Default_Value = $ME.format.replace('($S)',$JE.getCurrentPage($CURRENT_RPT));\n ttp = null;", "format": "第 ($S) 页" }, { "Name": "获取总页数", "run_type": "before_output", "expression": "let ttp = $JE.P(5011,$CURRENT_RPT);\n ttp.Default_Value = $ME.format.replace('($S)',$JE.getTotalPage($CURRENT_RPT));\n ttp = null;", "format": "共 ($S) 页" }, { "Name": "综合设置", "run_type": "before_analyzing", "expression": "\n//变更令主数据\nlet bglId=$JE.F(2300,$CURRENT_RPT);\nlet bglCode=$JE.F(2301,$CURRENT_RPT);\nlet fLen0=$JE.getFieldDataLen(bglId, $CURRENT_DATA);\nlet masterBglArr = [];\nlet masterField=[bglId,bglCode];\nlet masterKeyArr=['bglId','bglCode'];\n\n//变更令从数据\nlet bglbillsCid=$JE.F(2400,$CURRENT_RPT);\nlet bglBillsCode=$JE.F(2401,$CURRENT_RPT);\nlet bglBillsName=$JE.F(2402,$CURRENT_RPT);\nlet bglBillsUnit=$JE.F(2403,$CURRENT_RPT);\nlet bglBillsQty=$JE.F(2407,$CURRENT_RPT);\nlet bglBillsPrice=$JE.F(2404,$CURRENT_RPT);\n\n//变更增减数量\nlet newBglBillsQtyZ=$JE.F(12000,$CURRENT_RPT);\nlet newBglBillsQtyJ=$JE.F(12001,$CURRENT_RPT);\n\n//变更增减金额\nlet newBglBillsTpZ=$JE.F(12002,$CURRENT_RPT);\nlet newBglBillsTpJ=$JE.F(12003,$CURRENT_RPT);\nlet newXuhao=$JE.F(12004,$CURRENT_RPT);\n\nlet fLen1=$JE.getFieldDataLen(bglbillsCid, $CURRENT_DATA);\nlet sortBefore = [];//缓存从数据\nlet destArr=[]; //从数据根据变更令ID,清单排序后的主数据\nlet decFieldArr=[newXuhao,bglbillsCid,bglBillsCode,bglBillsName,bglBillsUnit,bglBillsPrice,bglBillsQty,newBglBillsQtyZ,newBglBillsQtyJ,newBglBillsTpZ,newBglBillsTpJ];\nlet decKeyArr=['newXuhao','bglId','bglBCode','bglBName','bglBUnit','bglBPrice','bglBQty','bglBQtyZ','bglBQtyJ','bglTpZ','bglTpJ'];\n//设置增减\nlet addTp=$JE.F(2307,$CURRENT_RPT);\nlet minusTp=$JE.F(2309,$CURRENT_RPT);\n\n//获取金额小数位数\n//let tempPTp=$JE.F(1156,$CURRENT_RPT);\nlet preciousTp = $JE.getFieldValue($JE.F(1156,$CURRENT_RPT),$CURRENT_DATA,0,'');\n\n\n//缓存成数组,数组元素为对象\n//dataLength:原始数据长度,fieldArr:康博士定义的字段,keysArr:数组对象字段\nfunction cacheDataArr(dataLength,fieldArr,keysArr,cacheArr){\n\tfor (let chkIdx = 0; chkIdx < dataLength; chkIdx++){\n\t\tlet newDatad={};\n\t\tfor(let i=0;i=0){\n\t\t$JE.setFieldValue(newBglBillsQtyZ, $CURRENT_DATA, nIdx, sQty);\n\t\t$JE.setFieldValue(newBglBillsTpZ, $CURRENT_DATA, nIdx, sTP);\n\t\t$JE.setFieldValue(newBglBillsQtyJ, $CURRENT_DATA, nIdx, 0);\n\t\t$JE.setFieldValue(newBglBillsTpJ, $CURRENT_DATA, nIdx, 0);\t\t\t\n\t}else{\n\t\t$JE.setFieldValue(newBglBillsQtyZ, $CURRENT_DATA, nIdx, 0);\n\t\t$JE.setFieldValue(newBglBillsTpZ, $CURRENT_DATA, nIdx, 0);\n\t\t$JE.setFieldValue(newBglBillsQtyJ, $CURRENT_DATA, nIdx, sQty);\n\t\t$JE.setFieldValue(newBglBillsTpJ, $CURRENT_DATA, nIdx, sTP);\n\t}\n}\n\n//处理序号\nfor(let bglNo = 0; bglNo < fLen0; bglNo++){\n\tlet no1= $JE.getFieldValue(bglId, $CURRENT_DATA, bglNo, '');\n\tlet vCn=0;\n\tfor(let billNo = 0; billNo < fLen1; billNo++){\t\t\n\t\tlet no2= $JE.getFieldValue(bglbillsCid, $CURRENT_DATA, billNo, '');\n\t\tif(no1===no2){\n\t\t\tvCn++;\n\t\t\t$JE.setFieldValue(newXuhao, $CURRENT_DATA, billNo, vCn);\n\t\t}\n\t}\t\n}\ncacheDataArr(fLen0,masterField,masterKeyArr,masterBglArr);\ncacheDataArr(fLen1,decFieldArr,decKeyArr,sortBefore);\n\n//主数据排序\nmasterBglArr.sort(function (a, b) {\n if (a['bglCode'] === b['bglCode']) {\n if (a['bglId'] > b['bglId']) {\n return 1;\n } else if (a['bglId'] < b['bglId']) {\n return -1;\n } else {\n return 0;\n }\n } else {\n if (a['bglCode'] > b['bglCode']) {\n return 1;\n } else {\n return -1;\n }\n }\n});\n//console.log(masterBglArr);\n\n//从数据根据主数据变更令id排序\nfor(let k=0; k