|
@@ -210,7 +210,7 @@ class Rpt_Data_Extractor {
|
|
|
// filterData(srcData, preHandle, rawDataObj.prjData);
|
|
|
break;
|
|
|
case JV.PROP_HANDLE_TYPE_PRE_DEFINED:
|
|
|
- preDefineProcess(ctx, preHandle, rawDataObj);
|
|
|
+ preDefineProcess(ctx, tpl, preHandle, rawDataObj);
|
|
|
break;
|
|
|
default:
|
|
|
break;
|
|
@@ -484,13 +484,39 @@ function filterData(sourceData, handleCfg, prjData) {
|
|
|
// fsUtil.writeObjToFile(sourceData.data, 'D:/GitHome/ConstructionCost/tmp/filteredRst.jsp');
|
|
|
}
|
|
|
|
|
|
-function preDefineProcess(ctx, preDefineCfg, rawDataObj) {
|
|
|
+function preDefineProcess(ctx, tpl, preDefineCfg, rawDataObj) {
|
|
|
+ // 依据约定,需要提供如右所示格式的数据:[{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 = [];
|
|
|
+ if (preDefineCfg.fields) {
|
|
|
+ for (const field of preDefineCfg.fields) {
|
|
|
+ const tplF = $JE.F(field.ID, tpl);
|
|
|
+ const mapStr = tplF[JV.PROP_FIELD_EXP_MAP].split(','); // 如上,用逗号分割
|
|
|
+ let start = 0;
|
|
|
+ let end = 0;
|
|
|
+ let cnt = 0;
|
|
|
+ for (let idx = 0; idx < mapStr[1].length; idx++) {
|
|
|
+ if (mapStr[1][idx] === '\'') {
|
|
|
+ cnt++;
|
|
|
+ if (cnt === 1) {
|
|
|
+ start = idx;
|
|
|
+ } else {
|
|
|
+ end = idx;
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ const codeKey = mapStr[1].slice(start + 1, end);
|
|
|
+ // console.log('field codeKey: ' + codeKey);
|
|
|
+ const rstF = { field: codeKey, table: tplF.TableName };
|
|
|
+ fields.push(rstF);
|
|
|
+ }
|
|
|
+ }
|
|
|
switch (preDefineCfg[JV.PROP_HANDLE_TYPE_PRE_DEFINED_KEY]) {
|
|
|
case 'changeSort' :
|
|
|
- // [{field: 'b_code', table: 'mem_stage_bills'}, {field: 'id', table: 'mem_stage_bills'}]
|
|
|
try {
|
|
|
// 在预定义方式中,小麦处理原始数据,不需要
|
|
|
- data_analyze_util.changeSort.fun(ctx, rawDataObj);
|
|
|
+ data_analyze_util.changeSort.fun(ctx, rawDataObj, fields);
|
|
|
} catch (ex) {
|
|
|
//
|
|
|
}
|