打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
SAP ABAP函数EVAL_FORMULA的应用
userphoto

2023.07.24 广东

关注

通过一个例子来了解下函数EVAL_FORMULA的应用

执行结果

例子源代码:

*&---------------------------------------------------------------------*
*& Report ZEVAL_FORMULA
*&---------------------------------------------------------------------*


report zeval_formula.



DATA: dataf TYPE f,
      datap TYPE lbkum.

PARAMETERS: formula(40) DEFAULT 'A+B+C+D',
            a_val       TYPE lbkum DEFAULT 3,
            b_val       TYPE lbkum DEFAULT 1,
            c_val       TYPE lbkum DEFAULT 2,
            d_val       TYPE lbkum DEFAULT 4.

START-OF-SELECTION.

  CALL FUNCTION 'CHECK_FORMULA'
    EXPORTING
      formula           = formula
      program           = sy-repid
      routine           = 'SUB_CHECK_FORMULA'
*     UNIT_OF_MEASURE   = ' '
* IMPORTING
*     FUNCNAME          =
*     MESSAGE           =
*     POS               =
*     SUBRC             =
    EXCEPTIONS
      error_in_formula  = 1
      missing_parameter = 2
      OTHERS            = 3.
  IF sy-subrc <> 0.
    MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
          WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
  ENDIF.

  CALL FUNCTION 'EVAL_FORMULA'
    EXPORTING
      formula                 = formula
      program                 = sy-repid
      routine                 = 'SUB_GET_VALUE'
    IMPORTING
      value                   = dataf
    EXCEPTIONS
      division_by_zero        = 1
      exp_error               = 2
      formula_table_not_valid = 3
      invalid_expression      = 4
      invalid_value           = 5
      log_error               = 6
      parameter_error         = 7
      sqrt_error              = 8
      units_not_valid         = 9
      missing_parameter       = 10
      OTHERS                  = 11.

  IF sy-subrc <> 0.
    MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
          WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
  ELSE.

    MOVE dataf TO datap.
    WRITE:/ formula, datap.
  ENDIF.

FORM sub_check_formula USING VALUE(name)
                       CHANGING VALUE(subrc).
  subrc = 0.

ENDFORM.


FORM sub_get_value USING VALUE(name)
                  CHANGING VALUE(value)
                           VALUE(subrc).
  subrc = 0.
  value = 0.
  CASE name.
    WHEN 'A'.
      value = a_val.
    WHEN 'B'.
      value = b_val.
    WHEN 'C'.
      value = c_val.
    WHEN 'D'.
      value = d_val.
  ENDCASE.
ENDFORM.                    "VAR_GET

看懂上面例子代码,你基本就掌握了ABAP标准函数EVAL_FORMULA的应用了。

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
ABAP中对变式的处理
一个不使用CRM中间件成功地将ERP Material下载到CRM的原型开发
ABAP 常用日期转换函数
一些常用的系统变量(SYST)
Python中的函数和方法
盘点JavaScript中那些进阶操作知识(上篇)
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服