*&---------------------------------------------------------------------*
*& 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.