A = 3.14
B= -3.1415
1.四舍五入取整
CEIL( A ) = 3.
2.向下取整
FLOOR( A ) = 3 .
3.取绝对值
ABS( B ) = 3.1415 .
4.字符串长度
STRLEN( A ) = 4
5.除法取整
A DIV B = 0 .
B DIV A = -1 .
6.除法取余
A MOD B
7.内表行数
DATA: LV_LINES TYPE INT4.
LV_LINES = LINES( GT_OUT[] ).
8.取UUID
cl_system_uuid=>if_system_uuid_static~create_uuid_c22( RECEIVING uuid = DATA(lv_uuid_c22) ).
cl_system_uuid=>if_system_uuid_static~create_uuid_x16( RECEIVING uuid = DATA(lv_uuid_x16) ).
cl_system_uuid=>if_system_uuid_static~create_uuid_x16( RECEIVING uuid = DATA(lv_uuid_c26) ).
cl_system_uuid=>if_system_uuid_static~create_uuid_x16( RECEIVING uuid = DATA(lv_uuid_c32) ).
cl_system_uuid=>if_system_uuid_static~create_uuid_x16( RECEIVING uuid = DATA(lv_uuid_c36) ).
"取不同位数的UUID
9.快速展示报表,无fieldcat
cl_demo_output=>display( <itab> ) .
10.抓异常的万能异常
DATA lv_oref TYPE REF TO cx_root.
TRY .
。。。
CATCH cx_root INTO lv_oref.
11.选择屏幕假必输,选择屏幕带必输的勾,但是实际上可以不输入数据
initialization.
LOOP AT SCREEN.
IF screen-NAME = 'p_gjahr' OR screen-NAME = 'p_monat'.
screen-required = '2'.
ENDIF.
MODIFY SCREEN.
ENDLOOP.
12. 直接修改程序不传请求:程序RS_REPAIR_SOURCE的FORM authority_check
13.去掉无用的0和空格
CONDENSE l_str . " 必须有,否则下面的语句不生效
SHIFT l_str RIGHT DELETING TRAILING '0' . "去掉没用的小数位的0
SHIFT l_str RIGHT DELETING TRAILING '.' . "去掉没用的小数点
SHIFT L_STR LEFT DELETING TRAILING SPACE .去掉左边无用空格
13. 程序检查报错直接返回选择屏幕不往后面执行
IF s_budat[] IS INITIAL.
MESSAGE '过账日期必输' TYPE 'S' DISPLAY LIKE 'E'.
LEAVE LIST-PROCESSING AND RETURN TO SCREEN 0.
ENDIF.
四舍五入函数
DATA p1 TYPE p DECIMALS 2 VALUE '1.6'.
DATA p2 TYPE i .
CALL FUNCTION 'ROUND'
EXPORTING
DECIMALS = 0
input = p1
SIGN = '+ '
IMPORTING
OUTPUT = p2
EXCEPTIONS
INPUT_INVALID = 1
OVERFLOW = 2
TYPE_INVALID = 3
OTHERS = 4
.
IF sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
WRITE p2.
输出的结果是2,注意:
1.如果sign参数传入的是'-',则输出的是1,
2.如果不传入参数输出的是2,如果P2定义的和p1是一样的类型时,输出的是原来的数据。
3.如果是’+‘,并且P2定义的和P1一样的类型时,输出的是2.00
4.如果sign参数传入的是空,会自动四舍五入