簡體   English   中英

循環內表並使用 if 語句刪除內表中的一行

[英]Loop at internal table and delete a row in the internal table using a if statement

我有我的內部表it_mseg 在此表中,有一個名為amnt的字段。

我想檢查it_mseg每一行,如果字段amnt大於等於 10。如果是,我想從內部表中刪除它。

所以最后,當我使用 ALV-Grid 顯示表格時,只會顯示字段amnt的值amnt等於 10 的行。

我知道這是Loop at it_msegLoop at it_mseg某種方式完成的,但我就是做對了。

編輯:我想用循環來做,所以我可以做一些比 GE 10 更復雜的事情。

你可以用 LOOP 來做,但用 DELETE 更簡單:

DELETE it_mseg WHERE amnt GT 10.

如果你仍然想用 LOOP 來做(因為你想檢查/更改內部表中的其他內容):

LOOP AT it_mseg
     ASSIGNING FIELD-SYMBOL(<ls_mseg>).
  DATA(lv_tabix) = sy-tabix. "save sy-tabix for later use
... "do somthing else
  IF <ls_mseg>-amnt GT 10.
    DELETE it_mseg INDEX lv_tabix.
  ENDIF.
... "do something else
ENDLOOP.

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM