![cover](https://img-blog.csdnimg.cn/eef63dbe3ebb4b069e5fd459ea699feb.png)
SAP代码基础--数据元素、变量、结构、结构体变量、字符串处理、替换、查找字符串、拼接、拆分、去空格、循环
【代码】SAP代码基础--数据元素、变量、结构、结构体变量、字符串处理、替换、查找字符串、拼接、拆分、去空格、循环。
·
数据元素、变量、结构、结构体变量–声明
*---------自定义数据类型------*
*数据元素
TYPES: TY_BU01(10) TYPE C."合作伙伴
TYPES: TY_BU02 TYPE TY_BU01.
TYPES: TY_BU03 TYPE TY_BU01.
*结构
TYPES: BEGIN OF TY_STRUCT,"业务伙伴信息
NAME(10) TYPE C,
AGE(2) TYPE I,
TEL(11) TYPE N,
END OF TY_STRUCT.
*-------变量------*
DATA:LV_BU01 TYPE TY_BU01,
LV_BU02 TYPE TY_BU02,
LV_BU03 TYPE TY_BU03,
LV_STRUCT TYPE TY_STRUCT.
LV_BU01 ='张三'.
SKIP.
LV_BU02 ='李四'.
LV_BU03 = LV_BU01.
WRITE:/ 'LV_BU01:',LV_BU01.
WRITE:/ 'LV_BU02:',LV_BU02.
WRITE:/ 'LV_BU03:',LV_BU03.
WRITE: SY-ULINE.
LV_STRUCT-NAME = LV_BU01.
LV_STRUCT-AGE = 30.
LV_STRUCT-TEL ='13489766786'.
WRITE:/'LV_STRUCT:'.
WRITE:/'LV_STRUCT-NAME :',LV_STRUCT-NAME .
WRITE:/'LV_STRUCT-age:',LV_STRUCT-AGE.
WRITE:/'LV_STRUCT-TEL:',LV_STRUCT-TEL.
WRITE: SY-ULINE.
*结构体变量
DATA: BEGIN OF LS_STRUCT,"业务伙伴信息
NAME(10) TYPE C,
AGE(3) TYPE I,
TEL(11) TYPE N,
END OF LS_STRUCT.
LS_STRUCT = LV_STRUCT.
WRITE:/'LS_STRUCT:'.
WRITE:/'LS_STRUCT-NAME :',LS_STRUCT-NAME .
WRITE:/'LS_STRUCT-age:',LS_STRUCT-AGE.
WRITE:/'LS_STRUCT-TEL:',LS_STRUCT-TEL.
DATA : BEGIN OF LS_CUSTRMER.
INCLUDE STRUCTURE LS_STRUCT.
DATA: ADDDRESS(40) TYPE C,
END OF LS_CUSTRMER.
MOVE-CORRESPONDING LS_STRUCT TO LS_CUSTRMER.
LS_CUSTRMER-ADDDRESS ='深圳市龙华区汇德大厦'.
LS_CUSTRMER-NAME ='深圳'.
WRITE:/'LS_CUSTRMER:'.
WRITE:/'LS_CUSTRMER-NAME:',20 LS_CUSTRMER-NAME.
WRITE:/'LS_CUSTRMER-AGE:',LS_CUSTRMER-AGE.
WRITE:/'LS_CUSTRMER-TEL:',LS_CUSTRMER-TEL.
WRITE:/6'LS_CUSTRMER-ADDDRESS:' , (15) LS_CUSTRMER-ADDDRESS.
WRITE: SY-ULINE.
执行结果如下
字符串处理、替换、查找字符串、拼接、拆分、去空格、循环
*赋值,偏移量
DATA : LV_DATE1 LIKE SY-DATUM.
DATA : LV_DATE2 LIKE SY-DATUM.
LV_DATE1 = SY-DATUM.
LV_DATE2 = LV_DATE1.
LV_DATE2+6(2) = '31'.
WRITE LV_DATE1.
SKIP.
WRITE LV_DATE2.
TYPES: BEGIN OF TY_S1,
ID TYPE CHAR10,
NAME TYPE CHAR20,
END OF TY_S1.
TYPES: BEGIN OF TY_S2.
INCLUDE TYPE TY_S1.
TYPES : COUNT TYPE INT2.
TYPES : END OF TY_S2.
DATA : LS_S1 TYPE TY_S1.
DATA : LS_S2 TYPE TY_S2.
LS_S1-ID ='0001'.
LS_S1-NAME ='harry'.
MOVE-CORRESPONDING LS_S1 TO LS_S2.
WRITE:/ 'ls_s1-id:', LS_S1-ID.
WRITE:/ 'ls_s21-name:',LS_S1-NAME.
WRITE:/ 'ls_s2-id:',LS_S2-ID.
WRITE:/ 'ls_s2-name:', LS_S2-NAME.
WRITE:/ 'ls_s2-count:',LS_S2-COUNT.
*字符串处理
DATA : LV_STR1 TYPE STRING.
DATA : LV_STR2 TYPE STRING.
LV_STR1 = 'abcdefg'.
WRITE sy-uline.
WRITE :/,'lv_str1:',lv_str1.
SHIFT lv_str1 by 3 places right.
WRITE :/,'lv_str1:',lv_str1.
SHIFT lv_str1 left DELETING LEADING space.
WRITE :/,'lv_str1:',lv_str1.
*替换
lv_str1 = 'ABCDEFG'.
LV_Str2 = '1234'.
REPLACE 'ABC' with LV_STR2 INTO LV_STR1.
WRITE:/,'LV_STR1:',LV_STR1.
*转换大小写
*TRANSFER 'acd' to upper case.
*查找字符串
SEARCH lv_str1 for lv_str2.
WRITE :/'查找结果:',sy-SUBRC,sy-FDPOS.
SEARCH lv_str1 for 'D'.
WRITE :/'查找结果:',sy-SUBRC,sy-FDPOS.
*拼接
CONCATENATE LV_STR1 lv_str2 into LV_STR1 SEPARATED BY space.
WRITE :/,'拼接结果:',LV_STR1.
*拆分
clear:LV_STR2.
DATA : lv_str3 TYPE string.
SPLIT LV_STR1 at space into lv_str2 lv_str3.
WRITE : /'拆分lv_str2和lv_str3'.
WRITE :/'LV_STR2:',lv_str2.
WRITE :/'LV_STR3:',lv_str3.
*去除空格
CONDENSE lv_str3.
CONDENSE lv_str3 NO-GAPS.
*流程控制
data : lv_num type int2.
lv_num = 7.
IF lv_num mod 2 = 0.
WRITE:/'这是偶数'.
else.
WRITE :/'这是奇数'.
ENDIF.
SKIP.
*循环
DO 5 times.
WRITE:/,'当前是第',sy-index,'循环第一次打印'.
IF sy-index = 3.
CONTINUE.
ENDIF.
WRITE:/,'当前是第',sy-index,'循环第二次打印'.
ENDDO.
执行结果如下
更多推荐
所有评论(0)