是否有下面的代碼的任何簡單的/最快的方式:最簡單的方法刪除行
DATA: lv_knuma_ag LIKE STANDARD TABLE OF zta_fg_hdr WITH HEADER LINE.
RANGES: lr_knuma_ag FOR zta_fg_hdr-knuma_ag.
"Select `knuma_ag` and save it to internal table `lv_knuma_ag`
LOOP AT li_promo.
SELECT dest~knuma_ag
FROM zta_fg_dest AS dest
INNER JOIN zta_s_d_xkunnr AS xkunnr ON xkunnr~zcd_dest EQ dest~zcd_dest
APPENDING CORRESPONDING FIELDS OF TABLE lv_knuma_ag
WHERE dest~knuma_ag EQ li_promo-knuma_ag
AND xkunnr~xkunnr EQ gi_vl-vkbur.
ENDLOOP.
"Insert `lv_knuma_ag` onto ranges table `lr_knuma_ag`
LOOP AT lv_knuma_ag.
lr_knuma_ag-sign = 'I'.
lr_knuma_ag-option = 'EQ'.
lr_knuma_ag-low = lv_knuma_ag-knuma_ag.
lr_knuma_ag-high = space.
APPEND lr_knuma_ag.
ENDLOOP.
"Delete row in `li_promo` where `knuma_ag` is in ranges table `lr_knuma_ag`
IF NOT lr_knuma_ag IS INITIAL.
DELETE li_promo WHERE knuma_ag IN lr_knuma_ag.
ENDIF.
當你在代碼中看到的,它包含了兩次循環,只有填寫範圍表。我想讓它只有一個,這可能嗎?謝謝。
所以,你要選擇'ZTA_FG_DEST'行,其中的'KNUMA_AG'在兩個'LI_PROMO'和'LV_KNUMA_AG'? – vwegert
@vwegert:不,我想刪除'li_promo'中的行,''knuma_ag'在'zta_fg_dest'中 –