*&---------------------------------------------------------------------*
*& Report Y_JAMES_OO_DAY6
*&
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
REPORT Y_JAMES_OO_DAY6.
TABLES:sflight.
SELECT-OPTIONS: s_carrid FOR sflight-carrid.
CLASS c1 DEFINITION.
PUBLIC SECTION .
TYPES:
BEGIN OF t_sflight,
carrid TYPE sflight-carrid,
connid TYPE sflight-connid,
fldate TYPE sflight-fldate,
END OF t_sflight.
DATA:
gt_itab TYPE STANDARD TABLE OF t_sflight,
gs_itab TYPE sflight.
EVENTS:e1.
METHODS:
get_data,display_data,no_data
FOR EVENT e1 of c1.
ENDCLASS.
CLASS c1 IMPLEMENTATION.
METHOD:get_data.
SELECT carrid
connid
fldate
FROM sflight
INTO TABLE gt_itab
WHERE carrid IN s_carrid.
IF sy-subrc <> 0.
RAISE EVENT e1.
ELSE.
CALL METHOD display_data.
ENDIF.
ENDMETHOD.
METHOD:display_data.
LOOP AT gt_itab INTO gs_itab.
WRITE:/10 gs_itab-carrid.
WRITE:/40 gs_itab-connid.
WRITE:/60 gs_itab-fldate.
ENDLOOP.
ENDMETHOD.
METHOD: no_data.
WRITE:/10 'There are no match data!'.
ENDMETHOD.
ENDCLASS.
DATA:go_obj TYPE REF TO c1.
START-OF-SELECTION.
CREATE OBJECT:go_obj.
SET HANDLER go_obj->no_data FOR:go_obj.
CALL METHOD go_obj->get_data.