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

本文介绍了一个ABAP程序的设计与实现,通过定义事件和事件处理方法,该程序能够从sflight表中选择特定航空公司(carrid)的数据,并在没有匹配数据时触发特定事件。文章详细展示了如何创建类、定义类型、数据结构和事件,以及如何实现数据获取、显示和无数据情况下的处理。
1422

被折叠的 条评论
为什么被折叠?



