[英]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_mseg
用Loop 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.