Quantcast
Channel: SCN: Message List
Viewing all articles
Browse latest Browse all 8459

Re: How to create dynamic outtab with field_style

$
0
0

Hi,

 

You can also use RTTC .

 

Note the use LVC_T_SCOL , The same idea can be used for lvc_t_styl .

 

Code:

 

*----------------------------------------------------------------------*

FORM test_07 .

 

* Create a table with LVC_T_SCOL for ALV .

 

  DATA: it_component TYPE cl_abap_structdescr=>component_table .

  DATA: st_component LIKE LINE OF it_component .

 

  DATA: ob_abap_structdescr TYPE REF TO cl_abap_structdescr,

        ob_abap_tabledescr  TYPE REF TO cl_abap_tabledescr,

        r_data_tab    TYPE REF TO data,

        r_data_str    TYPE REF TO data.

 

  st_component-name = 'IT_SCOL'.

  st_component-type ?= cl_abap_elemdescr=>describe_by_name( 'LVC_T_SCOL' ).

  APPEND st_component TO it_component .

 

  st_component-name = 'CARRID'.

  st_component-type ?= cl_abap_elemdescr=>describe_by_name( 'S_CARR_ID' ).

  APPEND st_component TO it_component .

 

  st_component-name = 'CONNID'.

  st_component-type ?= cl_abap_elemdescr=>describe_by_name( 'S_CONN_ID' ).

  APPEND st_component TO it_component .

 

  st_component-name = 'FLDATE'.

  st_component-type ?= cl_abap_elemdescr=>describe_by_name( 'S_DATE' ).

  APPEND st_component TO it_component .

 

  st_component-name = 'SEATSMAX_B'.

  st_component-type ?= cl_abap_elemdescr=>describe_by_name( 'S_SMAX_B' ).

  APPEND st_component TO it_component .

 

  st_component-name = 'SEATSOCC_B'.

  st_component-type ?= cl_abap_elemdescr=>describe_by_name( 'S_SOCC_B' ).

  APPEND st_component TO it_component .

 

  TRY.

      ob_abap_structdescr = cl_abap_structdescr=>create( it_component ).

    CATCH cx_sy_struct_creation .

  ENDTRY.

 

  TRY.

      ob_abap_tabledescr = cl_abap_tabledescr=>create( ob_abap_structdescr ).

    CATCH cx_sy_table_creation .

  ENDTRY.

 

  CREATE DATA: r_data_tab TYPE HANDLE ob_abap_tabledescr ,

               r_data_str TYPE HANDLE ob_abap_structdescr .

 

  FIELD-SYMBOLS: <it_data> TYPE INDEX TABLE,

                 <st_data>    TYPE ANY.

 

  ASSIGN: r_data_tab->* TO <it_data> ,

          r_data_str->* TO <st_data> .

 

  SELECT * INTO CORRESPONDING FIELDS OF TABLE <it_data>

  FROM sflight UP TO 20 ROWS .

 

  FIELD-SYMBOLS: <it_scol> TYPE lvc_t_scol .

  DATA: st_scol LIKE LINE OF <it_scol> .

 

  DATA: ob_abap_random_2 TYPE REF TO cl_abap_random_int .

 

  ob_abap_random_2 = cl_abap_random_int=>create( min = 1 max = 7 ) .

 

  LOOP AT <it_data> ASSIGNING <st_data> .

 

    ASSIGN COMPONENT 'IT_SCOL' OF STRUCTURE <st_data> TO <it_scol>.

 

    CLEAR <it_scol> .

 

* Some complex :-) logic to decide the color used .

    st_scol-color-col = ob_abap_random_2->get_next( ) .

    st_scol-color-int = 0.

    st_scol-color-inv = 0.

    st_scol-fname = 'SEATSOCC_B' .

 

    INSERT st_scol INTO TABLE <it_scol> .

 

  ENDLOOP.

 

ENDFORM .                                                   "test_07

*----------------------------------------------------------------------*


Viewing all articles
Browse latest Browse all 8459

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>