Dynamic Table 구성
참고소스 1.
[#M_더보기|접기|
  DATA: go_dref TYPE REF TO data.
  DATA: go_dy_line TYPE REF TO data.
  FIELD-SYMBOLS: <gt_table> TYPE STANDARD TABLE,
                 <gs_table> TYPE ANY.
  IF g_zpmty = ‘1’. ” 업적.
    CREATE DATA go_dref TYPE STANDARD TABLE OF zhrt2101.
  ELSEIF g_zpmty = ‘2’. ” 역량.
    CREATE DATA go_dref TYPE STANDARD TABLE OF zhrt2108.
  ENDIF.
  ASSIGN go_dref->* TO <gt_table>.
  CREATE DATA go_dy_line LIKE LINE OF <gt_table>.
  ASSIGN go_dy_line->* TO <gs_table>.
_M#]
참고소스 2.
[#M_더보기|접기|
* Data 선언
  FIELD-SYMBOLS: <dyn_table> TYPE STANDARD TABLE
                 <dyn_wa>,
                 <dyn_field>.
  DATA: lo_dy_table TYPE REF TO data,
        lo_dy_line  TYPE REF TO data,
        xfc TYPE lvc_s_fcat,
        ifc TYPE lvc_t_fcat.
  DATA: idetails TYPE abap_compdescr_tab,
        xdetails TYPE abap_compdescr.
  DATA: ref_table_des TYPE REF TO cl_abap_structdescr.
 DATA: lv_field(100).
 DATA: lv_where(100).
 DATA: lv_f_langu TYPE dd03l-fieldname
* 테이블 구조 가져오기
      CLEAR: idetails, idetails[], ifc, ifc[].
      ref_table_des ?=
          cl_abap_typedescr=>describe_by_name( lt_3150-tablename ).
      idetails[] = ref_table_des->components[].
      LOOP AT idetails INTO xdetails.
        CLEAR xfc.
        xfc-fieldname = xdetails-name .
        xfc-datatype = xdetails-type_kind.
        xfc-inttype = xdetails-type_kind.
        xfc-intlen = xdetails-length.
        xfc-decimals = xdetails-decimals.
        APPEND xfc TO ifc.
      ENDLOOP.
* 다이나믹 인터널 테이블 생성, FS에 할당.
      CALL METHOD cl_alv_table_create=>create_dynamic_table
        EXPORTING
          it_fieldcatalog = ifc
        IMPORTING
          ep_table        = lo_dy_table.
      ASSIGN lo_dy_table->* TO <dyn_table>.
* Workarea 생성 및 FS 할당
      CREATE DATA lo_dy_line LIKE LINE OF <dyn_table>.
      ASSIGN lo_dy_line->* TO <dyn_w
LOOP AT <dyn_table> INTO <dyn_wa>.
ASSIGN COMPONENT 1 OF STRUCTURE <dyn_wa> TO <dyn_field>.
CHECK lt_0080-code = <dyn_field>.
ASSIGN COMPONENT 2 OF STRUCTURE <dyn_wa> TO <dyn_field>.
        lt_0080-code_text = <dyn_field>.
        lt_0080-langu = sy-langu.
      ENDLOOP
_M#]
참고 사이트 : http://goo.gl/aw0Vis

 
  