abap动态计算公式程序

代码摘至程序RSCALC10,部分修改.

REPORT  ZDEMO_FORMULA.

DATA:
      RETCODE      TYPE SY-SUBRC,
      FUNCNAME(30) TYPE C,
      MESSAGE(70)  TYPE C,
      POS          TYPE I,
      C            TYPE I.

PARAMETERS FORMEL type formel.

PERFORM. MIN.

FORM. MIN.
*check formula
  CALL FUNCTION 'CHECK_FORMULA'
       EXPORTING  FORMULA   = FORMEL
       IMPORTING  SUBRC     = RETCODE
                  FUNCNAME  = FUNCNAME
                  MESSAGE   = MESSAGE
                  POS       = POS
       EXCEPTIONS
                   ERROR_IN_FORMULA = 1
                   MISSING_PARAMETER = 2
                   THERS = 3.

  IF SY-SUBRC EQ 0."formula is ok

*    IF RETCODE IS INITIAL.

* work out formula
       CALL FUNCTION 'EVAL_FORMULA'
            EXPORTING  FORMULA   = FORMEL
            IMPORTING  VALUE     = C
            EXCEPTIONS OTHERS    = 1.
       IF SY-SUBRC EQ 0.
          WRITE: / 'successful!'.
          write: / .
          write: / 'c:', 20 C.
       ELSE.
          WRITE: / 'error!'.
          write: / .
          WRITE: / 'sy-subrc:', 20 SY-SUBRC.

       ENDIF.
*    ELSE.
*       WRITE: / FUNCNAME, MESSAGE, POS.
*    ENDIF.

  ELSE.
      WRITE: / 'CHECK_FORMULA',20 'error!'.
  ENDIF.

ENDFORM.

还有另一种方法实现,详细见:http://tolyhuang.itpub.net/post/29951/287361

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/10842258/viewspace-52949/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/10842258/viewspace-52949/

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值