抑制SAP ABAP中经典和ALV报告中的重复条目

要删除内部表中的相邻重复项,可以使用以下命令-

DELETE ADJACENT DUPLICATE ENTRIES FROM <itab>

                     [COMPARING <f1> <f 2> ...

                         |ALL FIELDS].

另外,请请看以下几点-

  • 系统从内部表<itab>中删除所有相邻的重复条目。如果条目满足以下比较条件之一,则它们是重复的:

  • 如果不添加COMPARING,则表的关键字段的内容在两行中必须相同。

  • 如果使用加法COMPARING <f1> <f 2> ...,则指定字段<f 1> <f 2> ...的内容在两行中必须相同。您还可以动态地将字段<fi>指定为(<ni>)形式的字段<ni>的内容。如果在执行该语句时<ni>为空,则将其忽略。您可以通过指定偏移量和长度来将搜索限制为部分字段。

  • 如果使用附加的比较所有字段,则两行所有字段的内容必须相同。

  • 如果表按照指定的比较条件排序,则可以使用此语句从内部表中删除所有重复的条目。

  • 如果删除至少一行,则系统将SY-SUBRC设置为0,否则设置为4。

示例

DATA: BEGIN OF LINE,

COL1 TYPE I,

COL2 TYPE I,

END OF LINE.

DATA ITAB LIKE HASHED TABLE OF LINE WITH UNIQUE KEY COL1.

DO 4 TIMES.

   LINE-COL1 = SY-INDEX.

   LINE-COL2 = SY-INDEX ** 2.

INSERT LINE INTO TABLE ITAB.

ENDDO.

LINE-COL1 = 1.

DELETE TABLE ITAB: FROM LINE,

WITH TABLE KEY COL1 = 3.

LOOP AT ITAB INTO LINE.

   WRITE: / LINE-COL1, LINE-COL2.

ENDLOOP.

输出结果

输出是-

2        4

4       16

该程序将用平方数列表填充哈希表。DELETE语句从表中删除键字段COL1具有内容1或3的行。

 例

DATA: BEGIN OF LINE,

COL1 TYPE I,

COL2 TYPE I,

END OF LINE.

DATA ITAB LIKE HASHED TABLE OF LINE WITH UNIQUE KEY COL1.

DO 4 TIMES.

  LINE-COL1 = SY-INDEX.

  LINE-COL2 = SY-INDEX ** 2.

INSERT LINE INTO TABLE ITAB.

ENDDO.

DELETE ITAB WHERE ( COL2 > 1 ) AND ( COL1 < 4 ).

LOOP AT ITAB INTO LINE.

  WRITE: / LINE-COL1, LINE-COL2.

ENDLOOP.

输出结果

输出是-

1        1

4       16

该程序将用平方数列表填充哈希表。DELETE语句删除表中字段COL2的内容大于1且字段COL1的内容小于4的行。

以上是 抑制SAP ABAP中经典和ALV报告中的重复条目 的全部内容, 来源链接: utcz.com/z/353474.html

回到顶部