Application Development and Automation Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

Report on oops abap

Former Member
0 Likes
552

Hi,

Can anyone send one total report using OOPS Concept.

Thankyou,

Kiranmai.

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
497

hi,



REPORT sapbc404gens_inh_polymorphism .
INCLUDE sapbc404gens_lcl_airplane.
INCLUDE sapbc404gens_lcl_passenger_air.
INCLUDE sapbc404gens_lcl_cargo_air.
* New include

INCLUDE sapbc404gens_lcl_carrier_1.
DATA: passenger_airplane TYPE REF TO lcl_passenger_airplane,
cargo_airplane TYPE REF TO lcl_cargo_airplane,
* new reference
carrier TYPE REF TO lcl_carrier.
START-OF-SELECTION.

* CALL METHOD lcl_airplane=>display_n_o_airplanes.
CREATE OBJECT passenger_airplane EXPORTING
im_name = 'LH Berlin'
im_planetype = '747-400'
im_n_o_seats = 580.

CREATE OBJECT cargo_airplane EXPORTING
im_name = 'US Hercules'
im_planetype = 'Galaxy'
im_cargo_max = 30000.
* CALL METHOD passenger_airplane->display_attributes.
* CALL METHOD cargo_airplane->display_attributes.
* CALL METHOD lcl_airplane=>display_n_o_airplanes.
* new coding
* Create a carrier
CREATE OBJECT carrier EXPORTING im_name = 'Lufthansa'.



* Add passenger airplane to airplane list
CALL METHOD carrier->add_a_new_airplane EXPORTING
im_airplane = passenger_airplane.

* Create new passenger airplane
CREATE OBJECT passenger_airplane EXPORTING
im_name = 'LH München'
im_planetype = 'A310-300'
im_n_o_seats = 280.

* Add new passenger airplane to airplane list
CALL METHOD carrier->add_a_new_airplane EXPORTING
im_airplane = passenger_airplane.

* Add cargo airplane to airplane list

CALL METHOD carrier->add_a_new_airplane EXPORTING
im_airplane = cargo_airplane.
* Display all airplanes of airplane list
CALL METHOD carrier->display_airplanes.


Include program SAPBC404GENS_LCL_AIRPLANE
*------------------------------------------------------------------*
* CLASS lcl_airplane DEFINITION *
*------------------------------------------------------------------*
CLASS lcl_airplane DEFINITION.
PUBLIC SECTION.

TYPES: name_type(25) TYPE c.
CONSTANTS: pos_1 TYPE i VALUE 30.

METHODS: constructor IMPORTING
im_name TYPE name_type
im_planetype TYPE saplane-planetype,
set_attributes IMPORTING
im_name TYPE name_type
im_planetype TYPE saplane-planetype,
display_attributes.
CLASS-METHODS: display_n_o_airplanes.


* NEW: protected section
PROTECTED SECTION.
DATA: name TYPE name_type,
planetype TYPE saplane-planetype.
PRIVATE SECTION.
CLASS-DATA: n_o_airplanes TYPE i.
ENDCLASS.


*------------------------------------------------------------------*
* CLASS lcl_airplane IMPLEMENTATION *
*------------------------------------------------------------------*
CLASS lcl_airplane IMPLEMENTATION.

METHOD constructor.
name = im_name.
planetype = im_planetype.
n_o_airplanes = n_o_airplanes + 1.
ENDMETHOD.

METHOD set_attributes.
name = im_name.
planetype = im_planetype.
ENDMETHOD.

METHOD display_attributes.
WRITE: / 'Name of the airplane: '(001), AT pos_1 name,
/ 'Plane type: '(002), AT pos_1 planetype.
ENDMETHOD.


METHOD display_n_o_airplanes.
WRITE: /, / 'Total number of airplanes: '(ca1),
AT pos_1 n_o_airplanes LEFT-JUSTIFIED, /.
ENDMETHOD.
ENDCLASS.


Include program SAPBC404GENS_LCL_PASSENGER_AIR
*------------------------------------------------------------------*
* CLASS lcl_passenger_airplane DEFINITION *
*------------------------------------------------------------------*
CLASS lcl_passenger_airplane DEFINITION INHERITING FROM
lcl_airplane.

PUBLIC SECTION.

METHODS: constructor IMPORTING
im_name TYPE name_type
im_planetype TYPE saplane-planetype
im_n_o_seats TYPE sflight-seatsmax,
display_attributes REDEFINITION.
PRIVATE SECTION.
DATA: n_o_seats TYPE sflight-seatsmax.
ENDCLASS.


*------------------------------------------------------------------*
* CLASS lcl_passenger_airplane IMPLEMENTATION *
*------------------------------------------------------------------*
CLASS lcl_passenger_airplane IMPLEMENTATION.

METHOD constructor.
CALL METHOD super->constructor EXPORTING
im_name = im_name
im_planetype = im_planetype.
n_o_seats = im_n_o_seats.
ENDMETHOD.

METHOD display_attributes.

CALL METHOD super->display_attributes.
WRITE: / 'Number of seats: '(003), 25 n_o_seats, /.
ENDMETHOD.
ENDCLASS.



Include program SAPBC404GENS_LCL_CARGO_AIR
*------------------------------------------------------------------*
* CLASS lcl_cargo_airplane DEFINITION *
*------------------------------------------------------------------*
CLASS lcl_cargo_airplane DEFINITION INHERITING FROM lcl_airplane.
PUBLIC SECTION.

METHODS: constructor IMPORTING
im_name TYPE name_type
im_planetype TYPE saplane-planetype
im_cargo_max TYPE p,
display_attributes REDEFINITION.
PRIVATE SECTION.
DATA: cargo_max TYPE scplane-cargomax.
ENDCLASS.

*------------------------------------------------------------------*
* CLASS lcl_cargo_airplane IMPLEMENTATION *
*------------------------------------------------------------------*
CLASS lcl_cargo_airplane IMPLEMENTATION.
METHOD constructor.

CALL METHOD super->constructor EXPORTING
im_name = im_name
im_planetype = im_planetype.
cargo_max = im_cargo_max.
ENDMETHOD.

METHOD display_attributes.
CALL METHOD super->display_attributes.

WRITE: / 'Maximal cargo: '(004),
at pos_1 cargo_max left-justified, /.
ENDMETHOD.

ENDCLASS.

Include program SAPBC404GENS_LCL_CARRIER_1
*------------------------------------------------------------------*
* CLASS lcl_carrier DEFINITION *
*------------------------------------------------------------------*
CLASS lcl_carrier DEFINITION.

PUBLIC SECTION.

TYPES: BEGIN OF flight_list_type,
connid TYPE sflight-connid,
fldate TYPE sflight-fldate,
airplane TYPE REF TO lcl_airplane,
seatsocc TYPE sflight-seatsocc,
cargo(5) TYPE p DECIMALS 3,
END OF flight_list_type.

METHODS: constructor IMPORTING im_name TYPE string,
get_name returning value(ex_name) type string,
* add a new airplane
add_a_new_airplane IMPORTING
im_airplane TYPE REF TO lcl_airplane,
create_a_new_flight IMPORTING
im_connid TYPE sflight-connid
im_fldate TYPE sflight-fldate
im_airplane TYPE REF TO lcl_airplane
im_seatsocc TYPE sflight-seatsocc
OPTIONAL
im_cargo TYPE p OPTIONAL,
* display airplanes
display_airplanes.
PRIVATE SECTION.
DATA: name TYPE string,
list_of_airplanes TYPE TABLE OF REF TO lcl_airplane,
list_of_flights TYPE TABLE OF flight_list_type.

ENDCLASS.


*------------------------------------------------------------------*
* CLASS lcl_carrier IMPLEMENTATION
*------------------------------------------------------------------*
CLASS lcl_carrier IMPLEMENTATION.

METHOD constructor.
name = im_name.
ENDMETHOD.

METHOD get_name.
ex_name = name.
ENDMETHOD.
* add a new airplane

METHOD add_a_new_airplane.
APPEND im_airplane TO list_of_airplanes.
ENDMETHOD.

METHOD create_a_new_flight.
DATA: wa_list_of_flights TYPE flight_list_type.
wa_list_of_flights-connid = im_connid.
wa_list_of_flights-fldate = im_fldate.
wa_list_of_flights-airplane = im_airplane.
IF im_seatsocc IS INITIAL.
wa_list_of_flights-cargo = im_cargo.
ELSE.
wa_list_of_flights-seatsocc = im_seatsocc.
ENDIF.
APPEND wa_list_of_flights TO list_of_flights.
ENDMETHOD.
* display airplanes
METHOD display_airplanes.
DATA airplane TYPE REF TO lcl_airplane.
LOOP AT list_of_airplanes INTO airplane.
* Polymorphism: calling different method implementations
* by one call
CALL METHOD airplane->display_attributes.
ENDLOOP.
ENDMETHOD.

ENDCLASS.




Hope this helps, Do reward.

2 REPLIES 2
Read only

Former Member
0 Likes
497

Hi,

Please see this [link ( Abap - OOP Report ).|https://www.sdn.sap.com/irj/sdn/wiki?path=/pages/viewpage.action&pageid=26810]

Regards,

Read only

Former Member
0 Likes
498

hi,



REPORT sapbc404gens_inh_polymorphism .
INCLUDE sapbc404gens_lcl_airplane.
INCLUDE sapbc404gens_lcl_passenger_air.
INCLUDE sapbc404gens_lcl_cargo_air.
* New include

INCLUDE sapbc404gens_lcl_carrier_1.
DATA: passenger_airplane TYPE REF TO lcl_passenger_airplane,
cargo_airplane TYPE REF TO lcl_cargo_airplane,
* new reference
carrier TYPE REF TO lcl_carrier.
START-OF-SELECTION.

* CALL METHOD lcl_airplane=>display_n_o_airplanes.
CREATE OBJECT passenger_airplane EXPORTING
im_name = 'LH Berlin'
im_planetype = '747-400'
im_n_o_seats = 580.

CREATE OBJECT cargo_airplane EXPORTING
im_name = 'US Hercules'
im_planetype = 'Galaxy'
im_cargo_max = 30000.
* CALL METHOD passenger_airplane->display_attributes.
* CALL METHOD cargo_airplane->display_attributes.
* CALL METHOD lcl_airplane=>display_n_o_airplanes.
* new coding
* Create a carrier
CREATE OBJECT carrier EXPORTING im_name = 'Lufthansa'.



* Add passenger airplane to airplane list
CALL METHOD carrier->add_a_new_airplane EXPORTING
im_airplane = passenger_airplane.

* Create new passenger airplane
CREATE OBJECT passenger_airplane EXPORTING
im_name = 'LH München'
im_planetype = 'A310-300'
im_n_o_seats = 280.

* Add new passenger airplane to airplane list
CALL METHOD carrier->add_a_new_airplane EXPORTING
im_airplane = passenger_airplane.

* Add cargo airplane to airplane list

CALL METHOD carrier->add_a_new_airplane EXPORTING
im_airplane = cargo_airplane.
* Display all airplanes of airplane list
CALL METHOD carrier->display_airplanes.


Include program SAPBC404GENS_LCL_AIRPLANE
*------------------------------------------------------------------*
* CLASS lcl_airplane DEFINITION *
*------------------------------------------------------------------*
CLASS lcl_airplane DEFINITION.
PUBLIC SECTION.

TYPES: name_type(25) TYPE c.
CONSTANTS: pos_1 TYPE i VALUE 30.

METHODS: constructor IMPORTING
im_name TYPE name_type
im_planetype TYPE saplane-planetype,
set_attributes IMPORTING
im_name TYPE name_type
im_planetype TYPE saplane-planetype,
display_attributes.
CLASS-METHODS: display_n_o_airplanes.


* NEW: protected section
PROTECTED SECTION.
DATA: name TYPE name_type,
planetype TYPE saplane-planetype.
PRIVATE SECTION.
CLASS-DATA: n_o_airplanes TYPE i.
ENDCLASS.


*------------------------------------------------------------------*
* CLASS lcl_airplane IMPLEMENTATION *
*------------------------------------------------------------------*
CLASS lcl_airplane IMPLEMENTATION.

METHOD constructor.
name = im_name.
planetype = im_planetype.
n_o_airplanes = n_o_airplanes + 1.
ENDMETHOD.

METHOD set_attributes.
name = im_name.
planetype = im_planetype.
ENDMETHOD.

METHOD display_attributes.
WRITE: / 'Name of the airplane: '(001), AT pos_1 name,
/ 'Plane type: '(002), AT pos_1 planetype.
ENDMETHOD.


METHOD display_n_o_airplanes.
WRITE: /, / 'Total number of airplanes: '(ca1),
AT pos_1 n_o_airplanes LEFT-JUSTIFIED, /.
ENDMETHOD.
ENDCLASS.


Include program SAPBC404GENS_LCL_PASSENGER_AIR
*------------------------------------------------------------------*
* CLASS lcl_passenger_airplane DEFINITION *
*------------------------------------------------------------------*
CLASS lcl_passenger_airplane DEFINITION INHERITING FROM
lcl_airplane.

PUBLIC SECTION.

METHODS: constructor IMPORTING
im_name TYPE name_type
im_planetype TYPE saplane-planetype
im_n_o_seats TYPE sflight-seatsmax,
display_attributes REDEFINITION.
PRIVATE SECTION.
DATA: n_o_seats TYPE sflight-seatsmax.
ENDCLASS.


*------------------------------------------------------------------*
* CLASS lcl_passenger_airplane IMPLEMENTATION *
*------------------------------------------------------------------*
CLASS lcl_passenger_airplane IMPLEMENTATION.

METHOD constructor.
CALL METHOD super->constructor EXPORTING
im_name = im_name
im_planetype = im_planetype.
n_o_seats = im_n_o_seats.
ENDMETHOD.

METHOD display_attributes.

CALL METHOD super->display_attributes.
WRITE: / 'Number of seats: '(003), 25 n_o_seats, /.
ENDMETHOD.
ENDCLASS.



Include program SAPBC404GENS_LCL_CARGO_AIR
*------------------------------------------------------------------*
* CLASS lcl_cargo_airplane DEFINITION *
*------------------------------------------------------------------*
CLASS lcl_cargo_airplane DEFINITION INHERITING FROM lcl_airplane.
PUBLIC SECTION.

METHODS: constructor IMPORTING
im_name TYPE name_type
im_planetype TYPE saplane-planetype
im_cargo_max TYPE p,
display_attributes REDEFINITION.
PRIVATE SECTION.
DATA: cargo_max TYPE scplane-cargomax.
ENDCLASS.

*------------------------------------------------------------------*
* CLASS lcl_cargo_airplane IMPLEMENTATION *
*------------------------------------------------------------------*
CLASS lcl_cargo_airplane IMPLEMENTATION.
METHOD constructor.

CALL METHOD super->constructor EXPORTING
im_name = im_name
im_planetype = im_planetype.
cargo_max = im_cargo_max.
ENDMETHOD.

METHOD display_attributes.
CALL METHOD super->display_attributes.

WRITE: / 'Maximal cargo: '(004),
at pos_1 cargo_max left-justified, /.
ENDMETHOD.

ENDCLASS.

Include program SAPBC404GENS_LCL_CARRIER_1
*------------------------------------------------------------------*
* CLASS lcl_carrier DEFINITION *
*------------------------------------------------------------------*
CLASS lcl_carrier DEFINITION.

PUBLIC SECTION.

TYPES: BEGIN OF flight_list_type,
connid TYPE sflight-connid,
fldate TYPE sflight-fldate,
airplane TYPE REF TO lcl_airplane,
seatsocc TYPE sflight-seatsocc,
cargo(5) TYPE p DECIMALS 3,
END OF flight_list_type.

METHODS: constructor IMPORTING im_name TYPE string,
get_name returning value(ex_name) type string,
* add a new airplane
add_a_new_airplane IMPORTING
im_airplane TYPE REF TO lcl_airplane,
create_a_new_flight IMPORTING
im_connid TYPE sflight-connid
im_fldate TYPE sflight-fldate
im_airplane TYPE REF TO lcl_airplane
im_seatsocc TYPE sflight-seatsocc
OPTIONAL
im_cargo TYPE p OPTIONAL,
* display airplanes
display_airplanes.
PRIVATE SECTION.
DATA: name TYPE string,
list_of_airplanes TYPE TABLE OF REF TO lcl_airplane,
list_of_flights TYPE TABLE OF flight_list_type.

ENDCLASS.


*------------------------------------------------------------------*
* CLASS lcl_carrier IMPLEMENTATION
*------------------------------------------------------------------*
CLASS lcl_carrier IMPLEMENTATION.

METHOD constructor.
name = im_name.
ENDMETHOD.

METHOD get_name.
ex_name = name.
ENDMETHOD.
* add a new airplane

METHOD add_a_new_airplane.
APPEND im_airplane TO list_of_airplanes.
ENDMETHOD.

METHOD create_a_new_flight.
DATA: wa_list_of_flights TYPE flight_list_type.
wa_list_of_flights-connid = im_connid.
wa_list_of_flights-fldate = im_fldate.
wa_list_of_flights-airplane = im_airplane.
IF im_seatsocc IS INITIAL.
wa_list_of_flights-cargo = im_cargo.
ELSE.
wa_list_of_flights-seatsocc = im_seatsocc.
ENDIF.
APPEND wa_list_of_flights TO list_of_flights.
ENDMETHOD.
* display airplanes
METHOD display_airplanes.
DATA airplane TYPE REF TO lcl_airplane.
LOOP AT list_of_airplanes INTO airplane.
* Polymorphism: calling different method implementations
* by one call
CALL METHOD airplane->display_attributes.
ENDLOOP.
ENDMETHOD.

ENDCLASS.




Hope this helps, Do reward.