数据元素、变量、结构、结构体变量–声明

*---------自定义数据类型------*
*数据元素
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.
执行结果如下

在这里插入图片描述

Logo

一座年轻的奋斗人之城,一个温馨的开发者之家。在这里,代码改变人生,开发创造未来!

更多推荐