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: 

Moving Data dynnmically to an internal table

prabhu_s2
Active Contributor
0 Kudos

Hi All

is it possible to refer a field of an internal table dynamically? say i want to move a value to t_mkpf-mblnr = '1232113' dynamically like

t_mkpf-<field_name> = <value>

?????

regds

Prabhu

1 ACCEPTED SOLUTION

Former Member
0 Kudos

Hello,

Check this sample.


REPORT ZV_DYNAMIC .
PARAMETERS: P_COL1 TYPE I,
            P_COL2 TYPE I.
FIELD-SYMBOLS: <FS> TYPE ANY.
DATA: CHECK.

TYPES: BEGIN OF TYP_ITAB,
COL1 TYPE I,
COL2 TYPE I,
COL3 TYPE I,
COL4 TYPE I,
COL5 TYPE I,
COL6 TYPE I,
END OF TYP_ITAB.
DATA: ITAB TYPE TABLE OF TYP_ITAB, WA LIKE LINE OF ITAB.

WA-COL1 = 1.
WA-COL2 = 2.
WA-COL3 = 3.
WA-COL4 = 4.
WA-COL5 = 5.
WA-COL6 = 6.

APPEND WA TO ITAB.
WA-COL1 = 1.
WA-COL2 = 2.
WA-COL3 = 3.
WA-COL4 = 4.
WA-COL5 = 5.
WA-COL6 = 6.

APPEND WA TO ITAB.

DATA: COL1(20),
      COL2(20),
      CHAR,
      CHAR2.
WRITE P_COL1 TO CHAR.
CONCATENATE 'COL' CHAR INTO  COL1.
WRITE P_COL2 TO CHAR.
CONCATENATE 'COL' CHAR INTO  COL2.
*FIELD-SYMBOLS <F> TYPE ANY.
*ASSIGN (COL1) TO <F>.
DATA: BEGIN OF ITAB1 OCCURS 0,
 COL1 TYPE I,
COL2 TYPE I,
END OF ITAB1.
  FIELD-SYMBOLS: <FS1> TYPE ANY,
                 <FS2> TYPE ANY.
  DATA: VAR TYPE I.

LOOP AT ITAB ASSIGNING <FS>.


*  IF SY-TABIX = 1.
  ASSIGN COMPONENT COL1 OF STRUCTURE <FS> TO <FS1>.
*  ELSE.
  ASSIGN COMPONENT COL2 OF STRUCTURE <FS> TO <FS2>.
*  ENDIF.

*  APPEND <FS1> TO ITAB1.
  MOVE <FS1> TO ITAB1-COL1.
  MOVE <FS2> TO ITAB1-COL2.
  APPEND ITAB1.
*  WRITE:/  <FS1>,<FS2>.
ENDLOOP.

LOOP AT ITAB1.
  WRITE:/ ITAB1-COL1, ITAB1-COL2.
ENDLOOP.

REgards,

Vasanth

3 REPLIES 3

Former Member
0 Kudos

Hello,

Check this sample.


REPORT ZV_DYNAMIC .
PARAMETERS: P_COL1 TYPE I,
            P_COL2 TYPE I.
FIELD-SYMBOLS: <FS> TYPE ANY.
DATA: CHECK.

TYPES: BEGIN OF TYP_ITAB,
COL1 TYPE I,
COL2 TYPE I,
COL3 TYPE I,
COL4 TYPE I,
COL5 TYPE I,
COL6 TYPE I,
END OF TYP_ITAB.
DATA: ITAB TYPE TABLE OF TYP_ITAB, WA LIKE LINE OF ITAB.

WA-COL1 = 1.
WA-COL2 = 2.
WA-COL3 = 3.
WA-COL4 = 4.
WA-COL5 = 5.
WA-COL6 = 6.

APPEND WA TO ITAB.
WA-COL1 = 1.
WA-COL2 = 2.
WA-COL3 = 3.
WA-COL4 = 4.
WA-COL5 = 5.
WA-COL6 = 6.

APPEND WA TO ITAB.

DATA: COL1(20),
      COL2(20),
      CHAR,
      CHAR2.
WRITE P_COL1 TO CHAR.
CONCATENATE 'COL' CHAR INTO  COL1.
WRITE P_COL2 TO CHAR.
CONCATENATE 'COL' CHAR INTO  COL2.
*FIELD-SYMBOLS <F> TYPE ANY.
*ASSIGN (COL1) TO <F>.
DATA: BEGIN OF ITAB1 OCCURS 0,
 COL1 TYPE I,
COL2 TYPE I,
END OF ITAB1.
  FIELD-SYMBOLS: <FS1> TYPE ANY,
                 <FS2> TYPE ANY.
  DATA: VAR TYPE I.

LOOP AT ITAB ASSIGNING <FS>.


*  IF SY-TABIX = 1.
  ASSIGN COMPONENT COL1 OF STRUCTURE <FS> TO <FS1>.
*  ELSE.
  ASSIGN COMPONENT COL2 OF STRUCTURE <FS> TO <FS2>.
*  ENDIF.

*  APPEND <FS1> TO ITAB1.
  MOVE <FS1> TO ITAB1-COL1.
  MOVE <FS2> TO ITAB1-COL2.
  APPEND ITAB1.
*  WRITE:/  <FS1>,<FS2>.
ENDLOOP.

LOOP AT ITAB1.
  WRITE:/ ITAB1-COL1, ITAB1-COL2.
ENDLOOP.

REgards,

Vasanth

0 Kudos

thks for the code vasanth....but i need as follows:

MOVE <FS1> TO ITAB1-COL1 where the field of the internal should be filled in dynamically.

something like

MOVE <FS1> TO ITAB1-<field>.

append itab1.

prabhu_s2
Active Contributor
0 Kudos

thks...solved it myself...clue is from ur code. assign..components. thkx