`
Jack Wu
  • 浏览: 887192 次
  • 来自: ...
社区版块
存档分类
最新评论

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
 

分享到:
评论

相关推荐

    ABAP751 ABAP - Keyword Documentation

    ABAP - Keyword Documentation This documentation describes the syntax and meaning of the keywords of the ABAP language and its object-oriented part ABAP Objects. Alongside this, language frameworks ...

    SAP中文教材全系列之ABAP-BC400_ZH

    本文档是《SAP中文教材全系列之ABAP-BC400_ZH》,为SAP ABAP编程语言的学习提供参考。文档包含了详细的ABAP课程内容,旨在帮助学员理解并掌握ABAP编程的基础知识和高级技能。以下将详细阐释文档所涵盖的知识点。 ...

    sap_ABAP-动态内表

    SAP ABAP 中的动态内表是一种特殊的内表结构,它可以根据实际情况动态地生成和赋值。本文将详细介绍动态内表的创建、赋值和读取显示。 动态内表的创建 动态内表的创建主要分为两步:首先定义动态结构,然后根据...

    ABAP-培训教材目录

    ABAP-培训教材附录 ABAP-培训教材ABAP-培训教材ABAP-培训教材ABAP-培训教材

    CD260-ABAP-in-Eclipse-开发-CN

    CD260-ABAP-in-Eclipse-开发-CN CD260-ABAP-in-Eclipse-开发-CNCD260-ABAP-in-Eclipse-开发-CNCD260-ABAP-in-Eclipse-开发-CN

    eclipse-abap-keywordcolors-master.rar

    eclipse-abap-keywordcolors eclipse-abap-关键字颜色

    ABAP-操作Excel导出数据

    为了更好地理解这一过程,你可以参考提供的文档:《用OLE DOI 实现ABAP导出EXCEL表格.docx》和《ABAP-透過OLE操作OFFICE.docx》。同时,《OLE.pdf》可能包含更深入的OLE和DOI技术细节,这对于优化和调试代码会非常有...

    ABAP-数据类型学习笔记

    ABAP-数据类型学习笔记

    ABAP-学习笔记-通用

    ABAP-学习笔记-通用

    ABAP-ALV进阶

    "ABAP-ALV进阶知识点详解" ABAP-ALV进阶是指在SAP系统中使用ABAP语言开发的高级列表查看器(ALV)。ALV是SAP系统中心的列表标准,可以在ABAP程序中进行报表输出。下面是ABAP-ALV进阶的知识点详解: 一、ALV概要 ...

    SAP-ABAP-Certification-Review.pdf

    SAP-ABAP-Certification-Review.pdf

    abap-ALV.rar_ABAP系统ALV_abap_abap开发alv

    标题“abap-ALV.rar_ABAP系统ALV_abap_abap开发alv”暗示我们将深入探讨ABAP ALV的使用,特别是在ABAP系统中的应用以及如何进行开发。 描述中提到“ABAP ALV总结,ALV格式,REUSE_ALV_GRID_DISPLAY_LVC函数使用”,...

    ABAP-4目前最完美学习手册

    ### ABAP-4学习手册核心知识点解析 #### ABAP/4简介与基础 - **ABAP/4**:一种专为SAP系统设计的高级商业应用编程语言。 - **ABAP/4基础**:介绍了创建简单ABAP/4程序的方法,包括命名规则、程序属性指定等。 ###...

    web-dynpro-abap-ui-element-tree_Ch01_CV_Introduction_

    总结来说,“web-dynpro-abap-ui-element-tree”涵盖了Web Dynpro ABAP中创建和管理树形UI元素的核心概念和技术,包括UI元素定义、数据绑定、用户交互处理和测试。通过深入学习这一章节,开发者将能够构建出更加灵活...

    ABAP--ALV

    ### ABAP - ALV知识点详解 #### 一、ALV(Application List Viewer)概述 ALV,即Application List Viewer,是SAP系统中用于展示数据列表的一种通用工具。它能够帮助用户灵活地处理数据,包括排序、筛选等功能,...

    ABAP-选择屏幕

    ABAP-选择屏幕 Dynpros 基础 Dynpros 是ABAP编程语言中的一种基础组件,用于构建交互式用户界面。通过本文,我们将了解 Dynpros 的基本结构、屏幕元素的构成、屏幕事件等知识点。 屏幕元素 在 Dynpros 中,屏幕...

    ABAP-OLE开发[汇编].pdf

    ABAP-OLE开发是SAP系统中的一种技术,它允许ABAP编程语言与外部对象链接和嵌入(OLE)应用程序进行交互。OLE自动化是Windows环境中的一种技术,它使得不同的应用程序可以共享数据和服务,通常用于控制一个应用程序...

    ABAP-OLE[借鉴].pdf

    【ABAP-OLE技术在SAP中的应用】 在SAP编程中,ABAP-OLE(Object Linking and Embedding)是一种技术,它允许SAP应用程序与外部非SAP系统进行交互,例如创建、读取、更新和删除Excel电子表格。在上述代码中,我们...

    SAP-ABAP-OO-实现-CL-SALV-TABLE

    ### SAP-ABAP-OO 实现 CL-SALV-TABLE 的关键知识点 #### 1. ABAP 面向对象的 ALV 显示方法 在 SAP 的 ABAP 环境中,ALV (Application List Viewer) 是一种非常常用的技术,用于在屏幕上以表格的形式展示数据。传统...

Global site tag (gtag.js) - Google Analytics