ABAP OBJECTS OVEWVIEW

来源:互联网 发布:大数据行业竞争格局 编辑:程序博客网 时间:2024/06/09 21:44
 

*&---------------------------------------------------------------------*
*& Report  Z1807SAPBC401_AIRS_MAIN_A
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*

REPORT  Z1807SAPBC401_AIRS_MAIN_A. 

TABLES:SAPLANE.


TYPE-POOLS ICON.

 

*&---------------------------------------------------------------------*
*& Include SAPBC401_AIRS_A *
*&---------------------------------------------------------------------*
*------------------------------------------------------------------*
* CLASS lcl_airplane DEFINITION *
*------------------------------------------------------------------*
CLASS LCL_AIRPLANE DEFINITION.

  PUBLIC SECTION.

    CONSTANTS: POS_1 TYPE I VALUE 30.
    METHODS: SET_ATTRIBUTES IMPORTING
                            IM_NAME TYPE STRING
                            IM_PLANETYPE TYPE SAPLANE-PLANETYPE,
             DISPLAY_ATTRIBUTES.
    CLASS-METHODS GET_N_O_AIRPLANES RETURNING VALUE(RE_COUNT) TYPE I .
    CLASS-METHODS: DISPLAY_N_O_AIRPLANES.

  PRIVATE SECTION.

    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 SET_ATTRIBUTES.

    NAME = IM_NAME.
    PLANETYPE = IM_PLANETYPE.
* doesn’t make sense so much -
* only in order to get an effect
* after calling display_n_o_airplanes:
    N_O_AIRPLANES = N_O_AIRPLANES + 1.

  ENDMETHOD. "set_attributes

  METHOD DISPLAY_ATTRIBUTES.

    WRITE: / ICON_WS_PLANE AS ICON,
    / 'NAME DES FLUGZEUGS:'(001),AT POS_1 NAME,
    / 'FLUGZEUGTYP'(002),AT POS_1 PLANETYPE.
  ENDMETHOD. "display_attributes

  METHOD DISPLAY_N_O_AIRPLANES.

    WRITE:/ 'Gesamtzahl der Flugzeuge',
       AT POS_1 N_O_AIRPLANES LEFT-JUSTIFIED.

  ENDMETHOD. "display_n_o_airplanes


  METHOD GET_N_O_AIRPLANES.
    RE_COUNT = N_O_AIRPLANES.

  ENDMETHOD.                    "get_n_o_airplanes
ENDCLASS. "lcl_airplane IMPLEMENTATION

 

DATA:R_PLANE TYPE REF TO LCL_AIRPLANE,
     PLANE_LIST TYPE TABLE OF REF TO LCL_AIRPLANE,
     COUNT TYPE I.

START-OF-SELECTION.
  LCL_AIRPLANE=>DISPLAY_N_O_AIRPLANES( ).

  CREATE OBJECT R_PLANE.
  APPEND R_PLANE TO PLANE_LIST.
  R_PLANE->SET_ATTRIBUTES( IM_NAME = 'lh berlin'
                           IM_PLANETYPE = 'a321' ).

  CREATE OBJECT R_PLANE.
  APPEND R_PLANE TO PLANE_LIST.
  R_PLANE->SET_ATTRIBUTES( IM_NAME = 'aa new york'
                           IM_PLANETYPE = '747-400' ).

  CREATE OBJECT R_PLANE.
  APPEND R_PLANE TO PLANE_LIST.
  R_PLANE->SET_ATTRIBUTES( IM_NAME = 'us hercules'
                           IM_PLANETYPE = '747-500' ).

  LOOP AT PLANE_LIST INTO R_PLANE.
    R_PLANE->DISPLAY_ATTRIBUTES( ).
  ENDLOOP.

  COUNT = LCL_AIRPLANE=>GET_N_O_AIRPLANES( ).
  SKIP 2.
  WRITE: / 'gesamtzahl der flugzeuge', COUNT.