-2

如果有差距,我需要一些帮助来检查 A 列的每个索引的值。

READ TABLE ZVBELNEXTTAB INDEX x.
curr = ZVBELNEXTTAB-EVBELN.
READ TABLE ZVBELNEXTTAB INDEX y.
next = ZVBELNEXTTAB-EVBELN.
chck = next - curr.

IF chck GT 1.

chck = chck - 1.
DO chck TIMES.
  ZVBELNEXTTAB-EVBELN = curr + 1.
  ZVBELNEXTTAB-BUKRS = ''.
  ZVBELNEXTTAB-WERKS = ''.
  ZVBELNEXTTAB-VBELN = ''.
  ZVBELNEXTTAB-FKDAT = ''.
  ZVBELNEXTTAB-VBLSTAT = ''.
  ZVBELNEXTTAB-ZPRN = ''.
  ZVBELNEXTTAB-UNAME = ''.
  ZVBELNEXTTAB-TYPE = ''.
  ZVBELNEXTTAB-MANDT = ''.
  APPEND ZVBELNEXTTAB.
  SORT ZVBELNEXTTAB BY evbeln.
ENDDO.

ENDIF.

在此处输入图像描述

在此处输入图像描述

因为 SAP ABAP 不支持使用数组的概念。我想对整个列数据执行此操作。

谢谢!

4

2 回答 2

0

获取原始内部表的副本zvbelnexttab并在复制内部表处循环zvbelnexttab_copy。之后更新原始内部表-

DATA : lv_tab    TYPE sytabix.

LOOP AT zvbelnexttab_copy.

  curr = zvbelnexttab_copy-evbeln.  
  lv_tab = sy-tabix + 1.

  READ TABLE zvbelnexttab_copy INDEX lv_tab.
  next = zvbelnexttab_copy-evbeln.
  .....
  .....
  .....

ENDLOOP.
于 2018-07-18T05:13:54.550 回答
0
  1. 按要填补空白的字段对内部表进行排序。
  2. 创建变量 TYPE 字段
  3. 在你的桌子上循环。
  4. 如果 itab-field <> remembered_value + 1. <--- 一个间隙,实现逻辑以插入/追加任何你想要的。请记住,您的表已排序并在循环期间以不适当的方式插入可能会产生不良结果。
  5. 记住的值 = 选项卡字段
  6. 结束循环。

我建议在第 4 点。您可以将新记录附加到与原始记录相同类型的新内部表中,然后将其插入 db / 将其与旧 itab 合并。

于 2018-07-18T11:08:59.117 回答