alt
TYPES:
BEGIN OF ts_connect,
carrid TYPE sflight-carrid,
separa TYPE c LENGTH 1,
connid TYPE sflight-connid,
END OF ts_connect,
BEGIN OF ts_flight,
index TYPE i,
carrier TYPE scarr-carrname,
connect TYPE ts_connect,
fldate TYPE sflight-fldate,
END OF ts_flight.
DATA lt_flight TYPE STANDARD TABLE OF ts_flight WITH DEFAULT KEY.
DATA ls_flight LIKE LINE OF lt_flight.
SELECT * FROM sflight INTO TABLE @DATA(lt_sflight).
IF sy-subrc = 0.
SELECT * FROM scarr
ORDER BY PRIMARY KEY
INTO TABLE @DATA(lt_scarr).
ENDIF.
LOOP AT lt_sflight ASSIGNING FIELD-SYMBOL(<ls_sflight>)
WHERE carrid = 'AA' AND connid = '0017'.
READ TABLE lt_scarr ASSIGNING FIELD-SYMBOL(<ls_scarr>)
WITH KEY carrid = <ls_sflight>-carrid
BINARY SEARCH.
IF sy-subrc = 0.
ls_flight-index += 1.
ls_flight-carrier = <ls_scarr>-carrname.
ls_flight-connect-carrid = <ls_sflight>-carrid.
ls_flight-connect-separa = '-'.
ls_flight-connect-connid = <ls_sflight>-connid.
ls_flight-fldate = <ls_sflight>-fldate.
APPEND ls_flight TO lt_flight.
ENDIF.
ENDLOOP.
cl_demo_output=>display( lt_flight ).
neu
TYPES:
BEGIN OF ts_connect,
carrid TYPE sflight-carrid,
separa TYPE c LENGTH 1,
connid TYPE sflight-connid,
END OF ts_connect,
BEGIN OF ts_flight,
index TYPE i,
carrier TYPE scarr-carrname,
connect TYPE ts_connect,
fldate TYPE sflight-fldate,
END OF ts_flight.
DATA lt_flight TYPE STANDARD TABLE OF ts_flight WITH EMPTY KEY.
SELECT * FROM sflight INTO TABLE @DATA(lt_sflight).
IF sy-subrc = 0.
SELECT * FROM scarr INTO TABLE @DATA(lt_scarr).
ENDIF.
lt_flight = VALUE #( FOR ls_sflight IN lt_sflight INDEX INTO lv_index
WHERE ( carrid = 'AA' AND connid = '0017' )
LET lv_carrname = lt_scarr[ carrid = ls_sflight-carrid ]-carrname
IN carrier = lv_carrname
( index = lv_index
connect-carrid = ls_sflight-carrid
connect-separa = '-'
connect-connid = ls_sflight-connid
fldate = ls_sflight-fldate ) ).
cl_demo_output=>display( lt_flight ).