我有我的内部表it_mseg
。在此表中,有一个名为amnt
的字段。
如果字段it_mseg
大于等于10,我想检查amnt
中的每一行。如果是,我想从内部表中删除它。
因此,最后,当我使用ALV-Grid显示表格时,只会显示字段amnt
的值等于10的行。
我知道这是用Loop at it_mseg
以某种方式完成的,但我无法做到正确。
编辑:我想用循环来做,所以我可以做一些比GE 10更复杂的事情。
答案 0 :(得分:5)
你可以用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.