ABAP Function

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

1.获取Domain信息

代码实例:

  1. "********************************获取domain
  2. FORM f_get_domain.
  3.   DATA:fs_taba TYPE dd07v.
  4.   DATA:it_taba TYPE STANDARD TABLE OF dd07v.
  5.   DATA:it_tabb TYPE STANDARD TABLE OF dd07v.
  6.  
  7.   CALL FUNCTION 'DD_DOMA_GET'
  8.     EXPORTING
  9.       DOMAIN_NAME   = 'XXX'
  10.       LANGU         = SY-LANGU
  11.       WITHTEXT      = 'X'
  12.     TABLES
  13.       DD07V_TAB_A   = it_taba
  14.       DD07V_TAB_N   = it_tabb
  15.     EXCEPTIONS
  16.       ILLEGAL_VALUE = 1
  17.       OP_FAILURE    = 2
  18.       OTHERS        = 3.
  19.   IF SY-SUBRC = 0.
  20.     LOOP AT  it_taba INTO fs_taba.
  21.       WRITE:/ sy-tabix,fs_taba-domvalue_l,fs_taba-ddtext.
  22.     ENDLOOP.
  23.     LOOP AT it_tabb INTO fs_taba.
  24.       WRITE:/ sy-tabix,fs_taba-domvalue_l,fs_taba-ddtext.
  25.     ENDLOOP.
  26.   ENDIF.
  27. ENDFORM.

2.非金额单位数据转换

代码实例:

  1. "*************************单位数据转换
  2. FORM f_change_unit.
  3.   DATA:v_out TYPE P DECIMALS 1.
  4.   DATA:v_in TYPE P DECIMALS 1 VALUE 1000.
  5.   CALL FUNCTION 'UNIT_CONVERSION_SIMPLE'
  6.     EXPORTING
  7.       INPUT                      = v_in
  8. *     NO_TYPE_CHECK              = 'X'
  9. *     ROUND_SIGN                 = ' '
  10.       UNIT_IN                    = 'G'
  11.       UNIT_OUT                   = 'KG'
  12.     IMPORTING
  13.       OUTPUT                     = v_in.
  14.  
  15.   IF SY-SUBRC <> 0.
  16.     MESSAGE s000 WITH 'error'.
  17.   ELSE.
  18.     MESSAGE s000 WITH v_in.
  19. *  Implement suitable error handling here
  20.   ENDIF.
  21. ENDFORM.

3.获取金额转换汇率

代码实例:

  1. "获取汇率转换汇率
  2. FORM f_get_rate.
  3.   DATA:lv_type TYPE tcurr-kurst.
  4.   DATA:lv_rate TYPE P LENGTH 15 DECIMALS 2.
  5.   DATA:lv_msg TYPE string.
  6.   lv_type = 'AVTW'.
  7.   "获取汇率
  8.   CALL FUNCTION 'READ_EXCHANGE_RATE'
  9.     EXPORTING
  10.       CLIENT           = sy-mandt
  11.       DATE             = sy-datum
  12.       FOREIGN_CURRENCY = 'RMB'
  13.       LOCAL_CURRENCY   = 'USD'
  14.       TYPE_OF_RATE     = lv_type
  15.     IMPORTING
  16.       EXCHANGE_RATE    = lv_rate
  17.     EXCEPTIONS
  18.       NO_RATE_FOUND = 1
  19.       NO_FACTORS_FOUND = 2
  20.       NO_SPREAD_FOUND = 3
  21.       DERIVED_2_TIMES = 4
  22.       OVERFLOW = 5
  23.       ZERO_RATE = 6.
  24.   IF sy-subrc <> 0.
  25.     lv_msg = 'Get exchange rate failed!'.
  26.     MESSAGE lv_msg TYPE 'E'.
  27.   ELSE.
  28.     lv_msg = 'Translate RMB TO USD Rate:' && lv_rate.
  29.     MESSAGE lv_msg TYPE 'S'.
  30.   ENDIF.
  31. 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

代码实例:

  1. "***********************字符串转换为字符串内表
  2. FORM f_trans_strtoitab.
  3.   TYPES:BEGIN OF t_str,
  4.         str(255) TYPE C,
  5.         END OF t_str.
  6.   DATA:lt_str TYPE TABLE OF t_str.
  7.   DATA:ls_str LIKE LINE OF lt_str.
  8.   DATA:lv_length TYPE i.
  9.   CALL FUNCTION 'SCMS_STRING_TO_FTEXT'
  10.     EXPORTING
  11.       TEXT            = 'hello world懒得看缴费对的看法角度abcdef'
  12.     IMPORTING
  13.       LENGTH          = lv_length
  14.     TABLES
  15.       FTEXT_TAB       = lt_str.
  16.   WRITE:/ lv_length.
  17.   LOOP AT lt_str INTO ls_str.
  18.     WRITE:/ ls_str-str.
  19.   ENDLOOP.
  20. ENDFORM.

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

代码实例:

  1. "******************通过公式计算分数
  2. TYPES:t_p TYPE p LENGTH 15 DECIMALS 2.
  3. FORM f_calculate_formula
  4.   USING iv_formula TYPE string
  5.   CHANGING ev_result TYPE t_p.
  6.   DATA:lv_qsollwerte TYPE qsollwerte.
  7.   DATA:lv_float TYPE float.
  8.  
  9.   CALL FUNCTION 'EVAL_FORMULA'
  10.     EXPORTING
  11.       formula = iv_formula
  12.     IMPORTING
  13.       value = lv_float.
  14.  
  15.   ev_result = lv_float.
  16. ENDFORM.
  17. FORM f_test_cal.
  18.   DATA:lv_formula TYPE string.
  19.   DATA:lv_res TYPE P LENGTH 15 DECIMALS 2.
  20.  
  21.   lv_formula = '1000/200+20*(0.25/1.2)*10'.
  22.   PERFORM f_calculate_formula USING lv_formula CHANGING lv_res.
  23.   lv_res = lv_res.
  24.   WRITE:/ lv_res.
  25. ENDFORM.

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

代码实例:

  1. "******************字符串前补0,删除前导0
  2. FORM f_numb_0.
  3.   "*******************************************数字符串前补0
  4.   WRITE:/'数字字符串前补0'.
  5.   DATA: input_p(3) type N value '344'.
  6.   DATA: output_p(20) type N.
  7.  
  8.   CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
  9.     EXPORTING
  10.       INPUT         = input_p
  11.    IMPORTING
  12.      OUTPUT        = output_p
  13.             .
  14.   WRITE:/ input_p,'----', output_p.
  15.  
  16.   "*****************************************消除数字符串前0
  17.   DATA: input_p1(10) type N value '00034'.
  18.   DATA: output_p1(3) type N .
  19.   CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT'
  20.     EXPORTING
  21.       INPUT         = input_p1
  22.    IMPORTING
  23.      OUTPUT        = output_p1
  24.      .
  25.   WRITE:/ input_p1,'----',output_p1.
  26. ENDFORM.

7.全角半角转换

代码实例:

  1. "*******************************全角半角转换
  2. FORM f_change_quanjiao.
  3.   DATA:lv_c TYPE C  LENGTH 20.
  4.   lv_c = '  hello自大'.
  5.  
  6.   "全角转换半角
  7.   CALL FUNCTION 'SJIS_DBC_TO_SBC'
  8.     EXPORTING
  9.       ALL = 'X'
  10.   CHANGING
  11.     TEXT = lv_c.
  12.   IF SY-SUBRC <> 0.
  13.  
  14.   ELSE.
  15.     WRITE:/ lv_c.
  16.     CONDENSE lv_c NO-GAPS.
  17.     WRITE:/ lv_c.
  18.   ENDIF.
  19.  
  20.   "半角转换全角
  21.   CALL FUNCTION 'SJIS_SBC_TO_DBC'
  22.     EXPORTING
  23.       ALL   = 'X'
  24. *   IMPORTING
  25. *     CONVERTED              =
  26. *     HIT                    =
  27.     CHANGING
  28.       TEXT  = lv_c
  29.     EXCEPTIONS
  30.       OVERFLOW               = 1
  31.       OTHERS                 = 2.
  32.   IF SY-SUBRC <> 0.
  33.     MESSAGE 'error' TYPE 'E'.
  34.   ELSE.
  35.     WRITE:/ lv_c.
  36.   ENDIF.
  37. 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. [LeetCode]819. 最常见的单词

    题目 给定一个段落 (paragraph) 和一个禁用单词列表 (banned).返回出现次数最多,同时不在禁用列表中的单词.题目保证至少有一个词不在禁用列表中,而且答案唯一. 禁用列表中的单词用小写 ...

  2. P5690 [CSP-S2019 江西] 日期

    简要题意 给你一个格式为 \(\texttt{MM-DD}\) 的日期.你每一次可以更改一个整数,花费 \(1\) 的代价.求将该日期改为一个合法的日期的最小代价.(注:\(2\) 月视为 \(28\ ...

  3. 揭开华为云CodeArts TestPlan启发式测试设计神秘面纱!

    摘要:质量是产品的生死线. 本文分享自华为云社区<揭开华为云CodeArts TestPlan启发式测试设计神秘面纱!>,作者:华为云PaaS服务小智 . 2019年12月20日,是美国波 ...

  4. three.js一步一步来--如何画出一根线

    下面是画出线的代码,可以参考一下哟~~ <template> <div style="width:1000px; height:800px"> <p& ...

  5. js函数中的this指向

    写代码的时候遇到这个问题了,在这里复习一下 非箭头函数 非箭头函数的this指向比较好理解,就是调用这个函数的对象,举个栗子: var obj = { foo: { bar: 3, foo:{ bar ...

  6. FLASH-CH32F203替换STM32F103 FLASH快速编程移植说明

    因CH32F203 相对于STM32 flash 操作多了快速编程模式,该文档说明主要目的是为了方便客户在原先ST 工程的基础上实现flash 快速编程模式的快速移植. 1.在stm32f10x.h ...

  7. Linux存储服务

    存储服务 一.概述 存储:用于存放用户上传的内容(数据),一般应用在网站集群中 为什么要存储? 如果不使用存储,用户上传的数据就直接存放在某一台网站服务器上了,用户下次访问就可能找不到 如果使用存储, ...

  8. 真正“搞”懂HTTP协议11之代理服务

    代理,其实全称应该叫做代理服务器,它是客户端与服务器之间得中间层,本质上来说代理就是一个服务器,在HTTP的链路中插入的一个中间环节,就是代理服务器啦.所谓的代理服务就是指:服务本身不生产内容,而是处 ...

  9. Vue18 过滤器

    1 简介 过滤器(filter)是输送介质管道上不可缺少的一种装置,大白话,就是把一些不必要的东西过滤掉,过滤器实质不改变原始数据,只是对数据进行加工处理后返回过滤后的数据再进行调用处理,我们也可以理 ...

  10. WinNTSetup V5.3.0 Bata5 单文件版

    前言 WinNTSetup 是一款Windows系统硬盘安装器,支持从PE和本地安装系统,支持支持NT内核的系统. WinNTSetup 包括XP.Win7.Win8.Win8.1.Win10等这些系 ...