TYPE-POOLS slis.
SELECTION-SCREEN PUSHBUTTON 2(20) btn USER-COMMAND push.
initialization.
btn = 'Open new window'.
AT SELECTION-SCREEN.
PERFORM f_main.
FORM f_main.
DATA: lt_spfli TYPE TABLE OF spfli,
lt_fieldcat TYPE slis_t_fieldcat_alv.
PERFORM get_data TABLES lt_spfli.
PERFORM set_catalog CHANGING lt_fieldcat.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
it_fieldcat = lt_fieldcat
i_screen_start_column = 10
i_screen_start_line = 1
i_screen_end_column = 100
i_screen_end_line = 25
TABLES
t_outtab = lt_spfli.
ENDFORM. "f_main
FORM get_data TABLES pt_spfli.
SELECT * FROM spfli INTO TABLE pt_spfli.
ENDFORM. "get_data
FORM set_catalog CHANGING pt_fieldcat TYPE slis_t_fieldcat_alv.
DATA lwa_fieldcat TYPE slis_fieldcat_alv.
"macro
DEFINE add_field.
clear lwa_fieldcat.
lwa_fieldcat-col_pos = &1.
lwa_fieldcat-fieldname = &2.
lwa_fieldcat-seltext_l = &3.
append lwa_fieldcat to pt_fieldcat.
END-OF-DEFINITION.
"add field catalog
add_field 1 'MANDT' 'Client'.
add_field 2 'CARRID' 'Airline Code'.
add_field 3 'CONNID' 'Fight Number'.
add_field 4 'COUNTRYFR' 'Country From'.
add_field 5 'CITYFROM' 'City From'.
add_field 6 'AIRPFROM' 'Airpart From'.
add_field 7 'COUNTRYTO' 'Country To'.
add_field 8 'CITYTO' 'City To'.
add_field 9 'AIRPTO' 'Airpart To'.
add_field 10 'FLTIME' 'Fly Time'.
add_field 11 'DEPTIME' 'Dept Time'.
add_field 12 'ARRTIME' 'Arrive Time'.
add_field 13 'DISTANCE' 'Distance'.
add_field 14 'DISTID' 'Mass unit of distance'.
add_field 15 'FLTYPE' 'Flight type'.
add_field 16 'PERIOD' 'Arrival n day(s) later'.
ENDFORM. "set_catalog