当前位置 : 首页 » 博文聚焦 » 正文

ABAP高效率批量修改内表的数据

分类 : 博文聚焦 | 发布时间 : 2018-03-15 12:45:19 | 浏览 : 122

DATA : BEGIN OF hah,

        flag TYPE c,
        sex TYPE c,
END OF hah.
DATA it_hah like TABLE OF hah.
CLEAR hah.
hah-flag = 'X'.
hah-sex = 'f'.
APPEND hah to  it_hah.
CLEAR hah.
hah-sex = 'm'.
APPEND hah to  it_hah.
CLEAR hah.
hah-sex = 'm'.
APPEND hah to  it_hah.
CLEAR hah.
hah-sex = 'm'.
APPEND hah to  it_hah.
LOOP AT it_hah INTO hah.
  WRITE :/ hah-flag,' ',hah-sex.
ENDLOOP.

这个结果是:

ABAP高效率批量修改内表的数据 - 孤独的神 - 孤独的神

 

现在,我要把凡是flag没有值的,都赋值为'x’,

第一种办法:

 DATA : BEGIN OF hah,
        flag TYPE c,
        sex TYPE c,
       END OF hah.
DATA it_hah like TABLE OF hah.
CLEAR hah.
hah-flag = 'X'.
hah-sex = 'f'.
APPEND hah to  it_hah.
CLEAR hah.
hah-sex = 'm'.
APPEND hah to  it_hah.
CLEAR hah.
hah-sex = 'm'.
APPEND hah to  it_hah.
CLEAR hah.
hah-sex = 'm'.
APPEND hah to  it_hah.

*****************这里**************
LOOP AT it_hah INTO hah.
  IF hah-flag is INITIAL.
    hah-flag = 'x'.
  ENDIF.
  MODIFY it_hah FROM hah.
ENDLOOP.

************************************


LOOP AT it_hah INTO hah.
  WRITE :/ hah-flag,' ',hah-sex.
ENDLOOP.

 

这种办法效率不够高,采用第二种办法的话,效率会高一点:

 DATA : BEGIN OF hah,
        flag TYPE c,
        sex TYPE c,
       END OF hah.
DATA it_hah like TABLE OF hah.
CLEAR hah.
hah-flag = 'X'.
hah-sex = 'f'.
APPEND hah to  it_hah.
CLEAR hah.
hah-sex = 'm'.
APPEND hah to  it_hah.
CLEAR hah.
hah-sex = 'm'.
APPEND hah to  it_hah.
CLEAR hah.
hah-sex = 'm'.
APPEND hah to  it_hah.
*****************这里***************

hah-flag = 'x'.
MODIFY it_hah FROM hah TRANSPORTING flag WHERE flag is INITIAL.

****************************
LOOP AT it_hah INTO hah.
  WRITE :/ hah-flag,' ',hah-sex.
ENDLOOP.

明显第二种效率会高于第一种。

相关阅读:

FI--数据表图

本地文件上传、下载服务器文件事物码

SAP FI常用事务码

SD--如何在输出控制中增加自定义字段

SAP ABAP 异常处理

ABAP高效率批量修改内表的数据

OO-ALV标准工具栏按钮

更改记录表CDHDR和CDPOS

sap中二级品报工问题解决方案

OOALV 中DATA_CHANGED_FINISHED调用刷新弹出排序窗口解决方案