#Program 1:
TYPES: BEGIN OF ty_simple,
a type i,
b type c,
END OF ty_simple.
data: itab type table of ty_simple,
wa type ty_simple.
wa-a = 10.
wa-b = 'X'.
append wa to itab.
wa-a = 20.
wa-b = 'Y'.
append wa to itab.
wa-a = 30.
wa-b = 'Z'.
append wa to itab.
LOOP AT itab into wa.
write: wa-a, wa-b.
ENDLOOP.
* NEW code for above.
TYPES: BEGIN OF ty_simple,
a type i,
b type c,
END OF ty_simple.
data: itab type table of ty_simple,
wa type ty_simple.
append value #( a=10 b='X') to itab.
append value #( a=20 b='Y') to itab.
append value #( a=30 b='Z') to itab.
itab =value #( ( a=40 b='D' )( a=50 b='O') ).
read table itab into data(wa) with key b = 'O'.
write:/ wa-a, wa-b.
new sytax.
data(wa) = itab[ b = 'O'].
assign itab[ b='o'] to field-symbol(<fs>)
*Concatenation by string expression
data: lv_string type string,
lv_country type string value 'Aus'.
lv_string = |i love '{lv_country}'|.
data: lt_bp type table of snwd_bpa,
wa type snwd_bpa.
select bp_id,company_name
from snwd_bpa
into table @data(bp_id).
loop at itab into wa.
write:/ wa-bp_id, wa-company_name.
endloop.
loop at lt_bp assigning field-symbol(<fs>).
write:/ <fs>-company_name.
ENDLOOP.
*object traversal.
loop at lt_bp reference into data(lo_bp).
write: /lo_bp->bp_id,lo_bp->company_name.
endloop.
*working with the o bjects.
data: lo_plane type ref to zcl_dec_airplane,
lv_color type char16.
create object lo_plane.
lo_plane->set_color( 'RED' ).
lv_color = lo_plane->get_color().
write:/ lv_color.
*new method of calling an object is as follows.
data(lo_plane2) = new zcl_dec_airplane().
lo_plane2->set_color('blue').
write:/ lo_plane2->get_color().
#Program 2:
class zcl_dec_airplane DEFINITION.
PUBLIC.
FINAL.
CREATE PUBLIC.
PUBLIC SECTION.
data: color type char16.
METHODS get_color RETURNING VALUE(rv_color) type char16.
METHODS set_color IMPORTING im_color type char16.
PROTECTED SECTION.
PRIVATE SECTION.
ENDCLASS.
class zcl_dec_airplane IMPLEMENTATION.
method get_color.
rv_color = me->color.
endmethod.
method set_color.
me->color = im_color.
endmethod.
ENDCLASS.
PROGRAM 3:
report zabap_new_sql.
case1:
select so_id,
case gross_amount >1000
then 'High value'
else 'low Value' end as valued
from snwd_so into table @data(itab).
loop at itab into data(wa).
write: wa-so_id,wa-valued.
endloop.
*case2:
select bp_id, company_name,
case bp_role
when '01' then 'Customer'
when '02' then 'Supplier'
end as bp_role
into table
@data(itab).
from snwd_bpa.
loop at itab into data(wa).
write:/ wa-bp_id, wa-company_name, wa-bp_role.
endloop.
aggregate functions:
select category, sum(price) as price from snwd_of into
table @data(itab) group by category
having sum(price) > 5000.
loop at itab into data(wa).
write: wa-category,wa-price.
endloop.