Guest User

Untitled

a guest
Dec 12th, 2018
86
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.32 KB | None | 0 0
  1. *&---------------------------------------------------------------------*
  2. *& Report Z_TEST102
  3. *&
  4. *&---------------------------------------------------------------------*
  5. *&
  6. *&
  7. *&---------------------------------------------------------------------*
  8.  
  9. REPORT z_test102.
  10. TYPES: ty_fuel TYPE p DECIMALS 2,
  11. ty_cargo TYPE p DECIMALS 2.
  12. TYPE-POOLS icon.
  13.  
  14. *----------------------------------------------------------------------*
  15. * CLASS lcx_list_error DEFINITION
  16. *----------------------------------------------------------------------*
  17. *
  18. *----------------------------------------------------------------------*
  19. CLASS lcx_list_error DEFINITION INHERITING FROM cx_static_check.
  20. PUBLIC SECTION.
  21. METHODS get_exc_text
  22. RETURNING value(result) TYPE string.
  23. ENDCLASS. "lcx_list_error DEFINITION
  24. *---------------------------------------------------------------------*
  25. * CLASS lcx_list_error IMPLEMENTATION
  26. *---------------------------------------------------------------------*
  27. *
  28. *---------------------------------------------------------------------*
  29. CLASS lcx_list_error IMPLEMENTATION.
  30. METHOD get_exc_text.
  31. result = 'The list contains an error.'(err).
  32. ENDMETHOD. "get_exc_text
  33. ENDCLASS. "lcx_list_error IMPLEMENTATION
  34.  
  35. *----------------------------------------------------------------------*
  36. * CLASS lcl_airplane DEFINITION
  37. *----------------------------------------------------------------------*
  38. *
  39. *----------------------------------------------------------------------*
  40. CLASS lcl_airplane DEFINITION.
  41. PUBLIC SECTION.
  42. "---------------------------------------------
  43. CONSTANTS: pos_1 TYPE i VALUE 30.
  44. METHODS: constructor IMPORTING
  45. im_name TYPE string
  46. im_planetype TYPE saplane-planetype.
  47. METHODS: display_attributes
  48. RAISING lcx_list_error.
  49. CLASS-METHODS: display_n_o_airplanes.
  50. EVENTS: airplane_created.
  51. PRIVATE SECTION.
  52. "----------------------------------------------
  53. METHODS: get_technical_attributes
  54. IMPORTING im_type TYPE saplane-planetype
  55. EXPORTING ex_weight TYPE s_plan_wei
  56. ex_tankcap TYPE s_capacity
  57. RAISING cx_bc401_invalid_planetype.
  58. DATA: name TYPE string,
  59. planetype TYPE saplane-planetype.
  60. CLASS-DATA: n_o_airplanes TYPE i.
  61. ENDCLASS. "lcl_airplane DEFINITION
  62. *------------------------------------------------------------------*
  63. * CLASS lcl_airplane IMPLEMENTATION *
  64. *------------------------------------------------------------------*
  65. CLASS lcl_airplane IMPLEMENTATION.
  66. METHOD constructor.
  67. name = im_name.
  68. planetype = im_planetype.
  69. n_o_airplanes = n_o_airplanes + 1.
  70. RAISE EVENT airplane_created.
  71. ENDMETHOD. "constructor
  72. METHOD display_attributes.
  73. DATA: weight TYPE saplane-weight,
  74. cap TYPE saplane-tankcap,
  75. r_exception TYPE REF TO cx_root,
  76. exc_text TYPE string.
  77. WRITE: / icon_ws_plane AS ICON,
  78. / 'Name of Airplane'(001), AT pos_1 name,
  79. / 'Type of airplane: '(002), AT pos_1 planetype.
  80. * handle exception in case of invalid planetype:
  81. TRY.
  82. get_technical_attributes( EXPORTING im_type = planetype
  83. IMPORTING ex_weight = weight
  84. ex_tankcap = cap ).
  85. WRITE: / 'weight:'(003), weight,
  86. 'tankkap:'(004), cap.
  87. CATCH cx_bc401_invalid_planetype INTO r_exception.
  88. exc_text = r_exception->get_text( ).
  89. WRITE: / exc_text COLOR COL_NEGATIVE.
  90.  
  91. "Program terminates here!
  92. RAISE EXCEPTION TYPE lcx_list_error
  93. EXPORTING previous = r_exception.
  94.  
  95. ENDTRY.
  96. ENDMETHOD. "display_attributes
  97. METHOD display_n_o_airplanes.
  98. WRITE: /, / 'number of airplanes: '(ca1),
  99. AT pos_1 n_o_airplanes LEFT-JUSTIFIED, /.
  100. ENDMETHOD. "display_n_o_airplanes
  101. METHOD get_technical_attributes.
  102. SELECT SINGLE weight tankcap FROM saplane
  103. INTO (ex_weight, ex_tankcap)
  104. WHERE planetype = im_type.
  105. IF sy-subrc <> 0.
  106. RAISE EXCEPTION TYPE cx_bc401_invalid_planetype
  107. EXPORTING planetype = im_type.
  108. ENDIF.
  109. ENDMETHOD. "get_technical_attributes
  110. ENDCLASS. "lcl_airplane IMPLEMENTATION
  111.  
  112.  
  113. START-OF-SELECTION.
  114.  
  115. DATA: r_airplane TYPE REF TO lcl_airplane.
  116.  
  117. ***** Passenger Plane ********************************************
  118. CREATE OBJECT r_airplane EXPORTING
  119. im_name = 'LH BERLIN'
  120. im_planetype = '400-400'. "'747-400'.
  121.  
  122.  
  123. lcl_airplane=>display_n_o_airplanes( ).
  124. CALL METHOD r_airplane->display_attributes.
Add Comment
Please, Sign In to add comment