*internal table with work area
DATA: BEGIN
OF
LINE,
COL1 TYPE
I,
COL2 TYPE
I,
END
OF
LINE.
DATA
ITAB like
LINE
occurs
10.
DO
2
TIMES.
LINE-COL1 = SY-INDEX.
LINE-COL2 = SY-INDEX ** 2.
APPEND
LINE
TO
ITAB.
ENDDO.
LOOP
AT
ITAB INTO
LINE.
WRITE: / LINE-COL1, LINE-COL2.
ENDLOOP.
*internal table with type
types: begin
of
tline,
col1 type
i,
col2 type
i,
end
of
tline.
types
tItab type
tline occurs
10.
data: dline type
tline,
dItab type
tItab.
do
2
times.
dline-col1 = sy-index.
dline-col2 = sy-index ** 2.
append
dline to
dItab.
enddo.
loop
at
dItab into
dline.
write: / dline-col1, dline-col2.
endloop.
skip.
*internal table without work area
DATA: BEGIN
OF
ITAB2 OCCURS
10,
COL1 TYPE
I,
COL2 TYPE
I,
END
OF
ITAB2.
DO
2
TIMES.
ITAB2-COL1 = SY-INDEX.
ITAB2-COL2 = SY-INDEX ** 2.
APPEND
ITAB2. "新增至内表中
ENDDO.
LOOP
AT
ITAB2. "ITAB2 总共有两个行
WRITE: / ITAB2-COL1, ITAB2-COL2.
ENDLOOP.
skip.
append
lines
of
dItab from
1
to
1
to
itab2.
LOOP
AT
ITAB2. "ITAB2 总共有4行
WRITE: / ITAB2-COL1, ITAB2-COL2.
ENDLOOP.
DATA: BEGIN
OF
ITAB3 OCCURS
3,
COL1(3) TYPE
C,
COL2 TYPE
I,
END
OF
ITAB3.
ITAB3-COL1 = 'ABC'
. ITAB3-COL2 = 10.
COLLECT
ITAB3.
ITAB3-COL1 = 'XYZ'
. ITAB3-COL2 = 20.
COLLECT
ITAB3.
ITAB3-COL1 = 'ABC'
. ITAB3-COL2 = 30.
COLLECT
ITAB3. "汇总 COL2 至 COL1=ABC 的元素上
LOOP
AT
ITAB3.
WRITE: / ITAB3-COL1, ITAB3-COL2.
ENDLOOP.
DATA: BEGIN
OF
line4,
COL1 TYPE
I,
COL2 TYPE
I,
END
OF
line4.
DATA
itab4 LIKE
line4 OCCURS
10
with
header
line.
DO
3
TIMES.
line4-COL1 = SY-INDEX * 10.
line4-COL2 = SY-INDEX * 20.
APPEND
line4 TO
itab4.
ENDDO.
line4-COL1 = 100.
line4-COL2 = 200.
INSERT
line4 INTO
itab4 index
2.
"插入在位置2 之前
LOOP
AT
itab4 INTO
line4.
WRITE: / SY-TABIX, line4-COL1, line4-COL2. "SY-TABIX 为Table 位置
ENDLOOP.
skip.
LOOP
AT
ITAB4 INTO
LINE4 WHERE
COL1 >= 100.
WRITE: / SY-TABIX, LINE4-COL1.
ENDLOOP.
skip.
read
table
itab4 into
line4 index
2.
WRITE: / SY-TABIX, LINE4-COL1, LINE4-COL2.
skip.
LINE4-COL1 = 4.
write
/ LINE4-COL1.
LINE4-COL2 = 100.
MODIFY
ITAB4 FROM
LINE4 INDEX
2.
read
table
itab4 into
line4 index
2.
WRITE: / SY-TABIX, LINE4-COL1, LINE4-COL2.
skip.
LINE4-COL1 = 10.
MODIFY
ITAB4 FROM
LINE4 INDEX
3
TRANSPORTING
COL1.
read
table
itab4 into
line4 index
3.
WRITE: / SY-TABIX, LINE4-COL1, LINE4-COL2.
skip.
write
'delete internal table use index:'
.
delete
ITAB4 index
2.
loop
at
itab4 into
line4.
write: / line4-col1, line4-col2.
endloop.
skip.
write
'delete internal table by condition.'
.
delete
itab4 where
col2 = 40.
loop
at
itab4 into
line4.
write: / line4-col1, line4-col2.
endloop.
skip.
line4-col1 = 100.
line4-col2 = 400.
append
line4 to
itab4.
line4-col1 = 100.
line4-col2 = 200.
append
line4 to
itab4.
write
'sort internal table'
.
*sort itab4 descending by col1 col2.
sort
itab4 by
col1 descending
col2 ascending.
loop
at
itab4 into
line4.
write: / line4-col1, line4-col2.
endloop.
skip.
write
'calc numeric field sum.'
.
LOOP
AT
ITAB4 INTO
LINE4.
SUM.
ENDLOOP.
WRITE: / LINE4-COL1, LINE4-COL2.
skip.
write
'refresh internal table.'
.
clear
ITAB3[].
LOOP
AT
ITAB3.
WRITE: / ITAB3-COL1, ITAB3-COL2.
ENDLOOP.
free
itab3.
span { font-family: "Courier New"; font-size: 10pt; color: rgb(0, 0, 0); background: none repeat scroll 0% 0% rgb(217, 217, 217); }.L0S32 { color: rgb(51, 153, 255); }.L0S33 { color: rgb(77, 166, 25); }.L0S52 { color: rgb(0, 0, 255); }
write
'internal table with header line.'
.
TYPES: BEGIN
OF
LINE5,
COL1 TYPE
I,
COL2 TYPE
I,
END
OF
LINE5.
DATA
ITAB5 TYPE
HASHED
TABLE
OF
LINE5 WITH
UNIQUE
KEY
COL1
WITH
HEADER
LINE.
DO
4
TIMES.
ITAB5-COL1 = SY-INDEX.
ITAB5-COL2 = SY-INDEX ** 2.
INSERT
TABLE
ITAB5.
ENDDO.
write
/ 'read table.'
.
ITAB5-COL1 = 2.
READ
TABLE
ITAB5 FROM
ITAB5.
WRITE: / ITAB5-COL1, ITAB5-COL2.
write
/ 'modify table.'
.
ITAB5-COL2 = 100.
MODIFY
TABLE
ITAB5.
LOOP
AT
ITAB5.
WRITE: / ITAB5-COL1, ITAB5-COL2.
ENDLOOP.
write
/ 'delete table.'
.
ITAB5-COL1 = 4.
DELETE
TABLE
ITAB5.
LOOP
AT
ITAB5.
WRITE: / ITAB5-COL1, ITAB5-COL2.
ENDLOOP.
skip.
write
'internal table without header line.'
.
TYPES: BEGIN
OF
LINE6,
COL1 TYPE
I,
COL2 TYPE
I,
END
OF
LINE6.
DATA: ITAB6 TYPE
HASHED
TABLE
OF
LINE6 WITH
UNIQUE
KEY
COL1,
WA LIKE
LINE
OF
ITAB6.
DO
4
TIMES.
WA-COL1 = SY-INDEX.
WA-COL2 = SY-INDEX ** 2.
INSERT
WA INTO
TABLE
ITAB6.
ENDDO.
WA-COL1 = 2.
READ
TABLE
ITAB6 FROM
WA INTO
WA.
WA-COL2 = 100.
MODIFY
TABLE
ITAB6 FROM
WA.
WA-COL1 = 4.
DELETE
TABLE
ITAB6 FROM
WA.
LOOP
AT
ITAB6 INTO
WA.
WRITE: / WA-COL1, WA-COL2.
ENDLOOP.