SAP 關鍵字示例

WRITE

DATA:MSG1(20) TYPE C VALUE '測試',
            MSG2(20) TYPE C VALUE 'ABAP',
            MSG3(20) TYPE C VALUE '消息!'.

WRITE 'HELLO WORLD'.
WRITE / TEXT-001.  “                                                                                                                               注意反斜杠兩邊的空格
"MESSAGE E003(YMESS).
MESSAGE I006(YMESS) WITH MSG1 MSG2 MSG3. 

 

FIELD-SYMBOLS

*3.1FIELD-SYMBOLS---------------------------------------------------------------------*
DATA:BEGIN OF MAN,
            NAME(30) TYPE C,                                                                                                                          "長度不足左邊會補以空格顯示
            HIGH TYPE P DECIMALS 2,
            WEIGHT TYPE P DECIMALS 2,
            END OF MAN.

FIELD-SYMBOLS <FSA> LIKE MAN.
 DATA MAN1 LIKE MAN.
 MAN1-NAME =' ZHANGLIN'.                                                                                                                  "注意等號空格
 MAN1-HIGH = '1.78'.
 MAN1-WEIGHT = 140.

 ASSIGN MAN1 TO <FSA>.
 WRITE: / <FSA>-NAME,                                                              

CONCATENATE

3.2.1合并字符串---------------------------------------------------------------------*
*
CONCATENATE:实现字符串的合并
SPARATED BY表示在连接字符串中加入符号

DATA:C1(2) TYPE C,
      C2(2) TYPE C,
      C3(2) TYPE C,
      C4(2) TYPE C,
      C5(20) TYPE C,
      C9(2) TYPE C.

C1 = 'AB'.
C2 = 'CD'.
C3 = 'EF'.
C4 = 'GH'.
C9 = '+'.

CONCATENATE C1 C2 C3 C4 INTO C5.
WRITE / C5.
CONCATENATE C1 C2 C3 C4 INTO C5 SEPARATED BY C9.
WRITE / C5. 

SPLIT…AT…INTO

3.2.2拆分字符串---------------------------------------------------------------------*
DATA:C1(2) TYPE C,
      C2(2) TYPE C,
      C3(2) TYPE C,
      C4(2) TYPE C,
      C5(20) TYPE C VALUE '11 * 22 * 33 * 44',                                                                                               "字符中間需有空格,否則拆分不出來(只能拆出一個)
      C9(2) TYPE C.

C9 = '*'.

WRITE / C5.
SPLIT C5 AT C9 INTO C1 C2 C3 C4.

LIKE TABLE OF…WITH HEADER LINE

3.3內表帶有標題行---------------------------------------------------------------------*


DATA:BEGIN OF MAN,
            NAME(20) TYPE C,                                                                                                                          "長度不足左邊會補以空格顯示            MAN可以當表頭使用
            HIGH TYPE P DECIMALS 2,
            WEIGHT TYPE P DECIMALS 2,
            END OF MAN.
DATA: MAN1 LIKE TABLE OF MAN WITH HEADER LINE,                                                              "內表帶有表頭
      MAN2 LIKE TABLE OF MAN.                                                                                                            "內表無表頭

 MAN-NAME =' 張志'.                                                                                                                  "注意等號空格
 MAN-HIGH = '1.68'.
 MAN-WEIGHT = 120.
 APPEND MAN TO MAN1.                                                                                                          "結構用Append ..... to.....

  MAN-NAME =' 劉強'.                                                                                                                  "注意等號空格
 MAN-HIGH = '1.78'.
 MAN-WEIGHT = 160.
 APPEND MAN TO MAN1.

 MOVE MAN1[] TO MAN2.                                                                                                                "有表头行的内表在运用时要带个中括号

 LOOP AT MAN2 INTO MAN.
   WRITE: / MAN-NAME,MAN-HIGH,MAN-WEIGHT.
ENDLOOP.

LOOP AT MAN1.                                                                                                                                 "有表頭行的可以直接讀取
  WRITE: / MAN1-NAME,MAN1-HIGH,MAN1-WEIGHT.
ENDLOOP. 

SORT…DESCENDING BY…ASCENDING.

3.4內表排序---------------------------------------------------------------------*

DATA:BEGIN OF MAN,
            NAME(20) TYPE C,                                                                                                                          "長度不足左邊會補以空格顯示            MAN可以當表頭使用
            HIGH TYPE P DECIMALS 2,
            WEIGHT TYPE P DECIMALS 2,
            END OF MAN.

DATA: MAN1 LIKE HASHED TABLE OF MAN WITH UNIQUE KEY NAME.                                    "哈希表

 MAN-NAME =' 張志'.                                                                                                                  "注意等號空格
 MAN-HIGH = '1.68'.
 MAN-WEIGHT = 120.
INSERT MAN INTO TABLE MAN1.                                                                                            "哈希表添加數據   INSERT ......INTO TABLE.....

  MAN-NAME =' 劉強'.                                                                                                                  "注意等號空格
 MAN-HIGH = '1.78'.
 MAN-WEIGHT = 160.
 INSERT MAN INTO TABLE MAN1.

  MAN-NAME =' 朱三'.                                                                                                                  "注意等號空格
 MAN-HIGH = '1.72'.
 MAN-WEIGHT = 130.
 INSERT MAN INTO TABLE MAN1.


 LOOP AT MAN1 INTO MAN.
   WRITE: / MAN-NAME,MAN-HIGH,MAN-WEIGHT.
ENDLOOP.

SORT MAN1 DESCENDING BY WEIGHT ASCENDING.
SKIP.
ULINE.

LOOP AT MAN1 INTO MAN.
  WRITE: / MAN-NAME,MAN-HIGH,MAN-WEIGHT.
ENDLOOP.

MODIFY TABLE…FROM…

3.5修改內表數據---------------------------------------------------------------------*
DATA:BEGIN OF MAN,
            NAME(20) TYPE C,                                                                                                                          "長度不足左邊會補以空格顯示            MAN可以當表頭使用
            HIGH TYPE P DECIMALS 2,
            WEIGHT TYPE P DECIMALS 2,
            END OF MAN.

DATA: MAN1 LIKE HASHED TABLE OF MAN WITH UNIQUE KEY NAME.                                    "哈希表

 MAN-NAME =' 張志'.                                                                                                                  "注意等號空格
 MAN-HIGH = '1.68'.
 MAN-WEIGHT = 120.
INSERT MAN INTO TABLE MAN1.                                                                                            "哈希表添加數據   INSERT ......INTO TABLE.....

  MAN-NAME =' 劉強'.                                                                                                                  "注意等號空格
 MAN-HIGH = '1.78'.
 MAN-WEIGHT = 160.
 INSERT MAN INTO TABLE MAN1.

 LOOP AT MAN1 INTO MAN.
   WRITE: / MAN-NAME,MAN-HIGH,MAN-WEIGHT.
 ENDLOOP.

 MAN-NAME =' 張志'.                                                                                                                  "注意等號空格
 MAN-HIGH = '2.22'.
 MAN-WEIGHT = 220.
MODIFY TABLE MAN1 FROM MAN.                                                                                     "根據Key =Name 來修改數據          MODIFY TABLE....FROM...


 LOOP AT MAN1 INTO MAN.
   WRITE: / MAN-NAME,MAN-HIGH,MAN-WEIGHT.
 ENDLOOP. 

DELETE…WHERE…

"3.6刪除內表記錄---------------------------------------------------------------------*
DATA:BEGIN OF MAN,
            NAME(5) TYPE C,                                 "長度不足左邊會補以空格顯示            MAN可以當表頭使用
            HIGH TYPE P DECIMALS 2,
            WEIGHT TYPE P DECIMALS 2,
            END OF MAN.

DATA: MAN1 LIKE HASHED TABLE OF MAN WITH UNIQUE KEY NAME.       "哈希表
DATA:DELNAME(5) TYPE C.

 MAN-NAME =' 張參'.                                                            "注意等號空格
 MAN-HIGH = '1.68'.
 MAN-WEIGHT = 120.
INSERT MAN INTO TABLE MAN1.                                       "哈希表添加數據   INSERT ......INTO TABLE.....

 MAN-NAME =' 劉志'.                               "注意等號空格
 MAN-HIGH = '1.78'.
 MAN-WEIGHT = 160.
 INSERT MAN INTO TABLE MAN1.

 LOOP AT MAN1 INTO MAN.
   WRITE: / MAN-NAME,MAN-HIGH,MAN-WEIGHT.
 ENDLOOP.

DELNAME =  '張參'.                "不足前面如何補空格?
"DELETE MAN1 WHERE NAME = ' 張參'.                      
"注意變量定義長度,不足的前面補空格,查詢條件需等同空格,否則刪除不了
DELETE MAN1 WHERE NAME = DELNAME.
  SKIP.
  ULINE.

 LOOP AT MAN1 INTO MAN.
   WRITE: / MAN-NAME,MAN-HIGH,MAN-WEIGHT.
 ENDLOOP. 

 INSERT...INTO...INDEX…

3.7使用索引插入內表行---------------------------------------------------------------------*
DATA:BEGIN OF MAN,
            NAME(20) TYPE C,                                                                                                                          "長度不足左邊會補以空格顯示            MAN可以當表頭使用
            HIGH TYPE P DECIMALS 2,
            WEIGHT TYPE P DECIMALS 2,
            END OF MAN.

DATA: MAN1 LIKE TABLE OF MAN .
DATA:DELNAME(5) TYPE C.

 MAN-NAME =' 張參'.                                                                                                                          "注意等號空格
 MAN-HIGH = '1.68'.
 MAN-WEIGHT = 120.
INSERT MAN INTO TABLE MAN1.                                                                                            "哈希表添加數據   INSERT ......INTO TABLE.....

 MAN-NAME =' 劉志'.                                                                                                                  "注意等號空格
 MAN-HIGH = '1.78'.
 MAN-WEIGHT = 160.
 INSERT MAN INTO TABLE MAN1.

 LOOP AT MAN1 INTO MAN.
   WRITE: / MAN-NAME,MAN-HIGH,MAN-WEIGHT.
 ENDLOOP.


 MAN-NAME =' 李志'.                                                                                                                  "注意等號空格
 MAN-HIGH = '1.578'.
 MAN-WEIGHT = 110.
 INSERT MAN INTO  MAN1 INDEX 2.                                                                                     "使用索引插入內表行   INSERT...INTO...INDEX..(不需要INTO TABLE)


  SKIP.
  ULINE.

 LOOP AT MAN1 INTO MAN.
   WRITE: / MAN-NAME,MAN-HIGH,MAN-WEIGHT.
 ENDLOOP. 

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值