|
@@ -190,7 +190,7 @@ class Rpt_Data_Extractor {
|
|
|
}
|
|
|
|
|
|
// 装配数据(把收集到的数据,依据报表模板的指示,预处理(如:排序、过滤、合计)及装配到相关指标)
|
|
|
- assembleData(ctx, rawDataObj, baseDir) {
|
|
|
+ assembleData(ctx, rawDataObj, baseDir, $CURRENT_RPT) {
|
|
|
const $PROJECT = { REPORT: {} };
|
|
|
const tpl = this.rptTpl;
|
|
|
this.COMMON.initialize(tpl, rawDataObj);
|
|
@@ -210,7 +210,7 @@ class Rpt_Data_Extractor {
|
|
|
// filterData(srcData, preHandle, rawDataObj.prjData);
|
|
|
break;
|
|
|
case JV.PROP_HANDLE_TYPE_PRE_DEFINED:
|
|
|
- preDefineProcess(ctx, tpl, preHandle, rawDataObj);
|
|
|
+ preDefineProcess(ctx, tpl, preHandle, rawDataObj, $CURRENT_RPT);
|
|
|
break;
|
|
|
default:
|
|
|
break;
|
|
@@ -484,13 +484,44 @@ function filterData(sourceData, handleCfg, prjData) {
|
|
|
// fsUtil.writeObjToFile(sourceData.data, 'D:/GitHome/ConstructionCost/tmp/filteredRst.jsp');
|
|
|
}
|
|
|
|
|
|
-function preDefineProcess(ctx, tpl, preDefineCfg, rawDataObj) {
|
|
|
+function getOrgFieldDefine(fieldId, tpl) {
|
|
|
+ let rst = null;
|
|
|
+ if (tpl[JV.NODE_FIELD_MAP][JV.NODE_DISCRETE_FIELDS]) {
|
|
|
+ for (const field of tpl[JV.NODE_FIELD_MAP][JV.NODE_DISCRETE_FIELDS]) {
|
|
|
+ if (field[JV.PROP_ID] === fieldId) {
|
|
|
+ rst = field;
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (rst === null && tpl[JV.NODE_FIELD_MAP][JV.NODE_MASTER_FIELDS]) {
|
|
|
+ for (const field of tpl[JV.NODE_FIELD_MAP][JV.NODE_MASTER_FIELDS]) {
|
|
|
+ if (field[JV.PROP_ID] === fieldId) {
|
|
|
+ rst = field;
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (rst === null && tpl[JV.NODE_FIELD_MAP][JV.NODE_DETAIL_FIELDS]) {
|
|
|
+ for (const field of tpl[JV.NODE_FIELD_MAP][JV.NODE_DETAIL_FIELDS]) {
|
|
|
+ if (field[JV.PROP_ID] === fieldId) {
|
|
|
+ rst = field;
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ // 不会让用户选择独立离散指标的
|
|
|
+ return rst;
|
|
|
+}
|
|
|
+
|
|
|
+function preDefineProcess(ctx, tpl, preDefineCfg, rawDataObj, $CURRENT_RPT) {
|
|
|
// 依据约定,需要提供如右所示格式的数据:[{field: 'b_code', table: 'mem_stage_bills'}, {field: 'id', table: 'mem_stage_bills'}]
|
|
|
// 指标对象的mapExpression 格式类似于: "$PROJECT.REPORT.getProperty('mem_stage_im_zl', 'calc_memo')"
|
|
|
const fields = [];
|
|
|
+ // console.log($CURRENT_RPT);
|
|
|
if (preDefineCfg.fields) {
|
|
|
for (const field of preDefineCfg.fields) {
|
|
|
- const tplF = $JE.F(field.ID, tpl);
|
|
|
+ const tplF = getOrgFieldDefine(field[JV.PROP_FIELD_ID], tpl);
|
|
|
const mapStr = tplF[JV.PROP_FIELD_EXP_MAP].split(','); // 如上,用逗号分割
|
|
|
let start = 0;
|
|
|
let end = 0;
|