方法一:abap调用javascript
REPORT ztest_dyn_formula.
DATA t1 TYPE i.
PERFORM dynamicformula USING ' 900 + 7 % 3 ' t1.
WRITE / t1.
PERFORM dynamicformula USING ' 900 + ( 7 + 10 ) % 3 ' t1.
WRITE / t1.
PERFORM dynamicformula USING ' 900 * 30 + ( 7 + 10 ) % 3 ' t1.
WRITE / t1.
*&--------------------------------------------------------------------
*& Form dynamicformula
*&--------------------------------------------------------------------
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
方法二:
REPORT ztest_dyn_formula.
PERFORM test.
*&---------------------------------------------------------------------*
*& Form test
*&---------------------------------------------------------------------*
FORM test .
CALL FUNCTION 'EVAL_FORMULA'
EXPORTING
formula = ' ( 9 * 10 + ( 7 + 10 ) * 2 ) div 3 '
IMPORTING
value = t1.
WRITE / t1.
ENDFORM. " test
算术运算符
说明 符号
加法 +
递减 --
除法 /
递增 ++
取模算法 %
乘法 *
减法 -
一元求反 -
所有算术运算符都对数值数据执行计算。当任一操作数为字符串时,加法运算符还执行字符串串联操作。
逻辑运算符
说明 符号
相等 ==
大于或等于 >=
大于 >
恒等 ===
包含在其中 in
不相等 !=
小于或等于 <=
小于 <
逻辑“与” &&
逻辑“非” !
逻辑“或” ||
不全等 !==
逻辑运算符返回Boolean值。根据运算符的不同,值可以表示比较、测试或组合的结果。
位运算符
说明 符号
按位“与” &
按位左移 <<
按位“非” ~
按位“或” |
按位右移 >>
按位“异或” ^
无符号右移 >>>
位操作符对操作数的二进制表示形式执行操作。如果操作数相互不兼容,将强迫使它们成为适当的类型。有关更多信息,请参见按位运算符强制。
赋值运算符
说明 符号
赋值 =
复合加法赋值 +=
复合按位“与”赋值 &=
复合按位“或”赋值 |=
复合按位“异或”赋值 ^=
复合除法赋值 /=
复合左移赋值 <<=
复合取模赋值 %=
复合乘法赋值 *=
复合右移赋值 >>=
复合减法赋值 -=
复合无符号右移赋值 >>>=
所有的赋值运算符都返回赋给左操作数的值。
其他运算符
说明 符号
逗号 ,
条件(三元) ?:
删除 delete
确定实例 instanceof
新建 new
Typeof typeof
返回空 void
资料来源:http://blog.csdn.net/CompassButton/archive/2008/03/25/2217042.aspx
阅读(1759) | 评论(0) | 转发(0) |