-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
  1. ギャップを埋めるフィールドで内部テーブルを並べ替えます。
  2. 変数 TYPE フィールドを作成する
  3. あなたのテーブルでループします。
  4. if itab-field <> remembered_value + 1. <--- ギャップ、必要なものを挿入/追加するロジックを実装します。テーブルはソートされており、ループ中に不適切な方法でそこに挿入すると、悪い結果が生じる可能性があることに注意してください。
  5. remembered_value = タブフィールド
  6. エンドループ。

ポイント4で提案します。新しいレコードを元と同じタイプのNEW内部テーブルに追加し、それをdbに挿入/古いitabとマージすることができます。

于 2018-07-18T11:08:59.117 に答える