Application Development and Automation Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

Dynamic Internal table population

Former Member
0 Likes
955

Hi,

Please let me know how to populate the dynamic internal table.

I have created a dynamic internal table, but I don't know how to populate as the column names are not known exactly as the table is dynamically created.

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
749

Hi,

see this example.


type-pools : abap.
  field-symbols: <dyn_table> type standard table,
               <dyn_wa>,
               <dyn_field>.
  data: dy_table type ref to data,
      dy_line  type ref to data,
      xfc type lvc_s_fcat,
      ifc type lvc_t_fcat.
  selection-screen begin of block b1 with frame.
parameters: p_table(30) type c default 'T001'.
selection-screen end of block b1.
  start-of-selection.
    perform get_structure.
  perform create_dynamic_itab.
**********Creates a dyanamic internal table**********
  perform get_data.
  perform write_out.
  form get_structure.
  data : idetails type abap_compdescr_tab,
       xdetails type abap_compdescr.
  data : ref_table_des type ref to cl_abap_structdescr.
* Get the structure of the table.
  ref_table_des ?=
      cl_abap_typedescr=>describe_by_name( p_table ).
  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.
  endform.
  form create_dynamic_itab.
* Create dynamic internal table and assign to FS
  call method cl_alv_table_create=>create_dynamic_table
               exporting
                  it_fieldcatalog = ifc
               importing
                  ep_table        = dy_table.
    assign dy_table->* to <dyn_table>.
* Create dynamic work area and assign to FS
  create data dy_line like line of <dyn_table>.
  assign dy_line->* to <dyn_wa>.
  endform.

  form get_data.
* Select Data from table.
  select * into table <dyn_table>
             from (p_table).
  endform.


*   Write out data from table.
FORM write_out.
  loop at <dyn_table> into <dyn_wa>.
    do.
      assign component  sy-index
         of structure <dyn_wa> to <dyn_field>.
      if sy-subrc <> 0.
        exit.
      endif.
      if sy-index = 1.
        write:/ <dyn_field>.
      else.
        write: <dyn_field>.
      endif.
    enddo.
  endloop.
ENDFORM.

rgds,

bharat.

3 REPLIES 3
Read only

Former Member
0 Likes
750

Hi,

see this example.


type-pools : abap.
  field-symbols: <dyn_table> type standard table,
               <dyn_wa>,
               <dyn_field>.
  data: dy_table type ref to data,
      dy_line  type ref to data,
      xfc type lvc_s_fcat,
      ifc type lvc_t_fcat.
  selection-screen begin of block b1 with frame.
parameters: p_table(30) type c default 'T001'.
selection-screen end of block b1.
  start-of-selection.
    perform get_structure.
  perform create_dynamic_itab.
**********Creates a dyanamic internal table**********
  perform get_data.
  perform write_out.
  form get_structure.
  data : idetails type abap_compdescr_tab,
       xdetails type abap_compdescr.
  data : ref_table_des type ref to cl_abap_structdescr.
* Get the structure of the table.
  ref_table_des ?=
      cl_abap_typedescr=>describe_by_name( p_table ).
  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.
  endform.
  form create_dynamic_itab.
* Create dynamic internal table and assign to FS
  call method cl_alv_table_create=>create_dynamic_table
               exporting
                  it_fieldcatalog = ifc
               importing
                  ep_table        = dy_table.
    assign dy_table->* to <dyn_table>.
* Create dynamic work area and assign to FS
  create data dy_line like line of <dyn_table>.
  assign dy_line->* to <dyn_wa>.
  endform.

  form get_data.
* Select Data from table.
  select * into table <dyn_table>
             from (p_table).
  endform.


*   Write out data from table.
FORM write_out.
  loop at <dyn_table> into <dyn_wa>.
    do.
      assign component  sy-index
         of structure <dyn_wa> to <dyn_field>.
      if sy-subrc <> 0.
        exit.
      endif.
      if sy-index = 1.
        write:/ <dyn_field>.
      else.
        write: <dyn_field>.
      endif.
    enddo.
  endloop.
ENDFORM.

rgds,

bharat.

Read only

Former Member
0 Likes
749

hi ,

Check this Example..

code

DATA: itab TYPE STANDARD TABLE OF mara.

DATA: wa TYPE mara.

DATA: where(72).

DATA: where1(72).

Populate.

wa-matnr = 'TEST'.

wa-mtart = 'M1'.

APPEND wa TO itab.

Where clause

where = 'MATNR'.

where1 = 'MTART'.

READ TABLE itab INTO wa WITH KEY (WHERE) = 'TEST'

(WHERE1) = 'M1'.

IF sy-subrc = 0.

WRITE: / 'found'.

ENDIF.

[/code]

reagrds,

venkat.

Read only

Former Member
0 Likes
749

Hi bharat,

In the given example, it is just shown how to create dynamic internal table .But how to populate that dynamic table.