ABAP查找内表中是否存在重复字段

1.对于查找内表中是否存在重复字段,这个问题SAP好像并没有给出直接的解决办法,只能通过间接的方法去做判断,我是这样给出的判断。
2.例子说明:
REPORT Z_ZHANGM_036.
DATA: BEGIN OF wa OCCURS 0,
col01 TYPE char10,
col02 TYPE char10,
col03 TYPE char10,
END OF wa,
itab LIKE TABLE OF wa.
DATA: BEGIN OF item OCCURS 0,
col01 TYPE char10,
col02 TYPE char10,
END OF item.
DATA:ls_item LIKE LINE OF item.
FIELD-SYMBOLS: like LINE OF wa.
*wa-col01 = ‘A’.
*wa-col02 = ‘B’.
*wa-col03 = ‘C’.
*APPEND wa.
wa-col01 = ‘A’.
wa-col02 = ‘B’.
wa-col03 = ‘D’.
APPEND wa.
wa-col01 = ‘B’.
wa-col02 = ‘C’.
wa-col03 = ‘C’.
APPEND wa.
*wa-col01 = ‘A’.
*wa-col02 = ‘B’.
*wa-col03 = ‘E’.
*APPEND wa.
*wa-col01 = ‘A’.
*wa-col02 = ‘C’.
*wa-col03 = ‘E’.
*APPEND wa.
*wa-col01 = ‘A’.
*wa-col02 = ‘C’.
*wa-col03 = ‘C’.
*APPEND wa.
SORT wa by col01 col02.
DELETE ADJACENT DUPLICATES FROM wa COMPARING col01 col02.
IF SY-subrc = 0.
WRITE: ‘1’.
ENDIF.
在这里插入图片描述
这里没重复的字段就不会去除重复字段(首先按照你要判断的重复字段去排序,再通过DELETE ADJACENT DUPLICATES去重),如果没有重复字段,系统就不会执行if条件里面的语句。如果存在重复字段,就是会得到以下结果:
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_43734184/article/details/106799957