TYPES: BEGIN OF ty_sflight, carrid TYPE sflight-carrid, connid TYPE sflight-connid, END OF ty_sflight. DATA: lt_sflight TYPE STANDARD TABLE OF ty_sflight, r_type_table TYPE REF TO cl_abap_tabledescr, r_data_tab TYPE REF TO data. FIELD-SYMBOLS: <lt_table> TYPE ANY TABLE. START-OF-SELECTION. lt_sflight = VALUE #( ( carrid = 'AA' connid = 1 ) ( carrid = 'LH' connid = 1 ) ( carrid = 'AA' connid = 2 ) ( carrid = 'LH' connid = 3 ) ). r_type_table = cl_abap_tabledescr=>create( p_line_type = cl_abap_structdescr=>create( p_components = VALUE #( ( name = 'CARRID' type = CAST #( cl_abap_datadescr=>describe_by_name( 'SFLIGHT-CARRID' ) ) ) ( name = 'CONNID' type = CAST #( cl_abap_datadescr=>describe_by_name( 'SFLIGHT-CONNID' ) ) ) ) ) ). CREATE DATA r_data_tab TYPE HANDLE r_type_table. ASSIGN r_data_tab->* TO <lt_table>. <lt_table> = lt_sflight. FIELD-SYMBOLS <lt_temp> TYPE HASHED TABLE. r_type_table = cl_abap_tabledescr=>create( p_line_type = cl_abap_structdescr=>create( p_components = VALUE #( ( name = 'CARRID' type = CAST #( cl_abap_datadescr=>describe_by_name( 'SFLIGHT-CARRID' ) ) ) ) ) p_table_kind = cl_abap_tabledescr=>tablekind_hashed p_unique = abap_true p_key_kind = cl_abap_tabledescr=>keydefkind_tableline ). CREATE DATA r_data_tab TYPE HANDLE r_type_table. ASSIGN r_data_tab->* TO <lt_temp>. <lt_temp> = CORRESPONDING #( <lt_table> DISCARDING DUPLICATES ). LOOP AT <lt_temp> ASSIGNING FIELD-SYMBOL(<ls_temp>). ASSIGN COMPONENT 1 OF STRUCTURE <ls_temp> TO FIELD-SYMBOL(<field>). cl_demo_output=>write( |Group - { <field> }| ). ENDLOOP. cl_demo_output=>display( ).
Preview:
downloadDownload PNG
downloadDownload JPEG
downloadDownload SVG
Tip: You can change the style, width & colours of the snippet with the inspect tool before clicking Download!
Click to optimize width for Twitter