| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586 |
- // 计算式执行(不同情况的方法会不同)
- import JE from './jpc_rte';
- import formulasDataSetter from './formulasDataSetter';
- import stringUtil from '../public/stringUtil'
- import useReportDate from '../public/ReportDate'
- import { ICurrent_RPT, IRptTpl, IDataObj, Fields } from '../interface/basic'
- import $JV from './jpc_value_define';
- 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,
- replaceAll,
- comdify,
- convertToCaptionNum,
- convertStrToBoolean,
- formatNumber,
- } = stringUtil;
- const $JE = JE;
- const JV= $JV;
- 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= expression.replaceAll(`new Date(`, `new ReportDate(`)
- }
- eval(newExpression);
- } catch (ex) {
- console.log(ex);
- }
- }
- }
- }
- formulasDataSetter.resetData();
- }
- export const combinedGridFormula = ($RUN_TYPE: String, $TEXT: Fields, $TIMES: number, $CURRENT_RPT: ICurrent_RPT) => {
- 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();
- }
- export default {};
|