第四课 第二小节 维护内表数据

该代码示例展示了在SAPABAP中定义数据类型(TYPES),初始化和操作数据表(DATA),包括插入(INSERT)、删除(DELETE)、修改(MODIFY)以及去重和排序等操作。
摘要由CSDN通过智能技术生成

*&---------------------------------------------------------------------*
*& TYPES定義
*&---------------------------------------------------------------------*
TYPES:
  BEGIN OF TS_ADD,
    ID       TYPE ZWMQ_E_CODE,                   " 学生ID
    NAME1    TYPE ZSTD_WMQ001-Z_NAME,            " 学生姓名
    Z_SCHID  TYPE ZSTD_WMQ001-Z_SCHID,           " 学校ID
    Z_SCHFEE TYPE ZSCH_WMQ001-Z_SCHFEE,          " 学费
  END OF TS_ADD.

*&---------------------------------------------------------------------*
*& DATA定義
*&---------------------------------------------------------------------*
DATA:
  I_ADD  TYPE STANDARD TABLE OF TS_ADD,
  I_ADD2  TYPE STANDARD TABLE OF TS_ADD,
  ST_ADD TYPE TS_ADD.

ST_ADD-ID = 1001.
ST_ADD-NAME1 = '张三'.
ST_ADD-Z_SCHID = '101'.
ST_ADD-Z_SCHFEE = 10000.
APPEND ST_ADD TO I_ADD.
CLEAR ST_ADD.

ST_ADD-ID = 1002.
ST_ADD-NAME1 = '李四'.
ST_ADD-Z_SCHID = '101'.
ST_ADD-Z_SCHFEE = 10000.
APPEND ST_ADD TO I_ADD.
CLEAR ST_ADD.

* 输出
WRITE:'初始数据'.

LOOP AT I_ADD INTO ST_ADD.

  WRITE:/ ST_ADD-ID,
        ST_ADD-NAME1,
        ST_ADD-Z_SCHID,
        ST_ADD-Z_SCHFEE.

ENDLOOP.

* 增删改
* INSERT
ST_ADD-ID = 1003.
ST_ADD-NAME1 = '小王'.
ST_ADD-Z_SCHID = '101'.
ST_ADD-Z_SCHFEE = 10000.

INSERT ST_ADD INTO I_ADD INDEX 1.
WRITE: / 'INSERT单条'.

LOOP AT I_ADD INTO ST_ADD.

  WRITE:/ ST_ADD-ID,
        ST_ADD-NAME1,
        ST_ADD-Z_SCHID,
        ST_ADD-Z_SCHFEE.

ENDLOOP.

INSERT LINES OF I_ADD INTO I_ADD2 INDEX 1.
WRITE: / 'INSERT多条I_ADD2'.

LOOP AT I_ADD2 INTO ST_ADD.

  WRITE:/ ST_ADD-ID,
        ST_ADD-NAME1,
        ST_ADD-Z_SCHID,
        ST_ADD-Z_SCHFEE.

ENDLOOP.

* DELETE
DELETE I_ADD WHERE NAME1 = '张三'.
WRITE: / 'DELETE'.

LOOP AT I_ADD INTO ST_ADD.

  WRITE:/ ST_ADD-ID,
        ST_ADD-NAME1,
        ST_ADD-Z_SCHID,
        ST_ADD-Z_SCHFEE.

ENDLOOP.
ST_ADD-ID = 1004.
ST_ADD-NAME1 = '小王'.
ST_ADD-Z_SCHID = '101'.
ST_ADD-Z_SCHFEE = 10000.
APPEND ST_ADD TO I_ADD.

WRITE: / '去重'.
LOOP AT I_ADD INTO ST_ADD.

  WRITE:/ ST_ADD-ID,
        ST_ADD-NAME1,
        ST_ADD-Z_SCHID,
        ST_ADD-Z_SCHFEE.

ENDLOOP.

sort I_ADD BY NAME1.
DELETE ADJACENT DUPLICATES FROM I_ADD
COMPARING NAME1.

WRITE: / '去重结果'.
LOOP AT I_ADD INTO ST_ADD.

  WRITE:/ ST_ADD-ID,
        ST_ADD-NAME1,
        ST_ADD-Z_SCHID,
        ST_ADD-Z_SCHFEE.

ENDLOOP.



*INSERT LINES OF I_ADD INTO I_ADD2 INDEX 2.
I_ADD2 = I_ADD.
WRITE: / 'INSERT多条I_ADD2'.

LOOP AT I_ADD2 INTO ST_ADD.

  WRITE:/ ST_ADD-ID,
        ST_ADD-NAME1,
        ST_ADD-Z_SCHID,
        ST_ADD-Z_SCHFEE.

ENDLOOP.

ST_ADD-Z_SCHFEE = 100.
*MODIFY
MODIFY I_ADD FROM ST_ADD TRANSPORTING Z_SCHFEE
WHERE NAME1 <> '张三'.

WRITE: / 'MODIFY'.

LOOP AT I_ADD INTO ST_ADD.

  WRITE:/ ST_ADD-ID,
        ST_ADD-NAME1,
        ST_ADD-Z_SCHID,
        ST_ADD-Z_SCHFEE.

ENDLOOP.

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值