| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186 |
- // 计算式执行(不同情况的方法会不同)
- import { JE } from './jpc_rte';
- 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 { JV } from './jpc_value_define';
- /* 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 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);
- }
- }
- }
- }
- 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 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);
- }
- }
- }
- }
- }
- 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 {};
|