Existe-t-il un moyen plus simple/plus rapide pour le code ci-dessous :
DATA: lv_knuma_ag TYPE TABLE DE zta_fg_hdr AVEC LIGNE D'EN-TÊTE.
RANGES: lr_knuma_ag FOR zta_fg_hdr-knuma_ag.
"Select `knuma_ag` et l'enregistrer dans la table interne `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.
"Insérer `lv_knuma_ag` dans la table des gammes `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.
"Supprimer les lignes dans `li_promo` où `knuma_ag` est dans la table des gammes `lr_knuma_ag`
IF NOT lr_knuma_ag IS INITIAL.
DELETE li_promo WHERE knuma_ag IN lr_knuma_ag.
ENDIF.
Comme vous pouvez le voir dans le code, il contient deux boucles pour remplir seulement la table des gammes. J'aimerais le réduire à une seule, est-ce possible ? Merci.