2008 Jun 04 10:53 AM
Hi all,
I have a dynamic internal table and need to append a new line to the dynamic internal table.
Can anyone help me on this.
hi,
Do u want to add a row data in the internal table ?
or u want to add a field to the internal table ?
E.g:
Dynamic Internal table
DATA : BEGIN OF int OCCURS 0,
val TYPE char1,
cnt TYPE char2,
dol TYPE i,
END OF int.
For adding data :
int-val = 'A'.
int-cnt = '01'.
int-dol = 10.
APPEND int.
For adding field :
DATA : BEGIN OF int OCCURS 0,
val TYPE char1,
cnt TYPE char2,
dol TYPE i,
new type char4,
END OF int.
revert back if any query ......
reward points if useful
2008 Jun 04 10:59 AM
Hi Deepak,
This example code may help u
REPORT ZTEST.
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.Reward points if useful
2008 Jun 04 11:06 AM
Hello Deepak,
Please try out the code below:
* Create Dynamic Table
CALL METHOD cl_alv_table_create=>create_dynamic_table
EXPORTING
it_fieldcatalog = lt_fcat[]
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>.
DATA: FIELDNAME(3) TYPE C.
FIELD-SYMBOLS: <FS_FIELD_FROM>,
<FS_FIELD_TO>.
LOOP AT ITAB.
DO 3 TIMES.
WHEN 1. FIELDNAME = 'F1'.
WHEN 2. FIELDNAME = 'F3'.
WHEN 3. FIELDNAME = 'F5'.
ASSIGN COMPONENT FIELDNAME OF STRUCTURE ITAB TO <FS_FIELD_FROM>.
ASSIGN COMPONENT FIELDNAME OF STRUCTURE <DYN_WA> TO <FS_FIELD_TO>.
<FS_FIELD_TO> = <FS_FIELD_FROM>.
ENDDO.
APPEND <DYN_WA> TO <dyn_table>.
ENDLOOP.
Hope this answers your question.
Cheers,
Sougata.
2008 Jun 04 11:06 AM
hi,
Do u want to add a row data in the internal table ?
or u want to add a field to the internal table ?
E.g:
Dynamic Internal table
DATA : BEGIN OF int OCCURS 0,
val TYPE char1,
cnt TYPE char2,
dol TYPE i,
END OF int.
For adding data :
int-val = 'A'.
int-cnt = '01'.
int-dol = 10.
APPEND int.
For adding field :
DATA : BEGIN OF int OCCURS 0,
val TYPE char1,
cnt TYPE char2,
dol TYPE i,
new type char4,
END OF int.
revert back if any query ......
reward points if useful
| User | Count |
|---|---|
| 4 | |
| 2 | |
| 2 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 |