SAP NetWeaver AS ABAP Release 740, ©Copyright 2014 SAP AG. All rights reserved.
ABAP Keyword Documentation → ABAP − Reference → Processing Internal Data → Internal Tables → Processing Statements for Internal Tables → APPEND →Internal Table, Appending Rows
This example demonstrates how rows are appended to internal tables.
Source Code
REPORT demo_int_tables_append.
CLASS demo DEFINITION.
PUBLIC SECTION.
CLASS-METHODS main.
ENDCLASS.
CLASS demo IMPLEMENTATION.
METHOD main.
* append ... to
DATA: BEGIN OF wa,
col1(1) TYPE c,
col2 TYPE i,
END OF wa.
DATA itab LIKE TABLE OF wa.
DO 3 TIMES.
APPEND INITIAL LINE TO itab.
wa-col1 = sy-index. wa-col2 = sy-index ** 2.
APPEND wa TO itab.
ENDDO.
DATA(out) = cl_demo_output=>new(
)->write_data( itab
)->line( ).
* append ... to
DATA: BEGIN OF line1,
col1(3) TYPE c,
col2(2) TYPE n,
col3 TYPE i,
END OF line1,
tab1 LIKE TABLE OF line1.
DATA: BEGIN OF line2,
field1(1) TYPE c,
field2 LIKE tab1,
END OF line2,
tab2 LIKE TABLE OF line2.
line1-col1 = 'abc'. line1-col2 = '12'. line1-col3 = 3.
APPEND line1 TO tab1.
line1-col1 = 'def'. line1-col2 = '34'. line1-col3 = 5.
APPEND line1 TO tab1.
line2-field1 = 'A'. line2-field2 = tab1.
APPEND line2 TO tab2.
CLEAR tab1.
line1-col1 = 'ghi'. line1-col2 = '56'. line1-col3 = 7.
APPEND line1 TO tab1.
line1-col1 = 'jkl'. line1-col2 = '78'. line1-col3 = 9.
APPEND line1 TO tab1.
line2-field1 = 'B'. line2-field2 = tab1.
APPEND line2 TO tab2.
LOOP AT tab2 INTO line2.
out->write_data( line2-field1 ).
out->write_data( line2-field2 ).
ENDLOOP.
out->line( ).
* append lines of ... to
DATA: BEGIN OF line,
col1(1) TYPE c,
col2 TYPE i,
END OF line.
DATA: itab1 LIKE TABLE OF line,
jtab LIKE itab.
DO 3 TIMES.
line-col1 = sy-index. line-col2 = sy-index ** 2.
APPEND line TO itab1.
line-col1 = sy-index. line-col2 = sy-index ** 3.
APPEND line TO jtab.
ENDDO.
APPEND LINES OF jtab FROM 2 TO 3 TO itab1.
out->write_data( itab1 ).
out->display( ).
ENDMETHOD.
ENDCLASS.
START-OF-SELECTION.
demo=>main( ).
Description
In the first part of this example, the internal table itab is created with two columns and filled in the loop DO. At each pass of the loop, a row with initial values is added, after which the table work area is filled with the loop index and the square of the loop index and then appended.
In the second part of this example two internal tables, tab1 and tab2, are created. tab2 has a deep structure because the second component of line2 has the same data type as tab1. line1 is filled and appended to tab1. line2 is filled next and appended to tab2. After tab1 has been initialized using the REFRESH statement, the same procedure is repeated.
Finally, three rows are added to the internal table itab using APPEND statement and the SORTED BY addition. The row with the smallest value in the field col2 is dropped because the number of rows for this APPEND statement is limited to two using INITIAL SIZE.