*&---------------------------------------------------------------------*
*& Report ZH_EVENT1
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT ZH_EVENT3.
PARAMETERS:c_name(50) type C,
P_NAME(50) TYPE C DEFAULT 'GAGAN'.
class honda_car DEFINITION.
PUBLIC SECTION.
****** EVENTS
EVENTS: ClEANER EXPORTING value(ceo_name1) type C.
**** Method trigering Event :- Tringering Method
METHODS:HONDA_CEO importing value(ceo_name) type C.
ENDCLASS.
class honda_car IMPLEMENTATION.
**---------------------------------------------------------------------------------
---------
* EVENT RAISING
METHOD ..-------------------------------------------------------------------
**---------------------------------------------------------------------------------
---------
METHOD:HONDA_CEO.
write:/30 CEO_NAME, 'HONDA CAR CEO CALLING CLEANER' COLOR 7.
SKIP 2.
****** FOR GAGAN
IF CEO_NAME = 'GAGAN'.
CONCATENATE ceo_name '( TOP CLASS CEO )' INTO CEO_NAME SEPARATED BY SPACE.
**** rasing an event with sending back TOP CLASS
RAISE EVENT CLEANER EXPORTING CEO_NAME1 = CEO_NAME.
ENDIF.
**************** FOR LOKESH
IF CEO_NAME = 'LOKESH'.
CONCATENATE ceo_name '( LOW CLASS CEO )' INTO CEO_NAME SEPARATED BY SPACE.
**** rasing an event with sending back TOP CLASS
RAISE EVENT CLEANER EXPORTING CEO_NAME1 = CEO_NAME.
ENDIF.
ENDMETHOD.
ENDCLASS.
****-------------------------------------------------------------------------------
----
*** CLASS FOR HANDLER METHOD.
**---------------------------------------------------------------------------------
-----
*
CLASS CLEANER DEFINITION.
PUBLIC SECTION.
methods:constructor IMPORTING i_lcl type C.
**------------------------------------------------------------
* handler method.
**------------------------------------------------------------
methods cl_cleaner for event cleaner of honda_car IMPORTING CEO_NAME1.
PROTECTED SECTION.
data:lcl(50) type C.
ENDCLASS.
*
CLASS CLEANER IMPLEMENTATION.
method constructor.
lcl = i_lcl.
ENDMETHOD.
method cl_cleaner.
Write:/ 'CEO OF HONDA CAR = ', CEO_NAME1 COLOR 5,
'CLEANER = ', lcl color 2, 'Low class cleaner' color 7.
endmethod.
ENDCLASS.
START-OF-SELECTION.
*
DATA:H1 TYPE REF TO HONDA_CAR,
C1 TYPE REF TO CLEANER.
**
CREATE OBJECT H1 .
Create OBJECT C1 EXPORTING I_LCL = C_NAME .
* set the event handler.
SET HANDLER C1->CL_CLEANER FOR H1.
CALL METHOD H1->HONDA_CEO EXPORTING CEO_NAME = P_NAME .
at SELECTION-SCREEN on p_name.
** IF NOT LOKESH OR GAGAN
IF p_name = 'LOKESH' OR p_name = 'GAGAN'.
MESSAGE 'DONE' TYPE 'S'.
ELSE.
MESSAGE 'NAME SHOULD BE ( GAGAN OR LOKESH )' TYPE 'E'.
ENDIF.