Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- *&---------------------------------------------------------------------*
- *& Report Z_TEST102
- *&
- *&---------------------------------------------------------------------*
- *&
- *&
- *&---------------------------------------------------------------------*
- REPORT z_test102.
- TYPES: ty_fuel TYPE p DECIMALS 2,
- ty_cargo TYPE p DECIMALS 2.
- TYPE-POOLS icon.
- *----------------------------------------------------------------------*
- * CLASS lcx_list_error DEFINITION
- *----------------------------------------------------------------------*
- *
- *----------------------------------------------------------------------*
- CLASS lcx_list_error DEFINITION INHERITING FROM cx_static_check.
- PUBLIC SECTION.
- METHODS get_exc_text
- RETURNING value(result) TYPE string.
- ENDCLASS. "lcx_list_error DEFINITION
- *---------------------------------------------------------------------*
- * CLASS lcx_list_error IMPLEMENTATION
- *---------------------------------------------------------------------*
- *
- *---------------------------------------------------------------------*
- CLASS lcx_list_error IMPLEMENTATION.
- METHOD get_exc_text.
- result = 'The list contains an error.'(err).
- ENDMETHOD. "get_exc_text
- ENDCLASS. "lcx_list_error IMPLEMENTATION
- *----------------------------------------------------------------------*
- * CLASS lcl_airplane DEFINITION
- *----------------------------------------------------------------------*
- *
- *----------------------------------------------------------------------*
- CLASS lcl_airplane DEFINITION.
- PUBLIC SECTION.
- "---------------------------------------------
- CONSTANTS: pos_1 TYPE i VALUE 30.
- METHODS: constructor IMPORTING
- im_name TYPE string
- im_planetype TYPE saplane-planetype.
- METHODS: display_attributes
- RAISING lcx_list_error.
- CLASS-METHODS: display_n_o_airplanes.
- EVENTS: airplane_created.
- PRIVATE SECTION.
- "----------------------------------------------
- METHODS: get_technical_attributes
- IMPORTING im_type TYPE saplane-planetype
- EXPORTING ex_weight TYPE s_plan_wei
- ex_tankcap TYPE s_capacity
- RAISING cx_bc401_invalid_planetype.
- DATA: name TYPE string,
- planetype TYPE saplane-planetype.
- CLASS-DATA: n_o_airplanes TYPE i.
- ENDCLASS. "lcl_airplane DEFINITION
- *------------------------------------------------------------------*
- * CLASS lcl_airplane IMPLEMENTATION *
- *------------------------------------------------------------------*
- CLASS lcl_airplane IMPLEMENTATION.
- METHOD constructor.
- name = im_name.
- planetype = im_planetype.
- n_o_airplanes = n_o_airplanes + 1.
- RAISE EVENT airplane_created.
- ENDMETHOD. "constructor
- METHOD display_attributes.
- DATA: weight TYPE saplane-weight,
- cap TYPE saplane-tankcap,
- r_exception TYPE REF TO cx_root,
- exc_text TYPE string.
- WRITE: / icon_ws_plane AS ICON,
- / 'Name of Airplane'(001), AT pos_1 name,
- / 'Type of airplane: '(002), AT pos_1 planetype.
- * handle exception in case of invalid planetype:
- TRY.
- get_technical_attributes( EXPORTING im_type = planetype
- IMPORTING ex_weight = weight
- ex_tankcap = cap ).
- WRITE: / 'weight:'(003), weight,
- 'tankkap:'(004), cap.
- CATCH cx_bc401_invalid_planetype INTO r_exception.
- exc_text = r_exception->get_text( ).
- WRITE: / exc_text COLOR COL_NEGATIVE.
- "Program terminates here!
- RAISE EXCEPTION TYPE lcx_list_error
- EXPORTING previous = r_exception.
- ENDTRY.
- ENDMETHOD. "display_attributes
- METHOD display_n_o_airplanes.
- WRITE: /, / 'number of airplanes: '(ca1),
- AT pos_1 n_o_airplanes LEFT-JUSTIFIED, /.
- ENDMETHOD. "display_n_o_airplanes
- METHOD get_technical_attributes.
- SELECT SINGLE weight tankcap FROM saplane
- INTO (ex_weight, ex_tankcap)
- WHERE planetype = im_type.
- IF sy-subrc <> 0.
- RAISE EXCEPTION TYPE cx_bc401_invalid_planetype
- EXPORTING planetype = im_type.
- ENDIF.
- ENDMETHOD. "get_technical_attributes
- ENDCLASS. "lcl_airplane IMPLEMENTATION
- START-OF-SELECTION.
- DATA: r_airplane TYPE REF TO lcl_airplane.
- ***** Passenger Plane ********************************************
- CREATE OBJECT r_airplane EXPORTING
- im_name = 'LH BERLIN'
- im_planetype = '400-400'. "'747-400'.
- lcl_airplane=>display_n_o_airplanes( ).
- CALL METHOD r_airplane->display_attributes.
Add Comment
Please, Sign In to add comment