0% found this document useful (0 votes)
27 views

Different Types of Internal Table

Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
27 views

Different Types of Internal Table

Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 82

INTERNAL TABLE:

An internal table is a temporary table that is created in the RAM on the Application Server or it is
created inside a program. It can hold data only as long as a user is inside a screen. The
moment the user goes out of the screen, all the rows are deleted and the associated memory
will also be cleared. An internal table cannot avoid duplicate entries. Number of records in the
internal tables is called as number of Lines.

Internal Table Index:


An internal table index represents a line number of an internal table. Using this, we can, insert
or read or modify or delete a particular line. The internal table index can be specified either as
variable or as a value. After processing a particular line, the system field SY-TABIX will contain
the line number. The system field SY-TFILL will contain the total number of lines in an internal
table.
DATA RETRIEVAL FLOW FOR REPORT GENERATION:

TABLE(S) INTERNAL WORK


OUTPUT
(Database Server) TABLE AREA

APPLICATION SERVER
APPLICATION SERVER

WORK AREA:

A work area has a similar structure of an internal table but it has only row. Using the work area,
we can append or insert or read or modify or delete a particular line.
TYPES OF INTERNAL TABLES:

TABLE TYPE DESCRIPTION SEARCH TYPE SORTING


Maintained by Table index. Default is Linear. Can be sorted after
Standard Table Binary is also filling.
(Default) possible.
Maintained by Table Key. Default is Binary. Cannot be sorted
Sorted Table Can be Unique or Non Linear is also after filling.
Unique. possible.
Maintained by Table Default is Linear. Can be sorted after
Key. Can be Unique Binary has no filling.
Hashed Table only. Data is stored effect.
based on Hash
algorithm. Encrypted Data.

CREATION AND FILLING OF INTERNAL TABLES:

1. Materials Master Report:

TYPES: BEGIN OF FS,


MATNR TYPE MARA-MATNR,
ERSDA TYPE MARA-ERSDA,
MBRSH TYPE MARA-MBRSH,
MTART TYPE MARA-MTART,
BRGEW TYPE MARA-BRGEW,
GEWEI TYPE MARA-GEWEI,
END OF FS.
DATA: IT TYPE STANDARD TABLE OF FS INITIAL SIZE 0,
WA TYPE FS." IT - INTERNAL TABLE, WA - WORK AREA.

PARAMETERS M TYPE MARA-MATNR.

SELECT * FROM MARA INTO CORRESPONDING FIELDS OF TABLE IT WHERE MATNR = M.


LOOP AT IT INTO WA.
WRITE : / WA-MATNR,WA-ERSDA,WA-MBRSH,WA-MTART,WA-BRGEW,WA-GEWEI.
ENDLOOP.

IF SY-SUBRC = 4.
MESSAGE 'No Records Found' TYPE 'E'.
ENDIF.

SELECTION SCREEN:

OUTPUT:

100-400 07.11.1994 M HALB 1.800 KG

2. Materials Master Report:

TYPES: BEGIN OF FS,


MATNR TYPE MARA-MATNR,
ERSDA TYPE MARA-ERSDA,
MBRSH TYPE MARA-MBRSH,
MTART TYPE MARA-MTART,
BRGEW TYPE MARA-BRGEW,
GEWEI TYPE MARA-GEWEI,
END OF FS.
DATA: IT TYPE STANDARD TABLE OF FS INITIAL SIZE 0,
WA TYPE FS." IT - INTERNAL TABLE, WA - WORK AREA.

SELECT-OPTIONS M FOR WA-MATNR.

SELECT * FROM MARA INTO CORRESPONDING FIELDS OF TABLE IT WHERE MATNR IN M.


LOOP AT IT INTO WA.
WRITE : / WA-MATNR,WA-ERSDA,WA-MBRSH,WA-MTART,WA-BRGEW,WA-GEWEI.
ENDLOOP.

IF SY-SUBRC = 4.
MESSAGE 'No Records Found' TYPE 'E'.
ENDIF.

SELECTION SCREEN:

OUTPUT:

100-100 07.11.1994 M HALB 3.000 KG

100-101 05.03.1996 M HALB 0.000 KG

100-110 07.11.1994 M ROH 12.000 KG

100-120 08.11.1994 M ROH 0.010 KG

100-130 08.11.1994 M ROH 0.005 KG

100-200 07.11.1994 M HALB 2.500 KG

100-210 07.11.1994 M ROH 5.000 KG

100-250 19.12.2002 A HAWA 1.000 KG

100-251 19.12.2002 A HAWA 0.250 KG

100-260 19.12.2002 A HAWA 1.250 KG

100-261 19.12.2002 A HAWA 0.250 KG

100-300 07.11.1994 M HALB 3.000 KG


USING AND or OR CONDITION:

We can use logical expressions like AND, OR , NOT.

TYPES: BEGIN OF FS,


MATNR TYPE MARA-MATNR,
ERSDA TYPE MARA-ERSDA,
MBRSH TYPE MARA-MBRSH,
MTART TYPE MARA-MTART,
BRGEW TYPE MARA-BRGEW,
GEWEI TYPE MARA-GEWEI,
END OF FS.
DATA: IT TYPE STANDARD TABLE OF FS INITIAL SIZE 0,
WA TYPE FS.

SELECT-OPTIONS M FOR WA-MATNR.


PARAMETERS S TYPE MARA-MBRSH.

SELECT * FROM MARA INTO CORRESPONDING FIELDS OF TABLE IT WHERE MATNR IN M AND
MBRSH = S.

LOOP AT IT INTO WA.


WRITE : / WA-MATNR,WA-ERSDA,WA-MBRSH,WA-MTART,WA-BRGEW,WA-GEWEI.
ENDLOOP.

IF SY-SUBRC = 4.
MESSAGE 'No Records Found' TYPE 'E'.
ENDIF.

In the similar way, we can do for OR option also.


USING ORDER BY OPTION TO SORT:

We can use ORDER BY option to sort the records with respect to a field in Ascending order or

Descending order.

TYPES: BEGIN OF FS,


MATNR TYPE MARA-MATNR,
ERSDA TYPE MARA-ERSDA,
MBRSH TYPE MARA-MBRSH,
MTART TYPE MARA-MTART,
BRGEW TYPE MARA-BRGEW,
GEWEI TYPE MARA-GEWEI,
END OF FS.
DATA: IT TYPE STANDARD TABLE OF FS INITIAL SIZE 0,
WA TYPE FS.

SELECT-OPTIONS M FOR WA-MATNR.


PARAMETERS S TYPE MARA-MBRSH.

SELECT * FROM MARA INTO CORRESPONDING FIELDS OF TABLE IT WHERE MATNR IN M AND
MBRSH = S ORDER BY MATNR DESCENDING.
*MATNR in Descending Order.If none is specified default is Ascending Order.

LOOP AT IT INTO WA.


WRITE : / WA-MATNR,WA-ERSDA,WA-MBRSH,WA-MTART,WA-BRGEW,WA-GEWEI.
ENDLOOP.

IF SY-SUBRC = 4.
MESSAGE 'No Records Found' TYPE 'E'.
ENDIF.
USING FIELD LABELS:

These are used for searching. Using this, we can retrieve data :

a) That begins with a letter – e.g. A% - begins with A.


b) That ends with a letter – e.g. %B – ends with B.
c) That has a letter – e.g. %M% - has a letter M. These are case sensitive.

This can be used in the SELECT statement only.

TYPES: BEGIN OF FS,


LIFNR TYPE LFA1-LIFNR,
KTOKK TYPE LFA1-KTOKK,
NAME1 TYPE LFA1-NAME1,
SORTL TYPE LFA1-SORTL,
LAND1 TYPE LFA1-LAND1,
END OF FS.
DATA: IT TYPE TABLE OF FS INITIAL SIZE 0,WA TYPE FS.

SELECT-OPTIONS V FOR WA-LIFNR.

SELECT * FROM LFA1 INTO CORRESPONDING FIELDS OF TABLE IT WHERE LIFNR IN V


AND NAME1 LIKE 'S%' . " NAME BEGINNING WITH S.

LOOP AT IT INTO WA.


WRITE : / WA-LIFNR,WA-KTOKK,WA-NAME1,WA-SORTL,WA-LAND1.
ENDLOOP.

IF SY-SUBRC = 4.
MESSAGE 'No Records Found!' TYPE 'E'.
ENDIF.
JOINING TABLES:

We can join number of tables. There are two types of joins. They are:

a) Inner Join.
b) Left Outer Join.

INNER JOIN:

Keyword: INNER JOIN or JOIN

Here the system will retrieve the number of records that are common in both the tables.

Here T1 and T2 are tables. Aliases should be mentioned for the all the fields that are common in
both the tables. e.g. T1~MATNR,T2~MATNR. Here MATNR is common in both the tables.

LEFT OUTER JOIN:

Keyword: LEFT OUTER JOIN.

Here the system will retrieve the number of records in T1 and the number of records common in
T1 and t2.

Here T1 and T2 are tables.


EXAMPLE:

YPES: BEGIN OF FS,


MATNR TYPE ZMAT-MATNR,
MBRSH TYPE ZMAT-MBRSH,
MTART TYPE ZMAT-MTART,
MAKTX TYPE ZMAT-MAKTX,
BRGEW TYPE ZMAT-BRGEW,
GEWEI TYPE ZMAT-GEWEI,
END OF FS.
DATA: IT TYPE TABLE OF FS INITIAL SIZE 0,
WA TYPE FS.
SELECT-OPTIONS M FOR WA-MATNR.
SELECT T1~MATNR MBRSH MTART MAKTX BRGEW GEWEI FROM MARA AS T1 JOIN MAKT AS T2
ON T1~MATNR = T2~MATNR INTO TABLE IT WHERE T1~MATNR IN M AND SPRAS = SY-
LANGU.
LOOP AT IT INTO WA.
WRITE : / WA-MATNR,WA-MBRSH,WA-MTART,WA-MAKTX,WA-BRGEW,WA-GEWEI.
ENDLOOP.
IF SY-SUBRC = 4.
MESSAGE 'No Records Found' TYPE 'E'.
ENDIF.

FOR ALL ENTRIES:

This is used to read data from more than 2 tables.

The addition FOR ALL ENTRIES is only possible:

1. Before WHERE conditions of the SELECT statement.


2. For WHERE conditions of the SELECT statement.

This is the best alternative for SELECT WITH JOINS.


EXAMPLE:

TYPES: BEGIN OF FS1,


WERKS TYPE T001L-WERKS,
LGORT TYPE T001L-LGORT,
END OF FS1.
DATA: IT1 TYPE TABLE OF FS1 INITIAL SIZE 0,
WA1 TYPE FS1.

TYPES: BEGIN OF FS2,


LGORT TYPE MARD-LGORT,
MATNR TYPE MARA-MATNR,
MAKTX TYPE MAKT-MAKTX,
BRGEW TYPE MARA-BRGEW,
GEWEI TYPE MARA-GEWEI,
END OF FS2.
DATA: IT2 TYPE TABLE OF FS2 INITIAL SIZE 0,
WA2 TYPE FS2.

PARAMETERS P TYPE T001L-WERKS.

SELECT-OPTIONS S FOR WA1-LGORT.

SELECT * FROM T001L INTO CORRESPONDING FIELDS OF TABLE IT1 WHERE WERKS = P

AND LGORT IN S.

SELECT LGORT T1~MATNR MAKTX BRGEW GEWEI FROM MARA AS T1 JOIN MAKT AS T2
ON T1~MATNR = T2~MATNR JOIN MARD AS T3 ON T1~MATNR = T3~MATNR INTO TABLE IT2
FOR ALL ENTRIES IN IT1 WHERE LGORT = IT1-LGORT AND SPRAS = SY-LANGU.

LOOP AT IT2 INTO WA2.


WRITE : / WA2-MATNR,WA2-MAKTX,WA2-BRGEW,WA2-GEWEI.
ENDLOOP.

IF SY-SUBRC = 4.
MESSAGE 'No Records Found' TYPE 'E'.
ENDIF.
RETRIEVING A SINGLE ROW:

To retrieve a single record, we can use the following methods:

SELECT SINGLE:

Here, the system will retrieve the first record that satisfies the condition and will not retrieve
further. It may not be consistent.

TYPES: BEGIN OF FS,


LIFNR TYPE LFA1-LIFNR,
KTOKK TYPE LFA1-KTOKK,
NAME1 TYPE LFA1-NAME1,
SORTL TYPE LFA1-SORTL,
LAND1 TYPE LFA1-LAND1,
END OF FS.
DATA: WA TYPE FS.

PARAMETERS A TYPE LFA1-LIFNR.

SELECT SINGLE * FROM LFA1 INTO CORRESPONDING FIELDS OF WA WHERE LIFNR = A.

WRITE : / WA-LIFNR,WA-KTOKK,WA-NAME1,WA-SORTL,WA-LAND1.

IF SY-SUBRC = 4.
MESSAGE 'No Records Found!' TYPE 'E'.
ENDIF.

SELECT UP TO 1 ROWS:

Here, the system will retrieve all the records that satisfy the conditions, sort them in a particular
sequence, then it will send the first record as the output. This will always be consistent. Here we
can read more than 1 rows also.
REPORT TO RETRIEVE THE LAST PURCHASE ORDER DETAILS OF A PARTICULAR DAY

TYPES: BEGIN OF FS,


EBELN TYPE ZPOR-EBELN,
AEDAT TYPE ZPOR-AEDAT,
MATNR TYPE ZPOR-MATNR,
TXZ01 TYPE ZPOR-TXZ01,
MENGE TYPE ZPOR-MENGE,
MEINS TYPE ZPOR-MEINS,
END OF FS.
DATA: IT TYPE TABLE OF FS INITIAL SIZE 0,
WA TYPE FS.

PARAMETERS D TYPE ZPOR-AEDAT.

SELECT T1~EBELN T1~AEDAT MATNR TXZ01 MENGE MEINS FROM EKKO AS T1 JOIN EKPO AS
T2
ON T1~EBELN = T2~EBELN UP TO 1 ROWS INTO TABLE IT WHERE T1~AEDAT = D ORDER B
Y
T1~EBELN DESCENDING.
LOOP AT IT INTO WA.
WRITE : / WA-EBELN,WA-AEDAT,WA-MATNR,WA-TXZ01,WA-MENGE,WA-MEINS.
ENDLOOP.
IF SY-SUBRC = 4.
MESSAGE 'No Records Found!' TYPE 'E'.
ENDIF.

AGGREGATE FUNCTIONS:

1. MAX – Maximum.
2. MIN – Minimum.
3. AVG – Average.
TO FIND THE MINIMUM GROSS WEIGHT FROM THE LIST OF MATERIAL NOS:

TYPES: BEGIN OF FS,


MATNR TYPE ZMAT-MATNR,
MBRSH TYPE ZMAT-MBRSH,
MTART TYPE ZMAT-MTART,
BRGEW TYPE ZMAT-BRGEW,
GEWEI TYPE ZMAT-GEWEI,
END OF FS.
DATA: IT TYPE TABLE OF FS INITIAL SIZE 0,WA TYPE FS.

SELECT-OPTIONS M FOR WA-MATNR.

SELECT * FROM MARA INTO CORRESPONDING FIELDS OF TABLE IT WHERE


MATNR IN M AND BRGEW = ( SELECT MIN( BRGEW ) FROM MARA WHERE
MATNR IN M ).

LOOP AT IT INTO WA.


WRITE : / WA-MATNR,WA-MBRSH,WA-MTART,WA-BRGEW,WA-GEWEI.
ENDLOOP.

IF SY-SUBRC = 4.
MESSAGE 'No Records Found!' TYPE 'E'.
ENDIF.

In the similar way, we can write programs for Maximum and Average.
USING IMPLICIT WORK AREA:

Keyword: TABLES <TABLE NAME>.

Example:

TABLES MARA.
DATA: IT TYPE TABLE OF MARA INITIAL SIZE 0,WA LIKE LINE OF IT.

SELECT-OPTIONS M FOR WA-MATNR.

SELECT * FROM MARA INTO TABLE IT WHERE MATNR IN M .

LOOP AT IT INTO WA.


WRITE : / WA-MATNR,WA-MBRSH,WA-MTART,WA-BRGEW,WA-GEWEI.
ENDLOOP.

IF SY-SUBRC = 4.
MESSAGE 'No Records Found!' TYPE 'E'.
ENDIF.

STANDARD TABLES:

ADDING NEW LINE INTO THE INTERNAL TABLE:

We can add new line into the internal table. For this, following keywords are used:

1. Append.
2. Insert.
3. Collect.
1. APPEND:

To add a new line into the internal table without checking the content of the internal table,
we can use the keyword APPEND. New line will be added in the last. The system will not
avoid the duplicate entries.

Syntax: APPEND WA TO IT.

where WA is the work area and IT is the name of the internal table.

TYPES: BEGIN OF FS,


MATNR TYPE ZMAT-MATNR,
MBRSH TYPE ZMAT-MBRSH,
MTART TYPE ZMAT-MTART,
MAKTX TYPE ZMAT-MAKTX,
BRGEW TYPE ZMAT-BRGEW,
GEWEI TYPE ZMAT-GEWEI,
END OF FS.
DATA: IT TYPE TABLE OF FS INITIAL SIZE 0,
WA TYPE FS.

WA-MATNR = '100'.
WA-MBRSH = 'C'.
WA-MTART = 'FERT'.
WA-MAKTX = 'Copper Sulphate'.
WA-BRGEW = '250.700'.
WA-GEWEI = 'KG'.
APPEND WA TO IT.

WA-MATNR = '102'.
WA-MBRSH = 'C'.
WA-MTART = 'FERT'.
WA-MAKTX = 'Ammonium Phosphate'.
WA-BRGEW = '350.700'.
WA-GEWEI = 'KG'.
APPEND WA TO IT.

WA-MATNR = '101'.
WA-MBRSH = 'M'.
WA-MTART = 'FERT'.
WA-MAKTX = 'Castings'.
WA-BRGEW = '550.700'.
WA-GEWEI = 'KG'.
APPEND WA TO IT.

WA-MATNR = '100'.
WA-MBRSH = 'C'.
WA-MTART = 'FERT'.
WA-MAKTX = 'Copper Sulphate'.
WA-BRGEW = '350.700'.
WA-GEWEI = 'KG'.
APPEND WA TO IT.

LOOP AT IT INTO WA.


WRITE : / SY-TABIX,WA-MATNR,WA-MBRSH,WA-MTART,WA-MAKTX,WA-BRGEW,WA-
GEWEI.
ENDLOOP.

OUTPUT:

1 100 C FERT Copper Sulphate 250.700 KG

2 102 C FERT Ammonium Phosphate 350.700 KG

3 101 M FERT Castings 550.700 KG

4 100 C FERT Copper Sulphate 350.700 KG

2. INSERT:

To insert a new line in between the existing line, we can use the keyword INSERT.
For this, we can use table index.

Syntax: INSERT WA INTO IT INDEX n.

where n is the line number. The succeeding lines will be incremented by 1.

TYPES: BEGIN OF FS,


MATNR TYPE ZMAT-MATNR,
MBRSH TYPE ZMAT-MBRSH,
MTART TYPE ZMAT-MTART,
MAKTX TYPE ZMAT-MAKTX,
BRGEW TYPE ZMAT-BRGEW,
GEWEI TYPE ZMAT-GEWEI,
END OF FS.
DATA: IT TYPE TABLE OF FS INITIAL SIZE 0,
WA TYPE FS.

WA-MATNR = '100'.
WA-MBRSH = 'C'.
WA-MTART = 'FERT'.
WA-MAKTX = 'Copper Sulphate'.
WA-BRGEW = '250.700'.
WA-GEWEI = 'KG'.
APPEND WA TO IT.

WA-MATNR = '102'.
WA-MBRSH = 'C'.
WA-MTART = 'FERT'.
WA-MAKTX = 'Ammonium Phosphate'.
WA-BRGEW = '350.700'.
WA-GEWEI = 'KG'.
APPEND WA TO IT.

WA-MATNR = '101'.
WA-MBRSH = 'M'.
WA-MTART = 'FERT'.
WA-MAKTX = 'Castings'.
WA-BRGEW = '550.700'.
WA-GEWEI = 'KG'.
APPEND WA TO IT.

WA-MATNR = '100'.
WA-MBRSH = 'C'.
WA-MTART = 'FERT'.
WA-MAKTX = 'Copper Sulphate'.
WA-BRGEW = '350.700'.
WA-GEWEI = 'KG'.
APPEND WA TO IT.

WA-MATNR = '103'.
WA-MBRSH = 'M'.
WA-MTART = 'FERT'.
WA-MAKTX = 'Chassis'.
WA-BRGEW = '660.700'.
WA-GEWEI = 'KG'.
INSERT WA INTO IT INDEX 2.

LOOP AT IT INTO WA.


WRITE : / SY-TABIX,WA-MATNR,WA-MBRSH,WA-MTART,WA-MAKTX,WA-BRGEW,WA-
GEWEI.
ENDLOOP.

OUTPUT:

1 100 C FERT Copper Sulphate 250.700 KG

2 103 M FERT Chassis 660.700 KG

3 102 C FERT Ammonium Phosphate 350.700 KG

4 101 M FERT Castings 550.700 KG

5 100 C FERT Copper Sulphate 350.700 KG

3. COLLECT:

If there are no duplicate entries, the COLLECT statement will work like an APPEND
statement. If there are duplicate entries, no new rows will be appended. Instead, the system
will add the values of its numeric components to the corresponding values of existing rows
with the same key.

Syntax: COLLECT WA INTO IT .

TYPES: BEGIN OF FS,


MATNR TYPE ZMAT-MATNR,
MBRSH TYPE ZMAT-MBRSH,
MTART TYPE ZMAT-MTART,
MAKTX TYPE ZMAT-MAKTX,
BRGEW TYPE ZMAT-BRGEW,
GEWEI TYPE ZMAT-GEWEI,
END OF FS.
DATA: IT TYPE TABLE OF FS INITIAL SIZE 0,WA TYPE FS,
IT1 TYPE TABLE OF FS INITIAL SIZE 0,WA1 TYPE FS.

WA-MATNR = '100'.
WA-MBRSH = 'C'.
WA-MTART = 'FERT'.
WA-MAKTX = 'Copper Sulphate'.
WA-BRGEW = '250.700'.
WA-GEWEI = 'KG'.
APPEND WA TO IT.

WA-MATNR = '102'.
WA-MBRSH = 'C'.
WA-MTART = 'FERT'.
WA-MAKTX = 'Ammonium Phosphate'.
WA-BRGEW = '350.700'.
WA-GEWEI = 'KG'.
APPEND WA TO IT.

WA-MATNR = '101'.
WA-MBRSH = 'M'.
WA-MTART = 'FERT'.
WA-MAKTX = 'Castings'.
WA-BRGEW = '550.700'.
WA-GEWEI = 'KG'.
APPEND WA TO IT.

WA-MATNR = '100'.
WA-MBRSH = 'C'.
WA-MTART = 'FERT'.
WA-MAKTX = 'Copper Sulphate'.
WA-BRGEW = '350.700'.
WA-GEWEI = 'KG'.
APPEND WA TO IT.

WA-MATNR = '103'.
WA-MBRSH = 'M'.
WA-MTART = 'FERT'.
WA-MAKTX = 'Chassis'.
WA-BRGEW = '660.700'.
WA-GEWEI = 'KG'.
INSERT WA INTO IT INDEX 2.

LOOP AT IT INTO WA.


COLLECT WA INTO IT1.
WRITE : / SY-TABIX,WA-MATNR,WA-MBRSH,WA-MTART,WA-MAKTX,WA-BRGEW,WA-
GEWEI.
ENDLOOP.

SKIP 2.

LOOP AT IT1 INTO WA1.


WRITE : / SY-TABIX,WA1-MATNR,WA1-MBRSH,WA1-MTART,WA1-MAKTX,WA1-
BRGEW,WA1-GEWEI.
ENDLOOP.

OUTPUT:

1 100 C FERT Copper Sulphate 250.700 KG

2 103 M FERT Chassis 660.700 KG

3 102 C FERT Ammonium Phosphate 350.700 KG

4 101 M FERT Castings 550.700 KG

1 100 C FERT Copper Sulphate 350.700 KG


AFTER COLLECT STATEMENT:

1 100 C FERT Copper Sulphate 601.400 KG

2 103 M FERT Chassis 660.700 KG

3 102 C FERT Ammonium Phosphate 350.700 KG

4 101 M FERT Castings 550.700 KG

COPYING LINES FROM ONE STANDARD TABLE TO ANOTHER:

We can copy number of lines from one standard internal table to another. For this, we can
use the following keywords:

1. APPEND.
2. INSERT.
3. MOVE.

APPEND:

We can append number of lines from one internal table to another.

Syntax: APPEND LINES OF IT1 FROM L2 TO L5 TO IT2.

Now, the system will append from Lines L2 to L5 from the internal table to IT1 to IT2. Here,
the system will not overwrite the contents of the internal table IT2.

TYPES: BEGIN OF FS,


MATNR TYPE ZMAT-MATNR,
MBRSH TYPE ZMAT-MBRSH,
MTART TYPE ZMAT-MTART,
MAKTX TYPE ZMAT-MAKTX,
BRGEW TYPE ZMAT-BRGEW,
GEWEI TYPE ZMAT-GEWEI,
END OF FS.
DATA: IT1 TYPE TABLE OF FS INITIAL SIZE 0,WA1 TYPE FS,
IT2 TYPE TABLE OF FS INITIAL SIZE 0,WA2 TYPE FS.
WA1-MATNR = '100'.
WA1-MBRSH = 'C'.
WA1-MTART = 'FERT'.
WA1-MAKTX = 'Copper Sulphate'.
WA1-BRGEW = '250.700'.
WA1-GEWEI = 'KG'.
APPEND WA1 TO IT1.

WA1-MATNR = '102'.
WA1-MBRSH = 'C'.
WA1-MTART = 'FERT'.
WA1-MAKTX = 'Ammonium Phosphate'.
WA1-BRGEW = '350.700'.
WA1-GEWEI = 'KG'.
APPEND WA1 TO IT1.

WA1-MATNR = '101'.
WA1-MBRSH = 'M'.
WA1-MTART = 'FERT'.
WA1-MAKTX = 'Castings'.
WA1-BRGEW = '550.700'.
WA1-GEWEI = 'KG'.
APPEND WA1 TO IT1.

WA1-MATNR = '100'.
WA1-MBRSH = 'C'.
WA1-MTART = 'FERT'.
WA1-MAKTX = 'Copper Sulphate'.
WA1-BRGEW = '350.700'.
WA1-GEWEI = 'KG'.
APPEND WA1 TO IT1.

WA1-MATNR = '103'.
WA1-MBRSH = 'C'.
WA1-MTART = 'FERT'.
WA1-MAKTX = 'Ferrous Sulphate'.
WA1-BRGEW = '750.700'.
WA1-GEWEI = 'KG'.
APPEND WA1 TO IT1.

LOOP AT IT1 INTO WA1.


WRITE : / SY-TABIX,WA1-MATNR,WA1-MBRSH,WA1-MTART,WA1-MAKTX,WA1-
BRGEW,WA1-GEWEI.
ENDLOOP.

SKIP 2.

WA2-MATNR = '200'.
WA2-MBRSH = 'C'.
WA2-MTART = 'FERT'.
WA2-MAKTX = 'Sulphuric Acid'.
WA2-BRGEW = '100.000'.
WA2-GEWEI = 'KG'.
APPEND WA2 TO IT2.

WA2-MATNR = '204'.
WA2-MBRSH = 'C'.
WA2-MTART = 'FERT'.
WA2-MAKTX = 'Bauxite'.
WA2-BRGEW = '655.775'.
WA2-GEWEI = 'KG'.
APPEND WA2 TO IT2.

APPEND LINES OF IT1 FROM 2 TO 4 TO IT2.

LOOP AT IT2 INTO WA2.


WRITE : / SY-TABIX,WA2-MATNR,WA2-MBRSH,WA2-MTART,WA2-MAKTX,WA2-
BRGEW,WA2-GEWEI.
ENDLOOP.
OUTPUT:

1 100 C FERT Copper Sulphate 250.700 KG

2 102 C FERT Ammonium Phosphate 350.700 KG

3 101 M FERT Castings 550.700 KG

4 100 C FERT Copper Sulphate 350.700 KG

5 103 C FERT Ferrous Sulphate 750.700 KG

CONTENTS OF INTERNAL TABLE IT2:

1 200 C FERT Sulphuric Acid 100.000 KG

2 204 C FERT Bauxite 655.775 KG

3 102 C FERT Ammonium Phosphate 350.700 KG

4 101 M FERT Castings 550.700 KG

5 100 C FERT Copper Sulphate 350.700 KG

INSERT:

We can insert number of lines from one internal table to another.

Syntax: INSERT LINES OF IT1 FROM L2 TO L5 INTO IT2 INDEX n.

n is the Line Number.

Now, the system will insert from Lines L2 to L5 from the internal table to IT1 to IT2 from line
number n. Here, the system will not overwrite the contents of the internal table IT2.
TYPES: BEGIN OF FS,
MATNR TYPE ZMAT-MATNR,
MBRSH TYPE ZMAT-MBRSH,
MTART TYPE ZMAT-MTART,
MAKTX TYPE ZMAT-MAKTX,
BRGEW TYPE ZMAT-BRGEW,
GEWEI TYPE ZMAT-GEWEI,
END OF FS.
DATA: IT1 TYPE TABLE OF FS INITIAL SIZE 0,WA1 TYPE FS,
IT2 TYPE TABLE OF FS INITIAL SIZE 0,WA2 TYPE FS.

WA1-MATNR = '100'.
WA1-MBRSH = 'C'.
WA1-MTART = 'FERT'.
WA1-MAKTX = 'Copper Sulphate'.
WA1-BRGEW = '250.700'.
WA1-GEWEI = 'KG'.
APPEND WA1 TO IT1.

WA1-MATNR = '102'.
WA1-MBRSH = 'C'.
WA1-MTART = 'FERT'.
WA1-MAKTX = 'Ammonium Phosphate'.
WA1-BRGEW = '350.700'.
WA1-GEWEI = 'KG'.
APPEND WA1 TO IT1.

WA1-MATNR = '101'.
WA1-MBRSH = 'M'.
WA1-MTART = 'FERT'.
WA1-MAKTX = 'Castings'.
WA1-BRGEW = '550.700'.
WA1-GEWEI = 'KG'.
APPEND WA1 TO IT1.

WA1-MATNR = '100'.
WA1-MBRSH = 'C'.
WA1-MTART = 'FERT'.
WA1-MAKTX = 'Copper Sulphate'.
WA1-BRGEW = '350.700'.
WA1-GEWEI = 'KG'.
APPEND WA1 TO IT1.

WA1-MATNR = '103'.
WA1-MBRSH = 'C'.
WA1-MTART = 'FERT'.
WA1-MAKTX = 'Ferrous Sulphate'.
WA1-BRGEW = '750.700'.
WA1-GEWEI = 'KG'.
APPEND WA1 TO IT1.

LOOP AT IT1 INTO WA1.


WRITE : / SY-TABIX,WA1-MATNR,WA1-MBRSH,WA1-MTART,WA1-MAKTX,WA1-
BRGEW,WA1-GEWEI.
ENDLOOP.

SKIP 2.

WA2-MATNR = '200'.
WA2-MBRSH = 'C'.
WA2-MTART = 'FERT'.
WA2-MAKTX = 'Sulphuric Acid'.
WA2-BRGEW = '100.000'.
WA2-GEWEI = 'KG'.
APPEND WA2 TO IT2.

WA2-MATNR = '204'.
WA2-MBRSH = 'C'.
WA2-MTART = 'FERT'.
WA2-MAKTX = 'Bauxite'.
WA2-BRGEW = '655.775'.
WA2-GEWEI = 'KG'.
APPEND WA2 TO IT2.
INSERT LINES OF IT1 FROM 2 TO 4 INTO IT2 INDEX 1.

LOOP AT IT2 INTO WA2.


WRITE : / SY-TABIX,WA2-MATNR,WA2-MBRSH,WA2-MTART,WA2-MAKTX,WA2-
BRGEW,WA2-GEWEI.
ENDLOOP.

OUTPUT:

1 100 C FERT Copper Sulphate 250.700 KG

2 102 C FERT Ammonium Phosphate 350.700 KG

3 101 M FERT Castings 550.700 KG

4 100 C FERT Copper Sulphate 350.700 KG

5 103 C FERT Ferrous Sulphate 750.700 KG

CONTENTS OF INTERNAL TABLE IT2:

1 102 C FERT Ammonium Phosphate 350.700 KG

2 101 M FERT Castings 550.700 KG

3 100 C FERT Copper Sulphate 350.700 KG

4 200 C FERT Sulphuric Acid 100.000 KG

5 204 C FERT Bauxite 655.775 KG

MOVE:

We can copy the number of lines from one internal table to another. Here, if there are
contents in the second internal table, these contents will be overwritten.

TYPES: BEGIN OF FS,


MATNR TYPE ZMAT-MATNR,
MBRSH TYPE ZMAT-MBRSH,
MTART TYPE ZMAT-MTART,
MAKTX TYPE ZMAT-MAKTX,
BRGEW TYPE ZMAT-BRGEW,
GEWEI TYPE ZMAT-GEWEI,
END OF FS.
DATA: IT1 TYPE TABLE OF FS INITIAL SIZE 0,WA1 TYPE FS,
IT2 TYPE TABLE OF FS INITIAL SIZE 0,WA2 TYPE FS.

WA1-MATNR = '100'.
WA1-MBRSH = 'C'.
WA1-MTART = 'FERT'.
WA1-MAKTX = 'Copper Sulphate'.
WA1-BRGEW = '250.700'.
WA1-GEWEI = 'KG'.
APPEND WA1 TO IT1.

WA1-MATNR = '102'.
WA1-MBRSH = 'C'.
WA1-MTART = 'FERT'.
WA1-MAKTX = 'Ammonium Phosphate'.
WA1-BRGEW = '350.700'.
WA1-GEWEI = 'KG'.
APPEND WA1 TO IT1.

WA1-MATNR = '101'.
WA1-MBRSH = 'M'.
WA1-MTART = 'FERT'.
WA1-MAKTX = 'Castings'.
WA1-BRGEW = '550.700'.
WA1-GEWEI = 'KG'.
APPEND WA1 TO IT1.

WA1-MATNR = '100'.
WA1-MBRSH = 'C'.
WA1-MTART = 'FERT'.
WA1-MAKTX = 'Copper Sulphate'.
WA1-BRGEW = '350.700'.
WA1-GEWEI = 'KG'.
APPEND WA1 TO IT1.

WA1-MATNR = '103'.
WA1-MBRSH = 'C'.
WA1-MTART = 'FERT'.
WA1-MAKTX = 'Ferrous Sulphate'.
WA1-BRGEW = '750.700'.
WA1-GEWEI = 'KG'.
APPEND WA1 TO IT1.

LOOP AT IT1 INTO WA1.


WRITE : / SY-TABIX,WA1-MATNR,WA1-MBRSH,WA1-MTART,WA1-MAKTX,WA1-
BRGEW,WA1-GEWEI.
ENDLOOP.

SKIP 2.

WA2-MATNR = '200'.
WA2-MBRSH = 'C'.
WA2-MTART = 'FERT'.
WA2-MAKTX = 'Sulphuric Acid'.
WA2-BRGEW = '100.000'.
WA2-GEWEI = 'KG'.
APPEND WA2 TO IT2.

WA2-MATNR = '204'.
WA2-MBRSH = 'C'.
WA2-MTART = 'FERT'.
WA2-MAKTX = 'Bauxite'.
WA2-BRGEW = '655.775'.
WA2-GEWEI = 'KG'.
APPEND WA2 TO IT2.

MOVE IT1 TO IT2.

LOOP AT IT2 INTO WA2.


WRITE : / SY-TABIX,WA2-MATNR,WA2-MBRSH,WA2-MTART,WA2-MAKTX,WA2-
BRGEW,WA2-GEWEI.
ENDLOOP.
OUTPUT:

1 100 C FERT Copper Sulphate 250.700 KG

2 102 C FERT Ammonium Phosphate 350.700 KG

3 101 M FERT Castings 550.700 KG

4 100 C FERT Copper Sulphate 350.700 KG

5 103 C FERT Ferrous Sulphate 750.700 KG

CONTENTS OF INTERNAL TABLE IT2:

1 100 C FERT Copper Sulphate 250.700 KG

2 102 C FERT Ammonium Phosphate 350.700 KG

3 101 M FERT Castings 550.700 KG

4 100 C FERT Copper Sulphate 350.700 KG

5 103 C FERT Ferrous Sulphate 750.700 KG

SORTED TABLE:

An internal table that is sorted with respect to a field.

WITH UNIQUE KEY:

Here, the system will sort with respect to a particular field and duplicate entries will not be
displayed.

TYPES: BEGIN OF FS,


MATNR TYPE ZMAT-MATNR,
MBRSH TYPE ZMAT-MBRSH,
MTART TYPE ZMAT-MTART,
MAKTX TYPE ZMAT-MAKTX,
BRGEW TYPE ZMAT-BRGEW,
GEWEI TYPE ZMAT-GEWEI,
END OF FS.
DATA: IT1 TYPE SORTED TABLE OF FS WITH UNIQUE KEY MATNR INITIAL SIZE 0,WA1
TYPE FS.

WA1-MATNR = '100'.
WA1-MBRSH = 'C'.
WA1-MTART = 'FERT'.
WA1-MAKTX = 'Copper Sulphate'.
WA1-BRGEW = '250.700'.
WA1-GEWEI = 'KG'.
INSERT WA1 INTO TABLE IT1.

WA1-MATNR = '102'.
WA1-MBRSH = 'C'.
WA1-MTART = 'FERT'.
WA1-MAKTX = 'Ammonium Phosphate'.
WA1-BRGEW = '350.700'.
WA1-GEWEI = 'KG'.
INSERT WA1 INTO TABLE IT1.

WA1-MATNR = '101'.
WA1-MBRSH = 'M'.
WA1-MTART = 'FERT'.
WA1-MAKTX = 'Castings'.
WA1-BRGEW = '550.700'.
WA1-GEWEI = 'KG'.
INSERT WA1 INTO TABLE IT1.

WA1-MATNR = '100'.
WA1-MBRSH = 'C'.
WA1-MTART = 'FERT'.
WA1-MAKTX = 'Copper Sulphate'.
WA1-BRGEW = '350.700'.
WA1-GEWEI = 'KG'.
INSERT WA1 INTO TABLE IT1.

WA1-MATNR = '103'.
WA1-MBRSH = 'C'.
WA1-MTART = 'FERT'.
WA1-MAKTX = 'Ferrous Sulphate'.
WA1-BRGEW = '750.700'.
WA1-GEWEI = 'KG'.
INSERT WA1 INTO TABLE IT1.

LOOP AT IT1 INTO WA1.


WRITE : / SY-TABIX,WA1-MATNR,WA1-MBRSH,WA1-MTART,WA1-MAKTX,WA1-
BRGEW,WA1-GEWEI.
ENDLOOP.

OUTPUT:

1 100 C FERT Copper Sulphate 250.700 KG

2 101 M FERT Castings 550.700 KG

3 102 C FERT Ammonium Phosphate 350.700 KG

4 103 C FERT Ferrous Sulphate 750.700 KG

WITH NON-UNIQUE KEY:

Here, the system will sort with respect to a particular field and duplicate entries will be
displayed.

TYPES: BEGIN OF FS,


MATNR TYPE ZMAT-MATNR,
MBRSH TYPE ZMAT-MBRSH,
MTART TYPE ZMAT-MTART,
MAKTX TYPE ZMAT-MAKTX,
BRGEW TYPE ZMAT-BRGEW,
GEWEI TYPE ZMAT-GEWEI,
END OF FS.
DATA: IT1 TYPE SORTED TABLE OF FS WITH NON-
UNIQUE KEY MATNR INITIAL SIZE 0,WA1 TYPE FS.

WA1-MATNR = '100'.
WA1-MBRSH = 'C'.
WA1-MTART = 'FERT'.
WA1-MAKTX = 'Copper Sulphate'.
WA1-BRGEW = '250.700'.
WA1-GEWEI = 'KG'.
INSERT WA1 INTO TABLE IT1.

WA1-MATNR = '102'.
WA1-MBRSH = 'C'.
WA1-MTART = 'FERT'.
WA1-MAKTX = 'Ammonium Phosphate'.
WA1-BRGEW = '350.700'.
WA1-GEWEI = 'KG'.
INSERT WA1 INTO TABLE IT1.

WA1-MATNR = '101'.
WA1-MBRSH = 'M'.
WA1-MTART = 'FERT'.
WA1-MAKTX = 'Castings'.
WA1-BRGEW = '550.700'.
WA1-GEWEI = 'KG'.
INSERT WA1 INTO TABLE IT1.

WA1-MATNR = '100'.
WA1-MBRSH = 'C'.
WA1-MTART = 'FERT'.
WA1-MAKTX = 'Copper Sulphate'.
WA1-BRGEW = '350.700'.
WA1-GEWEI = 'KG'.
INSERT WA1 INTO TABLE IT1.

WA1-MATNR = '103'.
WA1-MBRSH = 'C'.
WA1-MTART = 'FERT'.
WA1-MAKTX = 'Ferrous Sulphate'.
WA1-BRGEW = '750.700'.
WA1-GEWEI = 'KG'.
INSERT WA1 INTO TABLE IT1.
LOOP AT IT1 INTO WA1.
WRITE : / SY-TABIX,WA1-MATNR,WA1-MBRSH,WA1-MTART,WA1-MAKTX,WA1-
BRGEW,WA1-GEWEI.
ENDLOOP.

OUTPUT:

1 100 C FERT Copper Sulphate 350.700 KG

2 100 C FERT Copper Sulphate 250.700 KG

3 101 M FERT Castings 550.700 KG

4 102 C FERT Ammonium Phosphate 350.700 KG

5 103 C FERT Ferrous Sulphate 750.700 KG

HASHED TABLE:

Here, the system will store the data with respect to the table key. The system will not display
duplicate entries.

TYPES: BEGIN OF FS,


MATNR TYPE ZMAT-MATNR,
MBRSH TYPE ZMAT-MBRSH,
MTART TYPE ZMAT-MTART,
MAKTX TYPE ZMAT-MAKTX,
BRGEW TYPE ZMAT-BRGEW,
GEWEI TYPE ZMAT-GEWEI,
END OF FS.
DATA: IT1 TYPE HASHED TABLE OF FS WITH UNIQUE KEY MATNR INITIAL SIZE 0,WA1
TYPE FS.

WA1-MATNR = '100'.
WA1-MBRSH = 'C'.
WA1-MTART = 'FERT'.
WA1-MAKTX = 'Copper Sulphate'.
WA1-BRGEW = '250.700'.
WA1-GEWEI = 'KG'.
INSERT WA1 INTO TABLE IT1.
WA1-MATNR = '102'.
WA1-MBRSH = 'C'.
WA1-MTART = 'FERT'.
WA1-MAKTX = 'Ammonium Phosphate'.
WA1-BRGEW = '350.700'.
WA1-GEWEI = 'KG'.
INSERT WA1 INTO TABLE IT1.

WA1-MATNR = '101'.
WA1-MBRSH = 'M'.
WA1-MTART = 'FERT'.
WA1-MAKTX = 'Castings'.
WA1-BRGEW = '550.700'.
WA1-GEWEI = 'KG'.
INSERT WA1 INTO TABLE IT1.

WA1-MATNR = '100'.
WA1-MBRSH = 'C'.
WA1-MTART = 'FERT'.
WA1-MAKTX = 'Copper Sulphate'.
WA1-BRGEW = '350.700'.
WA1-GEWEI = 'KG'.
INSERT WA1 INTO TABLE IT1.

WA1-MATNR = '103'.
WA1-MBRSH = 'C'.
WA1-MTART = 'FERT'.
WA1-MAKTX = 'Ferrous Sulphate'.
WA1-BRGEW = '750.700'.
WA1-GEWEI = 'KG'.
INSERT WA1 INTO TABLE IT1.

LOOP AT IT1 INTO WA1.


WRITE : / SY-TABIX,WA1-MATNR,WA1-MBRSH,WA1-MTART,WA1-MAKTX,WA1-
BRGEW,WA1-GEWEI.
ENDLOOP.
OUTPUT:

100 C FERT Copper Sulphate 250.700 KG

102 C FERT Ammonium Phosphate 350.700 KG

101 M FERT Castings 550.700 KG

103 C FERT Ferrous Sulphate 750.700 KG

READING THE LINES(S) OF INTERNAL TABLE:

We can either read number of lines of an internal table or we can read a single line.

READING NUMBER OF LINES:

To read number of lines, we can us the following keywords:

1. LOOP AT IT INTO WA.


2. LOOP AT IT INTO WA WHERE <CONDITION>.
3. LOOP AT IT FROM L2 TO L5 INTO WA.
4. LOOP AT IT FROM L2 TO L5 INTO WA WHERE <CONDITION>.

LOOP AT IT INTO WA:

TYPES: BEGIN OF FS,


MATNR TYPE ZMAT-MATNR,
MBRSH TYPE ZMAT-MBRSH,
MTART TYPE ZMAT-MTART,
MAKTX TYPE ZMAT-MAKTX,
BRGEW TYPE ZMAT-BRGEW,
GEWEI TYPE ZMAT-GEWEI,
END OF FS.
DATA: IT TYPE TABLE OF FS INITIAL SIZE 0,
WA TYPE FS.

WA-MATNR = '100'.
WA-MBRSH = 'C'.
WA-MTART = 'FERT'.
WA-MAKTX = 'Copper Sulphate'.
WA-BRGEW = '250.700'.
WA-GEWEI = 'KG'.
APPEND WA TO IT.

WA-MATNR = '102'.
WA-MBRSH = 'C'.
WA-MTART = 'FERT'.
WA-MAKTX = 'Ammonium Phosphate'.
WA-BRGEW = '350.700'.
WA-GEWEI = 'KG'.
APPEND WA TO IT.

WA-MATNR = '101'.
WA-MBRSH = 'M'.
WA-MTART = 'FERT'.
WA-MAKTX = 'Castings'.
WA-BRGEW = '550.700'.
WA-GEWEI = 'KG'.
APPEND WA TO IT.

WA-MATNR = '100'.
WA-MBRSH = 'C'.
WA-MTART = 'FERT'.
WA-MAKTX = 'Copper Sulphate'.
WA-BRGEW = '350.700'.
WA-GEWEI = 'KG'.
APPEND WA TO IT.

LOOP AT IT INTO WA.


WRITE : / SY-TABIX,WA-MATNR,WA-MBRSH,WA-MTART,WA-MAKTX,WA-BRGEW,WA-
GEWEI.
ENDLOOP.

OUTPUT:

1 100 C FERT Copper Sulphate 250.700 KG

2 102 C FERT Ammonium Phosphate 350.700 KG

3 101 M FERT Castings 550.700 KG


4 100 C FERT Copper Sulphate 350.700 KG

LOOP AT IT INTO WA WHERE <CONDITION>:

Here the system will read the number of lines that satisfy the condition(s).

TYPES: BEGIN OF FS,


MATNR TYPE ZMAT-MATNR,
MBRSH TYPE ZMAT-MBRSH,
MTART TYPE ZMAT-MTART,
MAKTX TYPE ZMAT-MAKTX,
BRGEW TYPE ZMAT-BRGEW,
GEWEI TYPE ZMAT-GEWEI,
END OF FS.
DATA: IT TYPE TABLE OF FS INITIAL SIZE 0,
WA TYPE FS.

WA-MATNR = '100'.
WA-MBRSH = 'C'.
WA-MTART = 'FERT'.
WA-MAKTX = 'Copper Sulphate'.
WA-BRGEW = '250.700'.
WA-GEWEI = 'KG'.
APPEND WA TO IT.

WA-MATNR = '102'.
WA-MBRSH = 'C'.
WA-MTART = 'FERT'.
WA-MAKTX = 'Ammonium Phosphate'.
WA-BRGEW = '350.700'.
WA-GEWEI = 'KG'.
APPEND WA TO IT.

WA-MATNR = '101'.
WA-MBRSH = 'M'.
WA-MTART = 'FERT'.
WA-MAKTX = 'Castings'.
WA-BRGEW = '550.700'.
WA-GEWEI = 'KG'.
APPEND WA TO IT.

WA-MATNR = '100'.
WA-MBRSH = 'C'.
WA-MTART = 'FERT'.
WA-MAKTX = 'Copper Sulphate'.
WA-BRGEW = '350.700'.
WA-GEWEI = 'KG'.
APPEND WA TO IT.

LOOP AT IT INTO WA WHERE BRGEW > '300.000'.


WRITE : / SY-TABIX,WA-MATNR,WA-MBRSH,WA-MTART,WA-MAKTX,WA-BRGEW,WA-
GEWEI.
ENDLOOP.

OUTPUT:

2 102 C FERT Ammonium Phosphate 350.700 KG

3 101 M FERT Castings 550.700 KG

4 100 C FERT Copper Sulphate 350.700 KG

LOOP AT IT FROM L2 TO L5:

Here the system will read the number of lines between L2 and L5.

TYPES: BEGIN OF FS,


MATNR TYPE ZMAT-MATNR,
MBRSH TYPE ZMAT-MBRSH,
MTART TYPE ZMAT-MTART,
MAKTX TYPE ZMAT-MAKTX,
BRGEW TYPE ZMAT-BRGEW,
GEWEI TYPE ZMAT-GEWEI,
END OF FS.
DATA: IT TYPE TABLE OF FS INITIAL SIZE 0,
WA TYPE FS.
WA-MATNR = '100'.
WA-MBRSH = 'C'.
WA-MTART = 'FERT'.
WA-MAKTX = 'Copper Sulphate'.
WA-BRGEW = '250.700'.
WA-GEWEI = 'KG'.
APPEND WA TO IT.

WA-MATNR = '102'.
WA-MBRSH = 'C'.
WA-MTART = 'FERT'.
WA-MAKTX = 'Ammonium Phosphate'.
WA-BRGEW = '350.700'.
WA-GEWEI = 'KG'.
APPEND WA TO IT.

WA-MATNR = '101'.
WA-MBRSH = 'M'.
WA-MTART = 'FERT'.
WA-MAKTX = 'Castings'.
WA-BRGEW = '550.700'.
WA-GEWEI = 'KG'.
APPEND WA TO IT.

WA-MATNR = '100'.
WA-MBRSH = 'C'.
WA-MTART = 'FERT'.
WA-MAKTX = 'Copper Sulphate'.
WA-BRGEW = '350.700'.
WA-GEWEI = 'KG'.
APPEND WA TO IT.

WA-MATNR = '1003'.
WA-MBRSH = 'C'.
WA-MTART = 'FERT'.
WA-MAKTX = 'Citric Acid'.
WA-BRGEW = '124.700'.
WA-GEWEI = 'KG'.
APPEND WA TO IT.

LOOP AT IT FROM 2 TO 4 INTO WA.


WRITE : / SY-TABIX,WA-MATNR,WA-MBRSH,WA-MTART,WA-MAKTX,WA-BRGEW,WA-
GEWEI.
ENDLOOP.

OUTPUT:

2 102 C FERT Ammonium Phosphate 350.700 KG

3 101 M FERT Castings 550.700 KG

4 100 C FERT Copper Sulphate 350.700 KG

LOOP AT IT FROM L2 TO L5 INTO WA WHERE <CONDITION>:

Here the system will read the number of lines between L2 and L5 that satisfy the
condition(s).

TYPES: BEGIN OF FS,


MATNR TYPE ZMAT-MATNR,
MBRSH TYPE ZMAT-MBRSH,
MTART TYPE ZMAT-MTART,
MAKTX TYPE ZMAT-MAKTX,
BRGEW TYPE ZMAT-BRGEW,
GEWEI TYPE ZMAT-GEWEI,
END OF FS.
DATA: IT TYPE TABLE OF FS INITIAL SIZE 0,
WA TYPE FS.

WA-MATNR = '100'.
WA-MBRSH = 'C'.
WA-MTART = 'FERT'.
WA-MAKTX = 'Copper Sulphate'.
WA-BRGEW = '250.700'.
WA-GEWEI = 'KG'.
APPEND WA TO IT.
WA-MATNR = '102'.
WA-MBRSH = 'C'.
WA-MTART = 'FERT'.
WA-MAKTX = 'Ammonium Phosphate'.
WA-BRGEW = '350.700'.
WA-GEWEI = 'KG'.
APPEND WA TO IT.

WA-MATNR = '101'.
WA-MBRSH = 'M'.
WA-MTART = 'FERT'.
WA-MAKTX = 'Castings'.
WA-BRGEW = '550.700'.
WA-GEWEI = 'KG'.
APPEND WA TO IT.

WA-MATNR = '100'.
WA-MBRSH = 'C'.
WA-MTART = 'FERT'.
WA-MAKTX = 'Copper Sulphate'.
WA-BRGEW = '350.700'.
WA-GEWEI = 'KG'.
APPEND WA TO IT.

WA-MATNR = '1003'.
WA-MBRSH = 'C'.
WA-MTART = 'FERT'.
WA-MAKTX = 'Citric Acid'.
WA-BRGEW = '124.700'.
WA-GEWEI = 'KG'.
APPEND WA TO IT.

LOOP AT IT FROM 2 TO 4 INTO WA WHERE BRGEW = '350.700'.


WRITE : / SY-TABIX,WA-MATNR,WA-MBRSH,WA-MTART,WA-MAKTX,WA-BRGEW,WA-
GEWEI.
ENDLOOP.
OUTPUT:

2 102 C FERT Ammonium Phosphate 350.700 KG

4 100 C FERT Copper Sulphate 350.700 KG

READING A SINGLE LINE:

We can read a single line of an internal table by:

1. Table Index.
2. Table Key. ( Sorted Table ).

TABLE INDEX:

Here the system will read the line number of the internal table specified in the INDEX.

Syntax: READ TABLE IT INTO WA INDEX n.

TYPES: BEGIN OF FS,


MATNR TYPE ZMAT-MATNR,
MBRSH TYPE ZMAT-MBRSH,
MTART TYPE ZMAT-MTART,
MAKTX TYPE ZMAT-MAKTX,
BRGEW TYPE ZMAT-BRGEW,
GEWEI TYPE ZMAT-GEWEI,
END OF FS.
DATA: IT TYPE TABLE OF FS INITIAL SIZE 0,
WA TYPE FS.

WA-MATNR = '100'.
WA-MBRSH = 'C'.
WA-MTART = 'FERT'.
WA-MAKTX = 'Copper Sulphate'.
WA-BRGEW = '250.700'.
WA-GEWEI = 'KG'.
APPEND WA TO IT.

WA-MATNR = '102'.
WA-MBRSH = 'C'.
WA-MTART = 'FERT'.
WA-MAKTX = 'Ammonium Phosphate'.
WA-BRGEW = '350.700'.
WA-GEWEI = 'KG'.
APPEND WA TO IT.

WA-MATNR = '101'.
WA-MBRSH = 'M'.
WA-MTART = 'FERT'.
WA-MAKTX = 'Castings'.
WA-BRGEW = '550.700'.
WA-GEWEI = 'KG'.
APPEND WA TO IT.

WA-MATNR = '100'.
WA-MBRSH = 'C'.
WA-MTART = 'FERT'.
WA-MAKTX = 'Copper Sulphate'.
WA-BRGEW = '350.700'.
WA-GEWEI = 'KG'.
APPEND WA TO IT.

WA-MATNR = '103'.
WA-MBRSH = 'C'.
WA-MTART = 'FERT'.
WA-MAKTX = 'Citric Acid'.
WA-BRGEW = '124.700'.
WA-GEWEI = 'KG'.
APPEND WA TO IT.

LOOP AT IT INTO WA.


WRITE : / SY-TABIX,WA-MATNR,WA-MBRSH,WA-MTART,WA-MAKTX,WA-BRGEW,
WA-GEWEI.
ENDLOOP.

SKIP 2.
READ TABLE IT INTO WA INDEX 3.
WRITE : / SY-TABIX,WA-MATNR,WA-MBRSH,WA-MTART,WA-MAKTX,WA-BRGEW,

WA-GEWEI.

OUTPUT:

1 100 C FERT Copper Sulphate 250.700 KG

2 102 C FERT Ammonium Phosphate 350.700 KG

3 101 M FERT Castings 550.700 KG

4 100 C FERT Copper Sulphate 350.700 KG

5 103 C FERT Citric Acid 124.700 KG

THE SYSTEM READS THE LINE NUMBER 3:

3 101 M FERT Castings 550.700 KG

WITH KEY:

Here, the system will read the first line that matches the value specified in the WITH KEY
option. If the value of more than one field is specified, then the system will read the first line
that has the value of the fields. In this case, we can use the keyword BINARY SEARCH
by which we can access the line quickly.

WITH KEY (1 FIELD):

TYPES: BEGIN OF FS,


MATNR TYPE ZMAT-MATNR,
MBRSH TYPE ZMAT-MBRSH,
MTART TYPE ZMAT-MTART,
MAKTX TYPE ZMAT-MAKTX,
BRGEW TYPE ZMAT-BRGEW,
GEWEI TYPE ZMAT-GEWEI,
END OF FS.
DATA: IT TYPE TABLE OF FS INITIAL SIZE 0,
WA TYPE FS.
WA-MATNR = '100'.
WA-MBRSH = 'C'.
WA-MTART = 'FERT'.
WA-MAKTX = 'Copper Sulphate'.
WA-BRGEW = '250.700'.
WA-GEWEI = 'KG'.
APPEND WA TO IT.

WA-MATNR = '102'.
WA-MBRSH = 'C'.
WA-MTART = 'FERT'.
WA-MAKTX = 'Ammonium Phosphate'.
WA-BRGEW = '350.700'.
WA-GEWEI = 'KG'.
APPEND WA TO IT.

WA-MATNR = '101'.
WA-MBRSH = 'M'.
WA-MTART = 'FERT'.
WA-MAKTX = 'Castings'.
WA-BRGEW = '550.700'.
WA-GEWEI = 'KG'.
APPEND WA TO IT.

WA-MATNR = '100'.
WA-MBRSH = 'C'.
WA-MTART = 'FERT'.
WA-MAKTX = 'Copper Sulphate'.
WA-BRGEW = '350.700'.
WA-GEWEI = 'KG'.
APPEND WA TO IT.

WA-MATNR = '103'.
WA-MBRSH = 'C'.
WA-MTART = 'FERT'.
WA-MAKTX = 'Citric Acid'.
WA-BRGEW = '124.700'.
WA-GEWEI = 'KG'.
APPEND WA TO IT.

LOOP AT IT INTO WA.


WRITE : / SY-TABIX,WA-MATNR,WA-MBRSH,WA-MTART,WA-MAKTX,WA-BRGEW,WA-GEWEI.
ENDLOOP.

SKIP 2.

READ TABLE IT INTO WA WITH KEY MATNR = '100'.


WRITE : / SY-TABIX,WA-MATNR,WA-MBRSH,WA-MTART,WA-MAKTX,WA-BRGEW,WA-GEWEI.

OUTPUT:

1 100 C FERT Copper Sulphate 250.700 KG

2 102 C FERT Ammonium Phosphate 350.700 KG

3 101 M FERT Castings 550.700 KG

4 100 C FERT Copper Sulphate 350.700 KG

5 103 C FERT Citric Acid 124.700 KG

THE SYSTEM READS THE LINE NUMBER 1:

1 100 C FERT Copper Sulphate 250.700 KG

WITH KEY( MORE THAN 1 FIELD):

TYPES: BEGIN OF FS,


MATNR TYPE ZMAT-MATNR,
MBRSH TYPE ZMAT-MBRSH,
MTART TYPE ZMAT-MTART,
MAKTX TYPE ZMAT-MAKTX,
BRGEW TYPE ZMAT-BRGEW,
GEWEI TYPE ZMAT-GEWEI,
END OF FS.
DATA: IT TYPE TABLE OF FS INITIAL SIZE 0,
WA TYPE FS.
WA-MATNR = '100'.
WA-MBRSH = 'C'.
WA-MTART = 'FERT'.
WA-MAKTX = 'Copper Sulphate'.
WA-BRGEW = '450.700'.
WA-GEWEI = 'KG'.
APPEND WA TO IT.

WA-MATNR = '102'.
WA-MBRSH = 'C'.
WA-MTART = 'FERT'.
WA-MAKTX = 'Ammonium Phosphate'.
WA-BRGEW = '350.700'.
WA-GEWEI = 'KG'.
APPEND WA TO IT.

WA-MATNR = '101'.
WA-MBRSH = 'M'.
WA-MTART = 'FERT'.
WA-MAKTX = 'Castings'.
WA-BRGEW = '550.700'.
WA-GEWEI = 'KG'.
APPEND WA TO IT.

WA-MATNR = '100'.
WA-MBRSH = 'C'.
WA-MTART = 'FERT'.
WA-MAKTX = 'Copper Sulphate'.
WA-BRGEW = '350.700'.
WA-GEWEI = 'KG'.
APPEND WA TO IT.

WA-MATNR = '103'.
WA-MBRSH = 'C'.
WA-MTART = 'FERT'.
WA-MAKTX = 'Citric Acid'.
WA-BRGEW = '124.700'.
WA-GEWEI = 'KG'.
APPEND WA TO IT.

LOOP AT IT INTO WA.


WRITE : / SY-TABIX,WA-MATNR,WA-MBRSH,WA-MTART,WA-MAKTX,WA-BRGEW,WA-GEWEI.
ENDLOOP.

SKIP 2.

READ TABLE IT INTO WA WITH KEY MATNR = '100' BRGEW = '450.700' BINARY SEARCH.
WRITE : / SY-TABIX,WA-MATNR,WA-MBRSH,WA-MTART,WA-MAKTX,WA-BRGEW,WA-GEWEI.

OUTPUT:

1 100 C FERT Copper Sulphate 450.700 KG

2 102 C FERT Ammonium Phosphate 350.700 KG

3 101 M FERT Castings 550.700 KG

4 100 C FERT Copper Sulphate 350.700 KG

5 103 C FERT Citric Acid 124.700 KG

THE SYSTEM READS THE LINE NUMBER 1:

1 100 C FERT Copper Sulphate 250.700 KG

WITH TABLE KEY:

This option can be used only in the case of SORTED TABLE. Here, the system will read the
first line with respect to the field by which it is sorted. It cannot read with any other fields.

TYPES: BEGIN OF FS,


MATNR TYPE ZMAT-MATNR,
MBRSH TYPE ZMAT-MBRSH,
MTART TYPE ZMAT-MTART,
MAKTX TYPE ZMAT-MAKTX,
BRGEW TYPE ZMAT-BRGEW,
GEWEI TYPE ZMAT-GEWEI,
END OF FS.
DATA: IT1 TYPE SORTED TABLE OF FS WITH NON-
UNIQUE KEY MATNR INITIAL SIZE 0,WA1 TYPE FS.

WA1-MATNR = '100'.
WA1-MBRSH = 'C'.
WA1-MTART = 'FERT'.
WA1-MAKTX = 'Copper Sulphate'.
WA1-BRGEW = '250.700'.
WA1-GEWEI = 'KG'.
INSERT WA1 INTO TABLE IT1.

WA1-MATNR = '102'.
WA1-MBRSH = 'C'.
WA1-MTART = 'FERT'.
WA1-MAKTX = 'Ammonium Phosphate'.
WA1-BRGEW = '350.700'.
WA1-GEWEI = 'KG'.
INSERT WA1 INTO TABLE IT1.

WA1-MATNR = '101'.
WA1-MBRSH = 'M'.
WA1-MTART = 'FERT'.
WA1-MAKTX = 'Castings'.
WA1-BRGEW = '550.700'.
WA1-GEWEI = 'KG'.
INSERT WA1 INTO TABLE IT1.

WA1-MATNR = '100'.
WA1-MBRSH = 'C'.
WA1-MTART = 'FERT'.
WA1-MAKTX = 'Copper Sulphate'.
WA1-BRGEW = '350.700'.
WA1-GEWEI = 'KG'.
INSERT WA1 INTO TABLE IT1.

WA1-MATNR = '103'.
WA1-MBRSH = 'C'.
WA1-MTART = 'FERT'.
WA1-MAKTX = 'Ferrous Sulphate'.
WA1-BRGEW = '750.700'.
WA1-GEWEI = 'KG'.
INSERT WA1 INTO TABLE IT1.

LOOP AT IT1 INTO WA1.


WRITE : / SY-TABIX,WA1-MATNR,WA1-MBRSH,WA1-MTART,WA1-MAKTX,WA1-BRGEW,WA1-
GEWEI.
ENDLOOP.

SKIP 2.

READ TABLE IT1 INTO WA1 WITH TABLE KEY MATNR = '101'.
WRITE : / SY-TABIX,WA1-MATNR,WA1-MBRSH,WA1-MTART,WA1-MAKTX,WA1-BRGEW,WA1-
GEWEI.

OUTPUT:

1 100 C FERT Copper Sulphate 350.700 KG

2 100 C FERT Copper Sulphate 250.700 KG

3 101 M FERT Castings 550.700 KG

4 102 C FERT Ammonium Phosphate 350.700 KG

5 103 C FERT Ferrous Sulphate 750.700 KG

THE SYSTEM READS THE LINE NUMBER WHICH HAS THE MATERIAL NUMBER 101:

3 101 M FERT Castings 550.700 KG

MODIFYING THE LINE(S) OF INTERNAL TABLE:

We can modify either a single line or number of lines.


MODIFYING A SINGLE LINE:

To modify a single line, we have to:

1. Read the line first using either INDEX or WITH KEY.


2. Specify the modified value.
3. Use the Modify command. Syntax: MODIFY IT FROM WA INDEX n.

TYPES: BEGIN OF FS,


MATNR TYPE ZMAT-MATNR,
MBRSH TYPE ZMAT-MBRSH,
MTART TYPE ZMAT-MTART,
MAKTX TYPE ZMAT-MAKTX,
BRGEW TYPE ZMAT-BRGEW,
GEWEI TYPE ZMAT-GEWEI,
END OF FS.
DATA: IT TYPE TABLE OF FS INITIAL SIZE 0,
WA TYPE FS.

WA-MATNR = '100'.
WA-MBRSH = 'C'.
WA-MTART = 'FERT'.
WA-MAKTX = 'Copper Sulphate'.
WA-BRGEW = '450.700'.
WA-GEWEI = 'KG'.
APPEND WA TO IT.

WA-MATNR = '102'.
WA-MBRSH = 'C'.
WA-MTART = 'FERT'.
WA-MAKTX = 'Ammonium Phosphate'.
WA-BRGEW = '350.700'.
WA-GEWEI = 'KG'.
APPEND WA TO IT.

WA-MATNR = '101'.
WA-MBRSH = 'M'.
WA-MTART = 'FERT'.
WA-MAKTX = 'Castings'.
WA-BRGEW = '550.700'.
WA-GEWEI = 'KG'.
APPEND WA TO IT.

WA-MATNR = '100'.
WA-MBRSH = 'C'.
WA-MTART = 'FERT'.
WA-MAKTX = 'Copper Sulphate'.
WA-BRGEW = '350.700'.
WA-GEWEI = 'KG'.
APPEND WA TO IT.

WA-MATNR = '103'.
WA-MBRSH = 'C'.
WA-MTART = 'FERT'.
WA-MAKTX = 'Citric Acid'.
WA-BRGEW = '124.700'.
WA-GEWEI = 'KG'.
APPEND WA TO IT.

LOOP AT IT INTO WA.


WRITE : / SY-TABIX,WA-MATNR,WA-MBRSH,WA-MTART,WA-MAKTX,WA-BRGEW,WA-GEWEI.
ENDLOOP.

SKIP 2.

READ TABLE IT INTO WA INDEX 3.


WA-BRGEW = '700.000'.
WRITE : / SY-TABIX,WA-MATNR,WA-MBRSH,WA-MTART,WA-MAKTX,WA-BRGEW,WA-GEWEI.

OUTPUT:

1 100 C FERT Copper Sulphate 450.700 KG

2 102 C FERT Ammonium Phosphate 350.700 KG

3 101 M FERT Castings 550.700 KG


4 100 C FERT Copper Sulphate 350.700 KG

5 103 C FERT Citric Acid 124.700 KG

AFTER MODIFYING LINE NUMBER 3:

3 101 M FERT Castings 700.000 KG

MODIFYING MORE LINES:

To modify number of lines, we have to:

1. Specify the modified value.


2. Use the Modify command: MODIFY IT FROM WA TRANSPORTING.

TYPES: BEGIN OF FS,


MATNR TYPE ZMAT-MATNR,
MBRSH TYPE ZMAT-MBRSH,
MTART TYPE ZMAT-MTART,
MAKTX TYPE ZMAT-MAKTX,
BRGEW TYPE ZMAT-BRGEW,
GEWEI TYPE ZMAT-GEWEI,
END OF FS.
DATA: IT TYPE TABLE OF FS INITIAL SIZE 0,
WA TYPE FS.
WA-MATNR = '100'.
WA-MBRSH = 'C'.
WA-MTART = 'FERT'.
WA-MAKTX = 'Copper Sulphate'.
WA-BRGEW = '450.700'.
WA-GEWEI = 'KG'.
APPEND WA TO IT.

WA-MATNR = '102'.
WA-MBRSH = 'C'.
WA-MTART = 'FERT'.
WA-MAKTX = 'Ammonium Phosphate'.
WA-BRGEW = '350.700'.
WA-GEWEI = 'KG'.
APPEND WA TO IT.
WA-MATNR = '101'.
WA-MBRSH = 'M'.
WA-MTART = 'FERT'.
WA-MAKTX = 'Castings'.
WA-BRGEW = '550.700'.
WA-GEWEI = 'KG'.
APPEND WA TO IT.

WA-MATNR = '100'.
WA-MBRSH = 'C'.
WA-MTART = 'FERT'.
WA-MAKTX = 'Copper Sulphate'.
WA-BRGEW = '350.700'.
WA-GEWEI = 'KG'.
APPEND WA TO IT.

WA-MATNR = '103'.
WA-MBRSH = 'C'.
WA-MTART = 'FERT'.
WA-MAKTX = 'Citric Acid'.
WA-BRGEW = '124.700'.
WA-GEWEI = 'KG'.
APPEND WA TO IT.

LOOP AT IT INTO WA.


WRITE : / SY-TABIX,WA-MATNR,WA-MBRSH,WA-MTART,WA-MAKTX,WA-BRGEW,WA-GEWEI.
ENDLOOP.

SKIP 2.

WA-BRGEW = '800.000'.
MODIFY IT FROM WA TRANSPORTING BRGEW WHERE MATNR = '100'.
LOOP AT IT INTO WA.
WRITE : / SY-TABIX,WA-MATNR,WA-MBRSH,WA-MTART,WA-MAKTX,WA-BRGEW,WA-GEWEI.
ENDLOOP.
OUTPUT:

1 100 C FERT Copper Sulphate 450.700 KG

2 102 C FERT Ammonium Phosphate 350.700 KG

3 101 M FERT Castings 550.700 KG

4 100 C FERT Copper Sulphate 350.700 KG

5 103 C FERT Citric Acid 124.700 KG

AFTER MODIFYING:

1 100 C FERT Copper Sulphate 800.000 KG

2 102 C FERT Ammonium Phosphate 350.700 KG

3 101 M FERT Castings 550.700 KG

4 100 C FERT Copper Sulphate 800.000 KG

5 103 C FERT Citric Acid 124.700 KG

SORTING THE LINES(STANDARD & HASHED TABLLES ONLY):

We can sort the Standard & Hashed tables. For this, we can use the keyword SORT.

SORT:

We can use the keyword SORT. Here, the system will sort the lines of the internal table

with the standard key i.e. first field either in Ascending or Descending order.

Syntax: SORT IT. Ascending Order or

SORT IT DESCENDING. Descending Order.


SORTING IN ASCENDING ORDER:

TYPES: BEGIN OF FS,


MATNR TYPE ZMAT-MATNR,
MBRSH TYPE ZMAT-MBRSH,
MTART TYPE ZMAT-MTART,
MAKTX TYPE ZMAT-MAKTX,
BRGEW TYPE ZMAT-BRGEW,
GEWEI TYPE ZMAT-GEWEI,
END OF FS.
DATA: IT TYPE TABLE OF FS INITIAL SIZE 0,
WA TYPE FS.

WA-MATNR = '100'.
WA-MBRSH = 'C'.
WA-MTART = 'FERT'.
WA-MAKTX = 'Copper Sulphate'.
WA-BRGEW = '450.700'.
WA-GEWEI = 'KG'.
APPEND WA TO IT.

WA-MATNR = '102'.
WA-MBRSH = 'C'.
WA-MTART = 'FERT'.
WA-MAKTX = 'Ammonium Phosphate'.
WA-BRGEW = '350.700'.
WA-GEWEI = 'KG'.
APPEND WA TO IT.

WA-MATNR = '101'.
WA-MBRSH = 'M'.
WA-MTART = 'FERT'.
WA-MAKTX = 'Castings'.
WA-BRGEW = '550.700'.
WA-GEWEI = 'KG'.
APPEND WA TO IT.
WA-MATNR = '100'.
WA-MBRSH = 'C'.
WA-MTART = 'FERT'.
WA-MAKTX = 'Copper Sulphate'.
WA-BRGEW = '350.700'.
WA-GEWEI = 'KG'.
APPEND WA TO IT.

WA-MATNR = '103'.
WA-MBRSH = 'C'.
WA-MTART = 'FERT'.
WA-MAKTX = 'Citric Acid'.
WA-BRGEW = '124.700'.
WA-GEWEI = 'KG'.
APPEND WA TO IT.

SORT IT.

LOOP AT IT INTO WA.


WRITE : / SY-TABIX,WA-MATNR,WA-MBRSH,WA-MTART,WA-MAKTX,WA-BRGEW,WA-GEWEI.
ENDLOOP.

OUTPUT:

1 100 C FERT Copper Sulphate 450.700 KG

2 100 C FERT Copper Sulphate 350.700 KG

3 101 M FERT Castings 550.700 KG

4 102 C FERT Ammonium Phosphate 350.700 KG

5 103 C FERT Citric Acid 124.700 KG


SORTING IN DESCENDING ORDER:

TYPES: BEGIN OF FS,


MATNR TYPE ZMAT-MATNR,
MBRSH TYPE ZMAT-MBRSH,
MTART TYPE ZMAT-MTART,
MAKTX TYPE ZMAT-MAKTX,
BRGEW TYPE ZMAT-BRGEW,
GEWEI TYPE ZMAT-GEWEI,
END OF FS.
DATA: IT TYPE TABLE OF FS INITIAL SIZE 0,
WA TYPE FS.

WA-MATNR = '100'.
WA-MBRSH = 'C'.
WA-MTART = 'FERT'.
WA-MAKTX = 'Copper Sulphate'.
WA-BRGEW = '450.700'.
WA-GEWEI = 'KG'.
APPEND WA TO IT.

WA-MATNR = '102'.
WA-MBRSH = 'C'.
WA-MTART = 'FERT'.
WA-MAKTX = 'Ammonium Phosphate'.
WA-BRGEW = '350.700'.
WA-GEWEI = 'KG'.
APPEND WA TO IT.

WA-MATNR = '101'.
WA-MBRSH = 'M'.
WA-MTART = 'FERT'.
WA-MAKTX = 'Castings'.
WA-BRGEW = '550.700'.
WA-GEWEI = 'KG'.
APPEND WA TO IT.
WA-MATNR = '100'.
WA-MBRSH = 'C'.
WA-MTART = 'FERT'.
WA-MAKTX = 'Copper Sulphate'.
WA-BRGEW = '350.700'.
WA-GEWEI = 'KG'.
APPEND WA TO IT.

WA-MATNR = '103'.
WA-MBRSH = 'C'.
WA-MTART = 'FERT'.
WA-MAKTX = 'Citric Acid'.
WA-BRGEW = '124.700'.
WA-GEWEI = 'KG'.
APPEND WA TO IT.

SORT IT DESCENDING.

LOOP AT IT INTO WA.


WRITE : / SY-TABIX,WA-MATNR,WA-MBRSH,WA-MTART,WA-MAKTX,WA-BRGEW,WA-GEWEI.
ENDLOOP.

OUTPUT:

1 103 C FERT Citric Acid 124.700 KG

2 102 C FERT Ammonium Phosphate 350.700 KG

3 101 M FERT Castings 550.700 KG

4 100 C FERT Copper Sulphate 450.700 KG

5 100 C FERT Copper Sulphate 350.700 KG


SORTING BY A PARTICULAR FIELD:

We can sort the lines of an internal table with respect to particular field either in Ascending order
or in a Descending order. The field can either be a character field or numeric field.

Syntax: SORT IT BY <field> . “Ascending Order. Or

SORT IT BY <field> DESCENDING. “Descending Order.

EXAMPLE:

TYPES: BEGIN OF FS,


MATNR TYPE ZMAT-MATNR,
MBRSH TYPE ZMAT-MBRSH,
MTART TYPE ZMAT-MTART,
MAKTX TYPE ZMAT-MAKTX,
BRGEW TYPE ZMAT-BRGEW,
GEWEI TYPE ZMAT-GEWEI,
END OF FS.
DATA: IT TYPE TABLE OF FS INITIAL SIZE 0,
WA TYPE FS.

WA-MATNR = '100'.
WA-MBRSH = 'C'.
WA-MTART = 'FERT'.
WA-MAKTX = 'Copper Sulphate'.
WA-BRGEW = '450.700'.
WA-GEWEI = 'KG'.
APPEND WA TO IT.

WA-MATNR = '102'.
WA-MBRSH = 'C'.
WA-MTART = 'FERT'.
WA-MAKTX = 'Ammonium Phosphate'.
WA-BRGEW = '350.700'.
WA-GEWEI = 'KG'.
APPEND WA TO IT.
WA-MATNR = '101'.
WA-MBRSH = 'M'.
WA-MTART = 'FERT'.
WA-MAKTX = 'Castings'.
WA-BRGEW = '550.700'.
WA-GEWEI = 'KG'.
APPEND WA TO IT.

WA-MATNR = '100'.
WA-MBRSH = 'C'.
WA-MTART = 'FERT'.
WA-MAKTX = 'Copper Sulphate'.
WA-BRGEW = '350.700'.
WA-GEWEI = 'KG'.
APPEND WA TO IT.

WA-MATNR = '103'.
WA-MBRSH = 'C'.
WA-MTART = 'FERT'.
WA-MAKTX = 'Citric Acid'.
WA-BRGEW = '124.700'.
WA-GEWEI = 'KG'.
APPEND WA TO IT.
SORT IT BY MAKTX DESCENDING.
LOOP AT IT INTO WA.
WRITE : / SY-TABIX,WA-MATNR,WA-MBRSH,WA-MTART,WA-MAKTX,WA-BRGEW,WA-GEWEI.
ENDLOOP.

OUTPUT:

1 100 C FERT Copper Sulphate 450.700 KG

2 100 C FERT Copper Sulphate 350.700 KG

3 103 C FERT Citric Acid 124.700 KG

4 101 M FERT Castings 550.700 KG

5 102 C FERT Ammonium Phosphate 350.700 KG


DELETING THE LINE(S) OF AN INTERNAL TABLE:

To delete the line(s) of an internal table, following keywords can be used:

1. DELETE.
2. FREE.
3. REFRESH or CLEAR.

DELETE:

To delete the lines of the internal table, we can use the keyword DELETE.

Following options can be used along with the keyword DELETE:

1. DELETING LINES INSIDE A LOOP:

To delete the lines inside a loop we can use the following syntax:

DELETE IT.

This will delete all the lines. This should be used within LOOP and ENDLOOP only.

EXAMPLE:

TYPES: BEGIN OF FS,


MATNR TYPE ZMAT-MATNR,
MBRSH TYPE ZMAT-MBRSH,
MTART TYPE ZMAT-MTART,
MAKTX TYPE ZMAT-MAKTX,
BRGEW TYPE ZMAT-BRGEW,
GEWEI TYPE ZMAT-GEWEI,
END OF FS.
DATA: IT TYPE TABLE OF FS INITIAL SIZE 0,
WA TYPE FS.

WA-MATNR = '100'.
WA-MBRSH = 'C'.
WA-MTART = 'FERT'.
WA-MAKTX = 'Copper Sulphate'.
WA-BRGEW = '450.700'.
WA-GEWEI = 'KG'.
APPEND WA TO IT.

WA-MATNR = '102'.
WA-MBRSH = 'C'.
WA-MTART = 'FERT'.
WA-MAKTX = 'Ammonium Phosphate'.
WA-BRGEW = '350.700'.
WA-GEWEI = 'KG'.
APPEND WA TO IT.

WA-MATNR = '101'.
WA-MBRSH = 'M'.
WA-MTART = 'FERT'.
WA-MAKTX = 'Castings'.
WA-BRGEW = '550.700'.
WA-GEWEI = 'KG'.
APPEND WA TO IT.

WA-MATNR = '100'.
WA-MBRSH = 'C'.
WA-MTART = 'FERT'.
WA-MAKTX = 'Copper Sulphate'.
WA-BRGEW = '350.700'.
WA-GEWEI = 'KG'.
APPEND WA TO IT.

WA-MATNR = '103'.
WA-MBRSH = 'C'.
WA-MTART = 'FERT'.
WA-MAKTX = 'Citric Acid'.
WA-BRGEW = '124.700'.
WA-GEWEI = 'KG'.
APPEND WA TO IT.

LOOP AT IT INTO WA.


WRITE : / SY-TABIX,WA-MATNR,WA-MBRSH,WA-MTART,WA-MAKTX,WA-BRGEW,WA-GEWEI.
ENDLOOP.
SKIP 2.

LOOP AT IT INTO WA.


IF WA-BRGEW <= '350.700'.
DELETE IT.
ENDIF.
ENDLOOP.

LOOP AT IT INTO WA.


WRITE : / SY-TABIX,WA-MATNR,WA-MBRSH,WA-MTART,WA-MAKTX,WA-BRGEW,WA-GEWEI.
ENDLOOP.

OUTPUT:

1 100 C FERT Copper Sulphate 450.700 KG

2 102 C FERT Ammonium Phosphate 350.700 KG

3 101 M FERT Castings 550.700 KG

4 100 C FERT Copper Sulphate 350.700 KG

5 103 C FERT Citric Acid 124.700 KG

AFTER THE NUMBER OF LINES:

1 100 C FERT Copper Sulphate 450.700 KG

2 101 M FERT Castings 550.700 KG

2. DELETING NUMBER OF LINES:

To delete the number of lines in an internal table, we can use the following syntax:

DELETE IT FROM 2 TO 4.

This will delete the lines from 2 to 4 of the internal table. The subsequent lines will be
decremented by 1.
TYPES: BEGIN OF FS,
MATNR TYPE ZMAT-MATNR,
MBRSH TYPE ZMAT-MBRSH,
MTART TYPE ZMAT-MTART,
MAKTX TYPE ZMAT-MAKTX,
BRGEW TYPE ZMAT-BRGEW,
GEWEI TYPE ZMAT-GEWEI,
END OF FS.
DATA: IT TYPE TABLE OF FS INITIAL SIZE 0,
WA TYPE FS.

WA-MATNR = '100'.
WA-MBRSH = 'C'.
WA-MTART = 'FERT'.
WA-MAKTX = 'Copper Sulphate'.
WA-BRGEW = '450.700'.
WA-GEWEI = 'KG'.
APPEND WA TO IT.

WA-MATNR = '102'.
WA-MBRSH = 'C'.
WA-MTART = 'FERT'.
WA-MAKTX = 'Ammonium Phosphate'.
WA-BRGEW = '350.700'.
WA-GEWEI = 'KG'.
APPEND WA TO IT.

WA-MATNR = '101'.
WA-MBRSH = 'M'.
WA-MTART = 'FERT'.
WA-MAKTX = 'Castings'.
WA-BRGEW = '550.700'.
WA-GEWEI = 'KG'.
APPEND WA TO IT.

WA-MATNR = '100'.
WA-MBRSH = 'C'.
WA-MTART = 'FERT'.
WA-MAKTX = 'Copper Sulphate'.
WA-BRGEW = '350.700'.
WA-GEWEI = 'KG'.
APPEND WA TO IT.

WA-MATNR = '103'.
WA-MBRSH = 'C'.
WA-MTART = 'FERT'.
WA-MAKTX = 'Citric Acid'.
WA-BRGEW = '124.700'.
WA-GEWEI = 'KG'.
APPEND WA TO IT.

LOOP AT IT INTO WA.


WRITE : / SY-TABIX,WA-MATNR,WA-MBRSH,WA-MTART,WA-MAKTX,WA-BRGEW,WA-GEWEI.
ENDLOOP.

SKIP 2.

DELETE IT FROM 2 TO 4.

LOOP AT IT INTO WA.


WRITE : / SY-TABIX,WA-MATNR,WA-MBRSH,WA-MTART,WA-MAKTX,WA-BRGEW,WA-GEWEI.
ENDLOOP.

OUTPUT:

1 100 C FERT Copper Sulphate 450.700 KG

2 102 C FERT Ammonium Phosphate 350.700 KG

3 101 M FERT Castings 550.700 KG

4 100 C FERT Copper Sulphate 350.700 KG

5 103 C FERT Citric Acid 124.700 KG


AFTER DELETING THE NUMBER OF LINES:

1 100 C FERT Copper Sulphate 450.700 KG

2 103 C FERT Citric Acid 124.700 KG

Similarly, we can delete the number of lines that satisfy the condition. For this, we can use the
following syntax:

DELETE IT FROM 2 TO 4 WHERE BRGEW = ‘350.000’.

DELETING A SINGLE LINE:

We can delete a single line by using Index. After deleting the line, the subsequent lines will be
decremented by 1.

Syntax: DELETE IT INDEX n.

TYPES: BEGIN OF FS,


MATNR TYPE ZMAT-MATNR,
MBRSH TYPE ZMAT-MBRSH,
MTART TYPE ZMAT-MTART,
MAKTX TYPE ZMAT-MAKTX,
BRGEW TYPE ZMAT-BRGEW,
GEWEI TYPE ZMAT-GEWEI,
END OF FS.
DATA: IT TYPE TABLE OF FS INITIAL SIZE 0,
WA TYPE FS.

WA-MATNR = '100'.
WA-MBRSH = 'C'.
WA-MTART = 'FERT'.
WA-MAKTX = 'Copper Sulphate'.
WA-BRGEW = '450.700'.
WA-GEWEI = 'KG'.
APPEND WA TO IT.

WA-MATNR = '102'.
WA-MBRSH = 'C'.
WA-MTART = 'FERT'.
WA-MAKTX = 'Ammonium Phosphate'.
WA-BRGEW = '350.700'.
WA-GEWEI = 'KG'.
APPEND WA TO IT.

WA-MATNR = '101'.
WA-MBRSH = 'M'.
WA-MTART = 'FERT'.
WA-MAKTX = 'Castings'.
WA-BRGEW = '550.700'.
WA-GEWEI = 'KG'.
APPEND WA TO IT.

WA-MATNR = '100'.
WA-MBRSH = 'C'.
WA-MTART = 'FERT'.
WA-MAKTX = 'Copper Sulphate'.
WA-BRGEW = '350.700'.
WA-GEWEI = 'KG'.
APPEND WA TO IT.

WA-MATNR = '103'.
WA-MBRSH = 'C'.
WA-MTART = 'FERT'.
WA-MAKTX = 'Citric Acid'.
WA-BRGEW = '124.700'.
WA-GEWEI = 'KG'.
APPEND WA TO IT.

LOOP AT IT INTO WA.


WRITE : / SY-TABIX,WA-MATNR,WA-MBRSH,WA-MTART,WA-MAKTX,WA-BRGEW,WA-GEWEI.
ENDLOOP.

SKIP 2.

DELETE IT INDEX 3.
LOOP AT IT INTO WA.
WRITE : / SY-TABIX,WA-MATNR,WA-MBRSH,WA-MTART,WA-MAKTX,WA-BRGEW,WA-GEWEI.
ENDLOOP.

OUTPUT:

1 100 C FERT Copper Sulphate 450.700 KG

2 102 C FERT Ammonium Phosphate 350.700 KG

3 101 M FERT Castings 550.700 KG

4 100 C FERT Copper Sulphate 350.700 KG

5 103 C FERT Citric Acid 124.700 KG

AFTER DELETING LINE NUMBER 3:

1 100 C FERT Copper Sulphate 450.700 KG

2 102 C FERT Ammonium Phosphate 350.700 KG

3 100 C FERT Copper Sulphate 350.700 KG

4 103 C FERT Citric Acid 124.700 KG

DELETING ADJACENT DUPLICATE ENTRIES:

Here, the system will retain the first entry and will delete all the subsequent duplicate entries.
We can consider an entry as a duplicate entry by comparing either one field or more than field
or all the fields: Syntax:

1. BY COMPARING 1 FIELD:

DELETE ADJACENT DUPLICATES FROM IT COMPARING <field1>.

2. BY COMPARING MORE THAN 1 FIELDB:

DELETE ADJACENT DUPLICATES FROM IT COMPARING <field1> <field2>.

3. BY COMPARING ALL FIELDS:

DELETE ADJACENT DUPLICATES FROM IT COMPARING ALL FIELDS.


EXAMPLE:

TYPES: BEGIN OF FS,


MBRSH TYPE ZMAT-MBRSH,
MATNR TYPE ZMAT-MATNR,
MTART TYPE ZMAT-MTART,
BRGEW TYPE ZMAT-BRGEW,
GEWEI TYPE ZMAT-GEWEI,
END OF FS.
DATA: IT TYPE TABLE OF FS INITIAL SIZE 0,
WA TYPE FS.

SELECT-OPTIONS M FOR WA-MATNR.

SELECT * FROM MARA INTO CORRESPONDING FIELDS OF TABLE IT WHERE MATNR IN M.

SORT IT BY MBRSH.

LOOP AT IT INTO WA.


WRITE : / WA-MBRSH,WA-MATNR,WA-MTART,WA-BRGEW,WA-GEWEI.
ENDLOOP.

SKIP 2.

DELETE ADJACENT DUPLICATES FROM IT COMPARING MBRSH.

LOOP AT IT INTO WA.


WRITE : / WA-MBRSH,WA-MATNR,WA-MTART,WA-BRGEW,WA-GEWEI.
ENDLOOP.

OUTPUT:

A 100-261 HAWA 0.250 KG

A 100-260 HAWA 1.250 KG

A 100-251 HAWA 0.250 KG

A 100-250 HAWA 1.000 KG


M 100-432 ROH 0.500 KG

M 100-431 ROH 0.500 KG

M 100-430 ROH 1.000 KG

M 100-433 ROH 0.005 KG

M 100-500 HALB 2.200 KG

M 100-510 HAWA 0.500 KG

M 100-600 ROH 2.000 KG

M 100-420 ROH 0.500 KG

M 100-410 ROH 1.000 KG

M 100-401 HALB 0.000 KG

M 100-400 HALB 1.800 KG

M 100-310 ROH 12.000 KG

M 100-302 HALB 3.000 KG

M 100-301 HALB 3.000 KG

M 100-300 HALB 3.000 KG

M 100-210 ROH 5.000 KG

M 100-200 HALB 2.500 KG

M 100-130 ROH 0.005 KG

M 100-120 ROH 0.010 KG

M 100-110 ROH 12.000 KG

M 100-101 HALB 0.000 KG

M 100-100 HALB 3.000 KG


AFTER DELETING LINES:

A 100-261 HAWA 0.250 KG

M 100-432 ROH 0.500 KG

FREE:

To delete all the rows from the internal table and to clear the associated memory, we can
use the keyword FREE. This should be used in the last of the code.

EXAMPLE:

TYPES: BEGIN OF FS,


MBRSH TYPE ZMAT-MBRSH,
MATNR TYPE ZMAT-MATNR,
MTART TYPE ZMAT-MTART,
BRGEW TYPE ZMAT-BRGEW,
GEWEI TYPE ZMAT-GEWEI,
END OF FS.
DATA: IT TYPE TABLE OF FS INITIAL SIZE 0,
WA TYPE FS.

SELECT-OPTIONS M FOR WA-MATNR.

SELECT * FROM MARA INTO CORRESPONDING FIELDS OF TABLE IT WHERE MATNR IN M.

SORT IT BY MBRSH.

LOOP AT IT INTO WA.


WRITE : / WA-MBRSH,WA-MATNR,WA-MTART,WA-BRGEW,WA-GEWEI.
ENDLOOP.

FREE IT.

IF SY-SUBRC = 0.
MESSAGE 'No Records Found!' TYPE 'E'.
ENDIF.
REFRESH or CLEAR:

To delete all the rows from the internal table and to leave the associated memory, we can
use the keywords REFRESH or CLEAR.

EXAMPLE:

MATNR TYPE ZMAT-MATNR,


MBRSH TYPE ZMAT-MBRSH,
MTART TYPE ZMAT-MTART,
MAKTX TYPE ZMAT-MAKTX,
BRGEW TYPE ZMAT-BRGEW,
GEWEI TYPE ZMAT-GEWEI,
END OF FS.
DATA: IT TYPE TABLE OF FS INITIAL SIZE 0,
WA TYPE FS.

WA-MATNR = '100'.
WA-MBRSH = 'C'.
WA-MTART = 'FERT'.
WA-MAKTX = 'Copper Sulphate'.
WA-BRGEW = '250.700'.
WA-GEWEI = 'KG'.
APPEND WA TO IT.

WA-MATNR = '102'.
WA-MBRSH = 'C'.
WA-MTART = 'FERT'.
WA-MAKTX = 'Ammonium Phosphate'.
WA-BRGEW = '350.700'.
WA-GEWEI = 'KG'.
APPEND WA TO IT.
REFRESH IT.

WA-MATNR = '101'.
WA-MBRSH = 'M'.
WA-MTART = 'FERT'.
WA-MAKTX = 'Castings'.
WA-BRGEW = '550.700'.
WA-GEWEI = 'KG'.
APPEND WA TO IT.

WA-MATNR = '100'.
WA-MBRSH = 'C'.
WA-MTART = 'FERT'.
WA-MAKTX = 'Copper Sulphate'.
WA-BRGEW = '350.700'.
WA-GEWEI = 'KG'.
APPEND WA TO IT.

LOOP AT IT INTO WA.


WRITE : / SY-TABIX,WA-MATNR,WA-MBRSH,WA-MTART,WA-MAKTX,WA-BRGEW,WA-
GEWEI.
ENDLOOP.

OUTPUT:

1 101 M FERT Castings 550.700 KG

2 100 C FERT Copper Sulphate 350.700 KG

CONTROL BREAK PROCESSING STATEMENTS:

After an Internal table is filled with lines, we need to generate report with header, footer, group
wise, total & subtotal. For this, we can use the following control break processing statements. All
the control break processing statements should be used within Loop and EndLoop only.
1. Header

AT FIRST.
................. .
................. .
ENDAT.
2. Footer

AT LAST.
................. .
................. .
ENDAT.

3. GroupWise

Starting of a Group.

AT NEW <field>. ON CHANGE OF <tablename-fieldname>.


................. . ................. .
................. . ................. .

ENDAT. ENDON.

Ending of a Group.

AT END OF <field>.
................. .
................. .
ENDAT.
* To form a group, sort the table first with respect to that field.

4. Total:

SUM.

If SUM is used in AT LAST, it is overall total.


If SUM is used in AT END OF, it is Subtotal.
HEADER AND FOOTER DETAILS:
TYPES: BEGIN OF FS,
MATNR TYPE ZMAT-MATNR,
MBRSH TYPE ZMAT-MBRSH,
MTART TYPE ZMAT-MTART,
MAKTX TYPE ZMAT-MAKTX,
BRGEW TYPE ZMAT-BRGEW,
GEWEI TYPE ZMAT-GEWEI,
END OF FS.
DATA: IT TYPE TABLE OF FS INITIAL SIZE 0,
WA TYPE FS.

WA-MATNR = '100'.
WA-MBRSH = 'C'.
WA-MTART = 'FERT'.
WA-MAKTX = 'Copper Sulphate'.
WA-BRGEW = '250.700'.
WA-GEWEI = 'KG'.
APPEND WA TO IT.

WA-MATNR = '102'.
WA-MBRSH = 'C'.
WA-MTART = 'FERT'.
WA-MAKTX = 'Ammonium Phosphate'.
WA-BRGEW = '350.700'.
WA-GEWEI = 'KG'.
APPEND WA TO IT.

WA-MATNR = '101'.
WA-MBRSH = 'M'.
WA-MTART = 'FERT'.
WA-MAKTX = 'Castings'.
WA-BRGEW = '550.700'.
WA-GEWEI = 'KG'.
APPEND WA TO IT.
WA-MATNR = '100'.
WA-MBRSH = 'C'.
WA-MTART = 'FERT'.
WA-MAKTX = 'Copper Sulphate'.
WA-BRGEW = '350.700'.
WA-GEWEI = 'KG'.
APPEND WA TO IT.

WA-MATNR = '102'.
WA-MBRSH = 'C'.
WA-MTART = 'FERT'.
WA-MAKTX = 'Ammonium Phosphate'.
WA-BRGEW = '226.700'.
WA-GEWEI = 'KG'.
APPEND WA TO IT.

WA-MATNR = '101'.
WA-MBRSH = 'M'.
WA-MTART = 'FERT'.
WA-MAKTX = 'Castings'.
WA-BRGEW = '326.700'.
WA-GEWEI = 'KG'.
APPEND WA TO IT.

LOOP AT IT INTO WA.


AT FIRST.
WRITE : / 'MATERIALS REPORT'.
ULINE.
WRITE : / TEXT-000,12 TEXT-001,31 TEXT-002,35 TEXT-003,40 TEXT-
004,81 TEXT-005,99 TEXT-006.
ULINE.
ENDAT.
WRITE : / SY-TABIX UNDER TEXT-000,WA-MATNR UNDER TEXT-001,WA-
MBRSH UNDER TEXT-002,
WA-MTART UNDER TEXT-003,WA-MAKTX UNDER TEXT-004,WA-
BRGEW UNDER TEXT-005,
WA-GEWEI UNDER TEXT-006.
AT LAST.
SUM.
ULINE.
WRITE : / 'Total Gross Weight is:', 81 WA-BRGEW.
ENDAT.
ENDLOOP.
OUTPUT:
MATERIALS REPORT:
Serial No Material No Ind Type Description Gross Wt Unit

1 100 C FERT Copper Sulphate 250.700 KG


2 102 C FERT Ammonium Phosphate 350.700 KG
3 101 M FERT Castings 550.700 KG
4 100 C FERT Copper Sulphate 350.700 KG
5 102 C FERT Ammonium Phosphate 226.700 KG
6 101 M FERT Castings 326.700 KG

Total Gross Weight is: 2,056.200

GROUPWISE REPORT:

TYPES: BEGIN OF FS,


MATNR TYPE ZMAT-MATNR,
MBRSH TYPE ZMAT-MBRSH,
MTART TYPE ZMAT-MTART,
MAKTX TYPE ZMAT-MAKTX,
BRGEW TYPE ZMAT-BRGEW,
GEWEI TYPE ZMAT-GEWEI,
END OF FS.
DATA: IT TYPE TABLE OF FS INITIAL SIZE 0,
WA TYPE FS.

WA-MATNR = '100'.
WA-MBRSH = 'C'.
WA-MTART = 'FERT'.
WA-MAKTX = 'Copper Sulphate'.
WA-BRGEW = '250.700'.
WA-GEWEI = 'KG'.
APPEND WA TO IT.

WA-MATNR = '102'.
WA-MBRSH = 'C'.
WA-MTART = 'FERT'.
WA-MAKTX = 'Ammonium Phosphate'.
WA-BRGEW = '350.700'.
WA-GEWEI = 'KG'.
APPEND WA TO IT.

WA-MATNR = '101'.
WA-MBRSH = 'M'.
WA-MTART = 'FERT'.
WA-MAKTX = 'Castings'.
WA-BRGEW = '550.700'.
WA-GEWEI = 'KG'.
APPEND WA TO IT.

WA-MATNR = '100'.
WA-MBRSH = 'C'.
WA-MTART = 'FERT'.
WA-MAKTX = 'Copper Sulphate'.
WA-BRGEW = '350.700'.
WA-GEWEI = 'KG'.
APPEND WA TO IT.

WA-MATNR = '102'.
WA-MBRSH = 'C'.
WA-MTART = 'FERT'.
WA-MAKTX = 'Ammonium Phosphate'.
WA-BRGEW = '226.700'.
WA-GEWEI = 'KG'.
APPEND WA TO IT.

WA-MATNR = '101'.
WA-MBRSH = 'M'.
WA-MTART = 'FERT'.
WA-MAKTX = 'Castings'.
WA-BRGEW = '326.700'.
WA-GEWEI = 'KG'.
APPEND WA TO IT.

SORT IT BY MATNR.

LOOP AT IT INTO WA.


AT NEW MATNR.
NEW-PAGE.
WRITE : / 'MATERIALS REPORT FOR MATERIAL NO:',WA-MATNR.
ULINE.
WRITE : / TEXT-000,12 TEXT-001,31 TEXT-002,35 TEXT-003,40 TEXT-
004,81 TEXT-005,99 TEXT-006.
ULINE.
ENDAT.
WRITE : / SY-TABIX UNDER TEXT-000,WA-MATNR UNDER TEXT-001,WA-
MBRSH UNDER TEXT-002,
WA-MTART UNDER TEXT-003,WA-MAKTX UNDER TEXT-004,WA-
BRGEW UNDER TEXT-005,
WA-GEWEI UNDER TEXT-006.
AT END OF MATNR.
SUM.
ULINE.
WRITE : / 'Total Gross Weight of Material No:',WA-MATNR,'is:', 81 WA-
BRGEW.
ENDAT.
ENDLOOP.
OUTPUT:

You might also like