New ABAP feature allows to filter one internal table based on another internal table content.
Program
TYPES: BEGIN OF ty_flt,
coun_from TYPE spfli–countryfr,
END OF ty_flt,
tt_flt TYPE HASHED TABLE OF ty_flt WITH UNIQUE KEY coun_from.
DATA: lt_spfli1 TYPE TABLE OF spfli,
lt_spfli2 TYPE TABLE OF spfli,
lt_flt TYPE tt_flt.
SELECT * FROM spfli INTO TABLE lt_spfli1.
* Fill value on filter table LT_FLT
lt_flt = VALUE tt_flt( ( coun_from = 'US' )
( coun_from = 'DE' ) ).
* FILTERING apply on internal table LT_SPFLI1 based on filter table
lt_spfli2 = FILTER #( lt_spfli1 IN lt_flt
WHERE countryfr = coun_from ).
CALL FUNCTION ‘REUSE_ALV_GRID_DISPLAY’
EXPORTING
i_callback_program = sy–repid
i_structure_name = ‘SPFLI’
TABLES
t_outtab = lt_spfli1.
CALL FUNCTION ‘REUSE_ALV_GRID_DISPLAY’
EXPORTING
i_callback_program = sy–repid
i_structure_name = ‘SPFLI’
TABLES
t_outtab = lt_spfli2.
Output
LT_SPFLI1 table records.
LT_SPFLI2 records after filter. Only shows where COUNTRYFR is US or DE.