Application Development 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: 

how to populate dynamic internal table according to the field names

former_member200872
Active Participant
0 Kudos

Hi ,

Iam having a dynamic internal table <DYN_TABLE> , it has fields like

MATNR MAKTX MEINS BISMT MTART ...

Now my requirement is i need to fill them according to the fieldname from another internal table (static) .

The order of internal table (static) and dynamic internal are not same.

kindly help me.

4 REPLIES 4

Former Member
0 Kudos

Hi,

check this

http://www.sap-img.com/ab030.htm

Dynamic Internal table

/people/subramanian.venkateswaran2/blog/2004/11/19/dynamic-internal-table

Regards,

Shiva Kumar

0 Kudos

thanks Shiv .. i have gone thru this . i want to move data to dynamic internal table from static- defined internal table according to field-wise.

thanks.

Former Member
0 Kudos

Hi,

Here is the code. Please reward points if helpful.

REPORT z_dynamic.

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.

PERFORM get_data.

PERFORM write_out.

&----


*& Form get_structure

&----


  • text

----


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. "get_structure

&----


*& Form create_dynamic_itab

&----


  • text

----


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. "create_dynamic_itab

&----


*& Form get_data

&----


  • text

----


FORM get_data.

  • Select Data from table.

SELECT * INTO TABLE <dyn_table>

FROM (p_table).

ENDFORM. "get_data

&----


*& Form write_out

&----


  • text

----


FORM write_out.

  • Write out data from table.

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. "write_out

Former Member
0 Kudos

Hi,

Check the code below:

field-symbols: <f_fs> type any,
                               <f_fs1> type any,

                     <f_wa> type any.
CREATE DATA G_WA LIKE LINE OF <dyn_table>.
ASSIGN G_WA->* TO <F_WA>.
Loop at static_table into <f_fs>.
assign component 1 of structure <f_fs> to <f_fs1>.
assign component 'MATNR' of structure <f_wa> to <f_fs2>.
<f_fs2> = <f_fs1>.
* similarly do for all the fields
endloop.