ABAP Function

ABAP Coding过程中比较好用的Function整理。

1.获取Domain信息

代码实例:

"********************************获取domain
FORM f_get_domain.
  DATA:fs_taba TYPE dd07v.
  DATA:it_taba TYPE STANDARD TABLE OF dd07v.
  DATA:it_tabb TYPE STANDARD TABLE OF dd07v.   CALL FUNCTION 'DD_DOMA_GET'
    EXPORTING
      DOMAIN_NAME   = 'XXX'
      LANGU         = SY-LANGU
      WITHTEXT      = 'X'
    TABLES
      DD07V_TAB_A   = it_taba
      DD07V_TAB_N   = it_tabb
    EXCEPTIONS
      ILLEGAL_VALUE = 1
      OP_FAILURE    = 2
      OTHERS        = 3.
  IF SY-SUBRC = 0.
    LOOP AT  it_taba INTO fs_taba.
      WRITE:/ sy-tabix,fs_taba-domvalue_l,fs_taba-ddtext.
    ENDLOOP.
    LOOP AT it_tabb INTO fs_taba.
      WRITE:/ sy-tabix,fs_taba-domvalue_l,fs_taba-ddtext.
    ENDLOOP.
  ENDIF.
ENDFORM.

2.非金额单位数据转换

代码实例:

"*************************单位数据转换
FORM f_change_unit.
  DATA:v_out TYPE P DECIMALS 1.
  DATA:v_in TYPE P DECIMALS 1 VALUE 1000.
  CALL FUNCTION 'UNIT_CONVERSION_SIMPLE'
    EXPORTING
      INPUT                      = v_in
*     NO_TYPE_CHECK              = 'X'
*     ROUND_SIGN                 = ' '
      UNIT_IN                    = 'G'
      UNIT_OUT                   = 'KG'
    IMPORTING
      OUTPUT                     = v_in.   IF SY-SUBRC <> 0.
    MESSAGE s000 WITH 'error'.
  ELSE.
    MESSAGE s000 WITH v_in.
*  Implement suitable error handling here
  ENDIF.
ENDFORM.

3.获取金额转换汇率

代码实例:

"获取汇率转换汇率
FORM f_get_rate.
  DATA:lv_type TYPE tcurr-kurst.
  DATA:lv_rate TYPE P LENGTH 15 DECIMALS 2.
  DATA:lv_msg TYPE string.
  lv_type = 'AVTW'.
  "获取汇率
  CALL FUNCTION 'READ_EXCHANGE_RATE'
    EXPORTING
      CLIENT           = sy-mandt
      DATE             = sy-datum
      FOREIGN_CURRENCY = 'RMB'
      LOCAL_CURRENCY   = 'USD'
      TYPE_OF_RATE     = lv_type
    IMPORTING
      EXCHANGE_RATE    = lv_rate
    EXCEPTIONS
      NO_RATE_FOUND = 1
      NO_FACTORS_FOUND = 2
      NO_SPREAD_FOUND = 3
      DERIVED_2_TIMES = 4
      OVERFLOW = 5
      ZERO_RATE = 6.
  IF sy-subrc <> 0.
    lv_msg = 'Get exchange rate failed!'.
    MESSAGE lv_msg TYPE 'E'.
  ELSE.
    lv_msg = 'Translate RMB TO USD Rate:' && lv_rate.
    MESSAGE lv_msg TYPE 'S'.
  ENDIF.
ENDFORM.

4.字符串转换到字符串内表

Function Group:SCMS_CONV

字符串转换到字符串内表:SCMS_STRING_TO_FTEXT

字符串转换成Xstring: SCMS_STRING_TO_XSTRING

字符串内表转换Xstring: SCMS_FTEXT_TO_XSTRING

字符串内表转换String: SCMS_FTEXT_TO_STRING

代码实例:

"***********************字符串转换为字符串内表
FORM f_trans_strtoitab.
  TYPES:BEGIN OF t_str,
        str(255) TYPE C,
        END OF t_str.
  DATA:lt_str TYPE TABLE OF t_str.
  DATA:ls_str LIKE LINE OF lt_str.
  DATA:lv_length TYPE i.
  CALL FUNCTION 'SCMS_STRING_TO_FTEXT'
    EXPORTING
      TEXT            = 'hello world懒得看缴费对的看法角度abcdef'
    IMPORTING
      LENGTH          = lv_length
    TABLES
      FTEXT_TAB       = lt_str.
  WRITE:/ lv_length.
  LOOP AT lt_str INTO ls_str.
    WRITE:/ ls_str-str.
  ENDLOOP.
ENDFORM.

5.根据字符串公式计算值

代码实例:

"******************通过公式计算分数
TYPES:t_p TYPE p LENGTH 15 DECIMALS 2.
FORM f_calculate_formula
  USING iv_formula TYPE string
  CHANGING ev_result TYPE t_p.
  DATA:lv_qsollwerte TYPE qsollwerte.
  DATA:lv_float TYPE float.   CALL FUNCTION 'EVAL_FORMULA'
    EXPORTING
      formula = iv_formula
    IMPORTING
      value = lv_float.   ev_result = lv_float.
ENDFORM.
FORM f_test_cal.
  DATA:lv_formula TYPE string.
  DATA:lv_res TYPE P LENGTH 15 DECIMALS 2.   lv_formula = '1000/200+20*(0.25/1.2)*10'.
  PERFORM f_calculate_formula USING lv_formula CHANGING lv_res.
  lv_res = lv_res.
  WRITE:/ lv_res.
ENDFORM.

6.字符串前导0的添加与删除

代码实例:

"******************字符串前补0,删除前导0
FORM f_numb_0.
  "*******************************************数字符串前补0
  WRITE:/'数字字符串前补0'.
  DATA: input_p(3) type N value '344'.
  DATA: output_p(20) type N.   CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
    EXPORTING
      INPUT         = input_p
   IMPORTING
     OUTPUT        = output_p
            .
  WRITE:/ input_p,'----', output_p.   "*****************************************消除数字符串前0
  DATA: input_p1(10) type N value '00034'.
  DATA: output_p1(3) type N .
  CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT'
    EXPORTING
      INPUT         = input_p1
   IMPORTING
     OUTPUT        = output_p1
     .
  WRITE:/ input_p1,'----',output_p1.
ENDFORM.

7.全角半角转换

代码实例:

"*******************************全角半角转换
FORM f_change_quanjiao.
  DATA:lv_c TYPE C  LENGTH 20.
  lv_c = '  hello自大'.   "全角转换半角
  CALL FUNCTION 'SJIS_DBC_TO_SBC'
    EXPORTING
      ALL = 'X'
  CHANGING
    TEXT = lv_c.
  IF SY-SUBRC <> 0.   ELSE.
    WRITE:/ lv_c.
    CONDENSE lv_c NO-GAPS.
    WRITE:/ lv_c.
  ENDIF.   "半角转换全角
  CALL FUNCTION 'SJIS_SBC_TO_DBC'
    EXPORTING
      ALL   = 'X'
*   IMPORTING
*     CONVERTED              =
*     HIT                    =
    CHANGING
      TEXT  = lv_c
    EXCEPTIONS
      OVERFLOW               = 1
      OTHERS                 = 2.
  IF SY-SUBRC <> 0.
    MESSAGE 'error' TYPE 'E'.
  ELSE.
    WRITE:/ lv_c.
  ENDIF.
ENDFORM.

 

ABAP学习(35):常用Function的更多相关文章

  1. abap 常用 function

    ABAP常用函数总结  alv .smartform. excel .text.邮件 .远程访问,FTP服务器...  **********常用功能function REUSE_ALV_GRID_DI ...

  2. 转载-聊一聊深度学习的activation function

    目录 1. 背景 2. 深度学习中常见的激活函数 2.1 Sigmoid函数 2.2 tanh函数 2.3 ReLU函数 2.4 Leaky ReLu函数 2.5 ELU(Exponential Li ...

  3. SAP ABAP学习路线图--标准教程

    SAP ABAP学习路线图--标准教程 摘自:http://www.cnblogs.com/clsoho/archive/2010/07/05/1771400.html

  4. IOS学习:常用第三方库(GDataXMLNode:xml解析库)

    IOS学习:常用第三方库(GDataXMLNode:xml解析库) 解析 XML 通常有两种方式,DOM 和 SAX: DOM解析XML时,读入整个XML文档并构建一个驻留内存的树结构(节点树),通过 ...

  5. Swift学习之常用UI的使用

    Swift学习之常用UI的使用 最近笔者在开始学习苹果最新的编程语言,因为笔者认为,苹果既然出了这门语言就绝对不会放弃,除非苹果倒闭了(当然这里知识一个玩笑). 所以在不久的将来,swift绝对是iO ...

  6. IOS开发-OC学习-常用功能代码片段整理

    IOS开发-OC学习-常用功能代码片段整理 IOS开发中会频繁用到一些代码段,用来实现一些固定的功能.比如在文本框中输入完后要让键盘收回,这个需要用一个简单的让文本框失去第一响应者的身份来完成.或者是 ...

  7. springmvc学习笔记(常用注解)

    springmvc学习笔记(常用注解) 1. @Controller @Controller注解用于表示一个类的实例是页面控制器(后面都将称为控制器). 使用@Controller注解定义的控制器有如 ...

  8. c/c++再学习:常用字符串转数字操作

    c/c++再学习:常用字符串转数字操作 能实现字符串转数字有三种方法,atof函数,sscanf函数和stringstream类. 具体demo代码和运行结果 #include "stdio ...

  9. 一张图学习vim常用命令

    一张图学习vim常用命令

  10. Python 常用模块系列学习(1)--random模块常用function总结--简单应用--验证码生成

    random模块--random是一个生成器 首先: import random    #导入模块 print (help(random))    #打印random模块帮助信息 常用function ...

随机推荐

  1. 第三方模块的下载与使用 requests模块 openpyxl模块

    今日内容 第三方模块下载操作 第三方模块: 别人写的魔魁啊 一般情况下都很强大 python中模块很多 如果想使用第三方模块 第一次必须先下载 后面就可以反复使用 =内置模块 下载第三方模块的方式: ...

  2. 标准if-else语句-扩展if-else语句

    标准if-else语句 if语句第二种格式: if...else if(关系表达式) { 语句体1; }else { 语句体2; } 执行流程 首先判断关系表达式看其结果是true还是false 如果 ...

  3. Unreal学习笔记2-绘制简单三角形

    目录 1. 概述 2. 详论 2.1. 代码实现 2.2. 解析:Component 2.3. 解析:材质 2.4. 解析:包围盒 2.5. 解析:Section 3. 其他 4. 参考 1. 概述 ...

  4. 12月23日内容总结——csrf跨站请求伪造、校验策略、相关装饰器,auth认证模块及相关操作,拓展auth_user表

    目录 一.csrf跨站请求伪造 概念引入 概念讲解 二.csrf校验策略 概念讲解 form表单操作csrf策略 ajax请求csrf策略 三.csrf相关装饰器 四.auth认证模块 五.auth认 ...

  5. 【HMS Core】机器学习服务助力APP快速集成图像分割与上传功能

    ​ 1.介绍 总览 机器学习服务(ML Kit)提供机器学习套件,为开发者使用机器学习能力开发各类应用,提供优质体验.得益于华为长期技术积累,ML Kit为开发者提供简单易用.服务多样.技术领先的机器 ...

  6. 计算机网络基础08 Socket网络通信

    部分内容来自:https://www.jianshu.com/p/066d99da7cbd 1  七层网络架构 在解释socket之前,先了解下七层网络架构 https://www.cnblogs.c ...

  7. Listary 文件搜索工具

    Listary简介 Listary是一款强大的全盘文件搜索.软件启动效率工具,双击Ctrl随时调出搜索框,全盘海量文件毫秒级检索,快速定位打开所需文件.集成右键菜单和诸多自定义动作,适配Windows ...

  8. The Missing Semester - 第一讲 学习笔记

    The Missing Semester - 第一讲 学习笔记 第一讲 课程概览与 shell 课程视频地址: https://www.bilibili.com/video/BV1Eo4y1d7KZ/ ...

  9. JavaScript是怎样实现继承的?

    一.是什么 继承(inheritance)是面向对象软件技术当中的一个概念. 如果一个类别B"继承自"另一个类别A,就把这个B称为"A的子类",而把A称为&qu ...

  10. Linux练习题--打印文本第10行

    文本test.txt,需要打印文本第10行 方法一: sed -n '10p' test.txt 说明:sed命令使用-n参数时,只有经过sed 特殊处理的那一行(或者动作)才会被列出来. 命令&qu ...