|
@@ -1,186 +1,217 @@
|
|
|
// 计算式执行(不同情况的方法会不同)
|
|
// 计算式执行(不同情况的方法会不同)
|
|
|
import { JE } from './jpc_rte';
|
|
import { JE } from './jpc_rte';
|
|
|
import formulasDataSetter from './formulasDataSetter';
|
|
import formulasDataSetter from './formulasDataSetter';
|
|
|
-import * as stringUtil from '../public/stringUtil'
|
|
|
|
|
-import { ReportDate as useReportDate } from '../public/ReportDate'
|
|
|
|
|
-import { ICurrent_RPT, IRptTpl, IDataObj, Fields } from '../interface/basic'
|
|
|
|
|
|
|
+import * as stringUtil from '../public/stringUtil';
|
|
|
|
|
+import { ReportDate as useReportDate } from '../public/ReportDate';
|
|
|
|
|
+import { ICurrent_RPT, IRptTpl, IDataObj, Fields } from '../interface/basic';
|
|
|
import { JV } from './jpc_value_define';
|
|
import { JV } from './jpc_value_define';
|
|
|
|
|
|
|
|
/* eslint-disable import/prefer-default-export */
|
|
/* eslint-disable import/prefer-default-export */
|
|
|
-export const replaceAll = (FindText: RegExp | string, RepText: string, str: string): string => {
|
|
|
|
|
- const regExp = new RegExp(FindText, 'g');
|
|
|
|
|
- return str.replace(regExp, RepText);
|
|
|
|
|
|
|
+export const replaceAll = (
|
|
|
|
|
+ FindText: RegExp | string,
|
|
|
|
|
+ RepText: string,
|
|
|
|
|
+ str: string
|
|
|
|
|
+): string => {
|
|
|
|
|
+ const regExp = new RegExp(FindText, 'g');
|
|
|
|
|
+ return str.replace(regExp, RepText);
|
|
|
};
|
|
};
|
|
|
|
|
|
|
|
-export const formulaExec = (runType: string, $CURRENT_TEMPLATE: IRptTpl, $CURRENT_DATA: IDataObj, $CURRENT_RPT: ICurrent_RPT) => {
|
|
|
|
|
- formulasDataSetter.setupData($CURRENT_RPT, $CURRENT_DATA);
|
|
|
|
|
- const {
|
|
|
|
|
- P,
|
|
|
|
|
- F,
|
|
|
|
|
- D,
|
|
|
|
|
- L,
|
|
|
|
|
- getCurrentPage,
|
|
|
|
|
- getTotalPage,
|
|
|
|
|
- setFieldValue,
|
|
|
|
|
- setFieldValueArray,
|
|
|
|
|
- removeFieldValue,
|
|
|
|
|
- insertFieldValue,
|
|
|
|
|
- setData,
|
|
|
|
|
- getNumberArray,
|
|
|
|
|
- copyPrecision,
|
|
|
|
|
- copyFixedPrecisionNum,
|
|
|
|
|
- copyProperty,
|
|
|
|
|
- setDate,
|
|
|
|
|
- DLength
|
|
|
|
|
- } = formulasDataSetter;
|
|
|
|
|
- const {
|
|
|
|
|
- isEmptyString,
|
|
|
|
|
- trim,
|
|
|
|
|
- leftTrim,
|
|
|
|
|
- rightTrim,
|
|
|
|
|
- comdify,
|
|
|
|
|
- convertToCaptionNum,
|
|
|
|
|
- convertStrToBoolean,
|
|
|
|
|
- formatNumber,
|
|
|
|
|
- } = stringUtil;
|
|
|
|
|
|
|
+export const formulaExec = (
|
|
|
|
|
+ runType: string,
|
|
|
|
|
+ $CURRENT_TEMPLATE: IRptTpl,
|
|
|
|
|
+ $CURRENT_DATA: IDataObj,
|
|
|
|
|
+ $CURRENT_RPT: ICurrent_RPT
|
|
|
|
|
+) => {
|
|
|
|
|
+ formulasDataSetter.setupData($CURRENT_RPT, $CURRENT_DATA);
|
|
|
|
|
+ const {
|
|
|
|
|
+ P,
|
|
|
|
|
+ F,
|
|
|
|
|
+ D,
|
|
|
|
|
+ L,
|
|
|
|
|
+ getCurrentPage,
|
|
|
|
|
+ getTotalPage,
|
|
|
|
|
+ setFieldValue,
|
|
|
|
|
+ setFieldValueArray,
|
|
|
|
|
+ removeFieldValue,
|
|
|
|
|
+ insertFieldValue,
|
|
|
|
|
+ setData,
|
|
|
|
|
+ getNumberArray,
|
|
|
|
|
+ copyPrecision,
|
|
|
|
|
+ copyFixedPrecisionNum,
|
|
|
|
|
+ copyProperty,
|
|
|
|
|
+ setDate,
|
|
|
|
|
+ DLength,
|
|
|
|
|
+ } = formulasDataSetter;
|
|
|
|
|
+ const {
|
|
|
|
|
+ isEmptyString,
|
|
|
|
|
+ trim,
|
|
|
|
|
+ leftTrim,
|
|
|
|
|
+ rightTrim,
|
|
|
|
|
+ comdify,
|
|
|
|
|
+ convertToCaptionNum,
|
|
|
|
|
+ convertStrToBoolean,
|
|
|
|
|
+ formatNumber,
|
|
|
|
|
+ } = stringUtil;
|
|
|
|
|
|
|
|
- const $JV = JV;
|
|
|
|
|
- const $JE = JE;
|
|
|
|
|
- const reportDate = useReportDate;
|
|
|
|
|
- for (let execFmlIdx = 0; execFmlIdx < $CURRENT_RPT.formulas.length; execFmlIdx++) {
|
|
|
|
|
- if ($CURRENT_RPT.formulas[execFmlIdx].run_type === runType) {
|
|
|
|
|
- let expression = $CURRENT_RPT.formulas[execFmlIdx].expression;
|
|
|
|
|
- if (expression) {
|
|
|
|
|
- // 计算式集合,目前是放置打印信息的,用于配置属性的计算
|
|
|
|
|
- let $ME = $CURRENT_RPT.formulas[execFmlIdx];
|
|
|
|
|
- try {
|
|
|
|
|
- let newExpression = expression;
|
|
|
|
|
- const { format } = $ME;
|
|
|
|
|
- // console.log(expression);
|
|
|
|
|
- //临时处理
|
|
|
|
|
- if (expression.indexOf(`new Date(`)) {
|
|
|
|
|
- newExpression = replaceAll(/new Date\(/g, `new reportDate(`, expression)
|
|
|
|
|
- }
|
|
|
|
|
- eval(newExpression);
|
|
|
|
|
- } catch (ex) {
|
|
|
|
|
- console.log(ex);
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ const $JV = JV;
|
|
|
|
|
+ const $JE = JE;
|
|
|
|
|
+ const reportDate = useReportDate;
|
|
|
|
|
+ for (
|
|
|
|
|
+ let execFmlIdx = 0;
|
|
|
|
|
+ execFmlIdx < $CURRENT_RPT.formulas.length;
|
|
|
|
|
+ execFmlIdx++
|
|
|
|
|
+ ) {
|
|
|
|
|
+ if ($CURRENT_RPT.formulas[execFmlIdx].run_type === runType) {
|
|
|
|
|
+ let expression = $CURRENT_RPT.formulas[execFmlIdx].expression;
|
|
|
|
|
+ if (expression) {
|
|
|
|
|
+ // 计算式集合,目前是放置打印信息的,用于配置属性的计算
|
|
|
|
|
+ let $ME = $CURRENT_RPT.formulas[execFmlIdx];
|
|
|
|
|
+ try {
|
|
|
|
|
+ let newExpression = expression;
|
|
|
|
|
+ const { format } = $ME;
|
|
|
|
|
+ // console.log(expression);
|
|
|
|
|
+ //临时处理
|
|
|
|
|
+ if (expression.includes(`new Date(`)) {
|
|
|
|
|
+ newExpression = replaceAll(
|
|
|
|
|
+ /new Date\(/g,
|
|
|
|
|
+ `new reportDate(`,
|
|
|
|
|
+ newExpression
|
|
|
|
|
+ );
|
|
|
|
|
+ }
|
|
|
|
|
+ // 三合一编译之后不能读取JV
|
|
|
|
|
+ if (expression.includes(`[JV.`)) {
|
|
|
|
|
+ newExpression = replaceAll(/\[JV\./g, `[$JV.`, newExpression);
|
|
|
|
|
+ }
|
|
|
|
|
+ // console.log(newExpression);
|
|
|
|
|
+ eval(newExpression);
|
|
|
|
|
+ } catch (ex) {
|
|
|
|
|
+ console.log(ex);
|
|
|
}
|
|
}
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
- formulasDataSetter.resetData();
|
|
|
|
|
- return {
|
|
|
|
|
- $JE,
|
|
|
|
|
- $JV,
|
|
|
|
|
- P,
|
|
|
|
|
- F,
|
|
|
|
|
- D,
|
|
|
|
|
- L,
|
|
|
|
|
- getCurrentPage,
|
|
|
|
|
- getTotalPage,
|
|
|
|
|
- setFieldValue,
|
|
|
|
|
- setFieldValueArray,
|
|
|
|
|
- removeFieldValue,
|
|
|
|
|
- insertFieldValue,
|
|
|
|
|
- setData,
|
|
|
|
|
- getNumberArray,
|
|
|
|
|
- copyPrecision,
|
|
|
|
|
- copyFixedPrecisionNum,
|
|
|
|
|
- copyProperty,
|
|
|
|
|
- setDate,
|
|
|
|
|
- DLength,
|
|
|
|
|
- isEmptyString,
|
|
|
|
|
- trim,
|
|
|
|
|
- leftTrim,
|
|
|
|
|
- rightTrim,
|
|
|
|
|
- comdify,
|
|
|
|
|
- convertToCaptionNum,
|
|
|
|
|
- convertStrToBoolean,
|
|
|
|
|
- formatNumber,
|
|
|
|
|
- reportDate
|
|
|
|
|
- };
|
|
|
|
|
-}
|
|
|
|
|
|
|
+ }
|
|
|
|
|
+ formulasDataSetter.resetData();
|
|
|
|
|
+ return {
|
|
|
|
|
+ $JE,
|
|
|
|
|
+ $JV,
|
|
|
|
|
+ JV,
|
|
|
|
|
+ P,
|
|
|
|
|
+ F,
|
|
|
|
|
+ D,
|
|
|
|
|
+ L,
|
|
|
|
|
+ getCurrentPage,
|
|
|
|
|
+ getTotalPage,
|
|
|
|
|
+ setFieldValue,
|
|
|
|
|
+ setFieldValueArray,
|
|
|
|
|
+ removeFieldValue,
|
|
|
|
|
+ insertFieldValue,
|
|
|
|
|
+ setData,
|
|
|
|
|
+ getNumberArray,
|
|
|
|
|
+ copyPrecision,
|
|
|
|
|
+ copyFixedPrecisionNum,
|
|
|
|
|
+ copyProperty,
|
|
|
|
|
+ setDate,
|
|
|
|
|
+ DLength,
|
|
|
|
|
+ isEmptyString,
|
|
|
|
|
+ trim,
|
|
|
|
|
+ leftTrim,
|
|
|
|
|
+ rightTrim,
|
|
|
|
|
+ comdify,
|
|
|
|
|
+ convertToCaptionNum,
|
|
|
|
|
+ convertStrToBoolean,
|
|
|
|
|
+ formatNumber,
|
|
|
|
|
+ reportDate,
|
|
|
|
|
+ };
|
|
|
|
|
+};
|
|
|
|
|
+
|
|
|
|
|
+export const combinedGridFormula = (
|
|
|
|
|
+ $RUN_TYPE: String,
|
|
|
|
|
+ $TEXT: Fields,
|
|
|
|
|
+ $TIMES: number,
|
|
|
|
|
+ $CURRENT_RPT: ICurrent_RPT
|
|
|
|
|
+) => {
|
|
|
|
|
+ const {
|
|
|
|
|
+ $JE,
|
|
|
|
|
+ $JV,
|
|
|
|
|
+ P,
|
|
|
|
|
+ F,
|
|
|
|
|
+ D,
|
|
|
|
|
+ L,
|
|
|
|
|
+ getCurrentPage,
|
|
|
|
|
+ getTotalPage,
|
|
|
|
|
+ setFieldValue,
|
|
|
|
|
+ setFieldValueArray,
|
|
|
|
|
+ removeFieldValue,
|
|
|
|
|
+ insertFieldValue,
|
|
|
|
|
+ setData,
|
|
|
|
|
+ getNumberArray,
|
|
|
|
|
+ copyPrecision,
|
|
|
|
|
+ copyFixedPrecisionNum,
|
|
|
|
|
+ copyProperty,
|
|
|
|
|
+ setDate,
|
|
|
|
|
+ DLength,
|
|
|
|
|
+ isEmptyString,
|
|
|
|
|
+ trim,
|
|
|
|
|
+ leftTrim,
|
|
|
|
|
+ rightTrim,
|
|
|
|
|
+ comdify,
|
|
|
|
|
+ convertToCaptionNum,
|
|
|
|
|
+ convertStrToBoolean,
|
|
|
|
|
+ formatNumber,
|
|
|
|
|
+ reportDate,
|
|
|
|
|
+ } = $CURRENT_RPT.formulasObject;
|
|
|
|
|
|
|
|
-export const combinedGridFormula = ($RUN_TYPE: String, $TEXT: Fields, $TIMES: number, $CURRENT_RPT: ICurrent_RPT) => {
|
|
|
|
|
- const {
|
|
|
|
|
- $JE,
|
|
|
|
|
- $JV,
|
|
|
|
|
- P,
|
|
|
|
|
- F,
|
|
|
|
|
- D,
|
|
|
|
|
- L,
|
|
|
|
|
- getCurrentPage,
|
|
|
|
|
- getTotalPage,
|
|
|
|
|
- setFieldValue,
|
|
|
|
|
- setFieldValueArray,
|
|
|
|
|
- removeFieldValue,
|
|
|
|
|
- insertFieldValue,
|
|
|
|
|
- setData,
|
|
|
|
|
- getNumberArray,
|
|
|
|
|
- copyPrecision,
|
|
|
|
|
- copyFixedPrecisionNum,
|
|
|
|
|
- copyProperty,
|
|
|
|
|
- setDate,
|
|
|
|
|
- DLength,
|
|
|
|
|
- isEmptyString,
|
|
|
|
|
- trim,
|
|
|
|
|
- leftTrim,
|
|
|
|
|
- rightTrim,
|
|
|
|
|
- comdify,
|
|
|
|
|
- convertToCaptionNum,
|
|
|
|
|
- convertStrToBoolean,
|
|
|
|
|
- formatNumber,
|
|
|
|
|
- reportDate
|
|
|
|
|
- }=$CURRENT_RPT.formulasObject;
|
|
|
|
|
-
|
|
|
|
|
-
|
|
|
|
|
- if ($CURRENT_RPT.formulas) {
|
|
|
|
|
- for (let execFmlIdx = 0; execFmlIdx < $CURRENT_RPT.formulas.length; execFmlIdx++) {
|
|
|
|
|
- if ($CURRENT_RPT.formulas[execFmlIdx].run_type === $RUN_TYPE) {
|
|
|
|
|
- let expression = $CURRENT_RPT.formulas[execFmlIdx].expression;
|
|
|
|
|
- if (expression) {
|
|
|
|
|
- let $ME = $CURRENT_RPT.formulas[execFmlIdx];
|
|
|
|
|
- try {
|
|
|
|
|
- eval(expression);
|
|
|
|
|
- } catch (ex) {
|
|
|
|
|
- console.log(ex);
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ if ($CURRENT_RPT.formulas) {
|
|
|
|
|
+ for (
|
|
|
|
|
+ let execFmlIdx = 0;
|
|
|
|
|
+ execFmlIdx < $CURRENT_RPT.formulas.length;
|
|
|
|
|
+ execFmlIdx++
|
|
|
|
|
+ ) {
|
|
|
|
|
+ if ($CURRENT_RPT.formulas[execFmlIdx].run_type === $RUN_TYPE) {
|
|
|
|
|
+ let expression = $CURRENT_RPT.formulas[execFmlIdx].expression;
|
|
|
|
|
+ if (expression) {
|
|
|
|
|
+ let $ME = $CURRENT_RPT.formulas[execFmlIdx];
|
|
|
|
|
+ try {
|
|
|
|
|
+ console.log(expression);
|
|
|
|
|
+ eval(expression);
|
|
|
|
|
+ } catch (ex) {
|
|
|
|
|
+ console.log(ex);
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
- formulasDataSetter.resetData();
|
|
|
|
|
|
|
+ }
|
|
|
|
|
+ formulasDataSetter.resetData();
|
|
|
|
|
|
|
|
- return {
|
|
|
|
|
- $JE,
|
|
|
|
|
- $JV,
|
|
|
|
|
- P,
|
|
|
|
|
- F,
|
|
|
|
|
- D,
|
|
|
|
|
- L,
|
|
|
|
|
- getCurrentPage,
|
|
|
|
|
- getTotalPage,
|
|
|
|
|
- setFieldValue,
|
|
|
|
|
- setFieldValueArray,
|
|
|
|
|
- removeFieldValue,
|
|
|
|
|
- insertFieldValue,
|
|
|
|
|
- setData,
|
|
|
|
|
- getNumberArray,
|
|
|
|
|
- copyPrecision,
|
|
|
|
|
- copyFixedPrecisionNum,
|
|
|
|
|
- copyProperty,
|
|
|
|
|
- setDate,
|
|
|
|
|
- DLength,
|
|
|
|
|
- isEmptyString,
|
|
|
|
|
- trim,
|
|
|
|
|
- leftTrim,
|
|
|
|
|
- rightTrim,
|
|
|
|
|
- comdify,
|
|
|
|
|
- convertToCaptionNum,
|
|
|
|
|
- convertStrToBoolean,
|
|
|
|
|
- formatNumber,
|
|
|
|
|
- reportDate
|
|
|
|
|
- };
|
|
|
|
|
-
|
|
|
|
|
-}
|
|
|
|
|
-export default {};
|
|
|
|
|
|
|
+ return {
|
|
|
|
|
+ $JE,
|
|
|
|
|
+ $JV,
|
|
|
|
|
+ P,
|
|
|
|
|
+ F,
|
|
|
|
|
+ D,
|
|
|
|
|
+ L,
|
|
|
|
|
+ getCurrentPage,
|
|
|
|
|
+ getTotalPage,
|
|
|
|
|
+ setFieldValue,
|
|
|
|
|
+ setFieldValueArray,
|
|
|
|
|
+ removeFieldValue,
|
|
|
|
|
+ insertFieldValue,
|
|
|
|
|
+ setData,
|
|
|
|
|
+ getNumberArray,
|
|
|
|
|
+ copyPrecision,
|
|
|
|
|
+ copyFixedPrecisionNum,
|
|
|
|
|
+ copyProperty,
|
|
|
|
|
+ setDate,
|
|
|
|
|
+ DLength,
|
|
|
|
|
+ isEmptyString,
|
|
|
|
|
+ trim,
|
|
|
|
|
+ leftTrim,
|
|
|
|
|
+ rightTrim,
|
|
|
|
|
+ comdify,
|
|
|
|
|
+ convertToCaptionNum,
|
|
|
|
|
+ convertStrToBoolean,
|
|
|
|
|
+ formatNumber,
|
|
|
|
|
+ reportDate,
|
|
|
|
|
+ };
|
|
|
|
|
+};
|
|
|
|
|
+export default {};
|