ABAP 浮点型运算

简介: ABAP函数EVAL_FORMULA计算公式 背景 ABAP实现动态的表达式计算,可以使用函数EVAL_FORMULA实现,参考代码在下面;同时也可以考虑用类CL_JAVA_SCRIPT调用js功能实现。

参考代码
&---------------------------------------------------------------------
& Report YFORMULA_TEST &--------------------------------------------------------------------- &
&---------------------------------------------------------------------
&---------------------------------------------------------------------
& Report YFORMULA &--------------------------------------------------------------------- &
&---------------------------------------------------------------------
report yformula.

data: dataf type f,
datap type lbkum.

parameters: formula(40) default 'ABC*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

目录
相关文章
|
JavaScript 前端开发 Java
正则表达式深度解析:匹配任意字符串
【4月更文挑战第1天】
7397 0
|
8月前
|
数据采集 存储 监控
网站价格监控:动态价格数据的实时抓取案例
本案例展示了如何利用爬虫技术实时抓取京东等电商平台的商品信息、价格及用户评价,通过代理IP、Cookie和User-Agent确保数据稳定采集。关键数据分析包括价格动态监控、评价趋势分析和竞争情报获取,助力商家制定策略。代码从简单请求逐步演进为具备异常处理、数据解析等功能的完整体系,并设计了「技术关系图谱」,直观展示系统模块间的关系,为开发者提供全局视角和技术路径参考。
1250 0
网站价格监控:动态价格数据的实时抓取案例
|
存储 消息中间件 API
FreeRTOS入门教程(堆和栈)
FreeRTOS入门教程(堆和栈)
618 0
|
JSON 供应链 数据挖掘
抖音商品sku数据接口(Dy.item_sku)丨抖音平台API数据接口指南
抖音商品详情SKU数据接口(Dy.item_sku)由抖音开放平台提供,用于获取商品详细信息,包括名称、价格、图片等。开发者需注册并获取权限,遵循API限制,通过商品ID调用接口,解析JSON格式返回数据。该接口广泛应用于商品展示、库存管理、订单处理及数据分析,助力提升工作效率和用户体验。使用时需遵守平台规则,确保数据安全。
1442 3
|
消息中间件 算法 中间件
|
存储 缓存 JSON
详解HTTP四种请求:POST、GET、DELETE、PUT
【4月更文挑战第3天】
71119 5
详解HTTP四种请求:POST、GET、DELETE、PUT
工作笔记之 SELECT 语句在 SAP ABAP 中的用法总结(下)(2)
在上一篇文章中,我们介绍了 ABAP 的查询语句关键的三个部分: 1.SELECT result 部分 2.FROM source 部分 3.INTO target 部分
工作笔记之 SELECT 语句在 SAP ABAP 中的用法总结(下)(2)
SAP ABAP——简单函数编写及调用
本文是一个ABAP简单函数编写以及调用的demo,废话不多说直接看demo场景
965 2
SAP ABAP——简单函数编写及调用
|
SQL
SAP ABAP-OPENSQL-字符串函数介绍
S4中SQL新语法字符串函数
481 0
|
SQL
SAP ABAP-OPENSQL-日期/时间戳函数
S4提供针对OPENSQL一些新的SQL函数调用,本文展示相关函数的使用
1267 0
下一篇
oss云网关配置