Hi,
1. Defining Structure for an Internal Table.
Internal Table consist of two parts
Body
Header / Work area.
Now internal table can be decleared with header and without header.
a. when you declear select-option for an field than also an internal table is created.
for example select-option : s_matnr for mara-matnr.
this will create an internal table with header fields of the same will be
s_matnr-option
s_matnr-sign
s_matnr-low
s_matnr-high.
when you decleare using ranges, it have save structure as above.
b. data : itab like mara occurs 0 with header line.
this create/declare internal table with header line.
c. Data : begin of itab occurs 0,
matnr type mara-matnr,
maktx type makt-maktx,
end of itab.
this will also created/declare an internal table with header line.
C. using structure which is defined in data dictionary or program.
example : data : itab type table of bdcdata.
here bdcdata is an structure defined in data dictionary and this create only body
of an intternal table.
data : wa_tab type bdcdata.
this will be header line / work area.
d. types : begin of ty_tab,
matnr type mara-matnr,
maktx type makt-maktx,
end of ty_tab.
this will create structure.
data : itab type tabel of ty_tab. this will create/declare internal table without work area.
data : wa_tab type ty_tab . This will create / declare work area.
2. for selecting data into internal table