zoukankan      html  css  js  c++  java
  • abap如何根据动态公式计算数据(增补),谢谢网友补充

    最近有位同事在项目中碰到一个问题,需要动态公式计算数据。我们开始想到自动生成子程序,但是动态生成子程序有个数限制(不能超过36个),我们只好另寻他法。 由于以前看过abap调用javascript的应用,我就想到了javascript。具体代码如下(就是要求大家去学习javascript的语法):

    方法一

    report ZDEMO_COMPILE.
    data jj type i.
    perform Dynamicformula  using ' 900 + 7  % 3 ' jj.
    write / jj.
    perform Dynamicformula  using ' 900 + ( 7 + 10 )  % 3 ' jj.
    write / jj.
    perform Dynamicformula  using ' 900 * 30 + ( 7 + 10 )  % 3 ' jj.
    write / jj.
    *&---------------------------------------------------------------------*
    *&      Form  Dynamicformula
    *&---------------------------------------------------------------------*
    *       text
    *----------------------------------------------------------------------*
    *      -->SOURCE     text
    *      -->RE         text
    *----------------------------------------------------------------------*
    FORM Dynamicformula using  formula type STRING
                        changing re type I.
      data source type string.
      data return_value type string.
      data js_processor type ref to cl_java_script.
      js_processor = cl_java_script=>create( ).
      concatenate
        'result = '
        formula
         ';'
       into source.
      RETURN_VALUE = js_processor->evaluate( source ).
      re = RETURN_VALUE.
    ENDFORM.                    "Dynamicformula

    方法二


    CALL FUNCTION 'EVAL_FORMULA'
      EXPORTING
        FORMULA                       = ' ( 9 * 10 + ( 7 + 10 ) * 2 )  div 3  '
     IMPORTING
       VALUE                         = jj
              .
    write / jj.

    Javascript 操作符列表

    算术运算符
    说明  符号 
    加法  +
    递减  --
    除法  /
    递增  ++
    取模算法  %
    乘法  *
    减法  -
    一元求反  -
     

    所有算术运算符都对数值数据执行计算。当任一操作数为字符串时,加法运算符还执行字符串串联操作。

    逻辑运算符
    说明  符号 
    相等  ==
     大于或等于  >=
     大于  >
     恒等  ===
     包含在其中  in
     不相等  !=
     小于或等于  <=
     小于  <
     逻辑“与”  &&
     逻辑“非”  !
     逻辑“或”  ||
     不全等  !==
     
    逻辑运算符返回Boolean值。根据运算符的不同,值可以表示比较、测试或组合的结果。

    位运算符
    说明  符号 
    按位“与”  &
     按位左移  <<
     按位“非”  ~
     按位“或”  |
     按位右移  >>
     按位“异或”  ^
     无符号右移  >>>
     
    位操作符对操作数的二进制表示形式执行操作。如果操作数相互不兼容,将强迫使它们成为适当的类型。有关更多信息,请参见按位运算符强制。

    赋值运算符
    说明  符号 
    赋值  =
     复合加法赋值  +=
     复合按位“与”赋值  &=
     复合按位“或”赋值  |=
     复合按位“异或”赋值  ^=
     复合除法赋值  /=
     复合左移赋值  <<=
     复合取模赋值  %=
    复合乘法赋值  *=
     复合右移赋值  >>=
     复合减法赋值  -=
     复合无符号右移赋值  >>>=
     
    所有的赋值运算符都返回赋给左操作数的值。

    其他运算符
    说明  符号 
    逗号  ,
     条件(三元)  ?:
     删除  delete
     确定实例  instanceof
     新建  new
     Typeof  typeof
     返回空  void
     

  • 相关阅读:
    图像的余弦变换
    图像的傅里叶变换
    图像的频域变换
    数字图像处理基本运算
    数字图像处理基本概念
    推荐几款提升效率的神器
    机器学习中常用的距离及其python实现
    打造自己的图像识别模型
    使用Colaboratory的免费GPU训练神经网络
    学霸修炼的秘籍
  • 原文地址:https://www.cnblogs.com/xiaomaohai/p/6157090.html
Copyright © 2011-2022 走看看