Monday, September 9, 2013

EVENT PARAMETERS

*&---------------------------------------------------------------------*
*& Report  ZRP_EVENTS_PARAMETERS
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*

REPORT  ZRP_EVENTS_PARAMETERS.


PARAMETERS : P_VAL1 TYPE I,
             P_VAL2 TYPE I.
DATA : RESULT TYPE I.

*----------------------------------------------------------------------*
*       CLASS c1 DEFINITION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS C1 DEFINITION .
  PUBLIC SECTION.
    EVENTS : EVENT1 EXPORTING VALUE(NUM1) TYPE I
                             VALUE(NUM2) TYPE I.
    METHODS : METH1 FOR EVENT EVENT1 OF C1
                                IMPORTING NUM1 NUM2.
    METHODS : METH2 IMPORTING VAL1 TYPE I
                              VAL2 TYPE I.
ENDCLASS.                    "c1 DEFINITION

*----------------------------------------------------------------------*
*       CLASS c1 IMPLEMENTATION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS C1 IMPLEMENTATION.
  METHOD METH1.
    WRITE : / 'the value of num1', NUM1,
            / 'the value of num2', NUM2.
    RESULT = NUM1 + NUM2.
    WRITE : / 'the result', RESULT.
  ENDMETHOD.                                                "meth1
  METHOD METH2.

    RAISE EVENT EVENT1 EXPORTING NUM1 = VAL1
                                 NUM2 = VAL2 .
  ENDMETHOD.                                                "meth2
ENDCLASS.                    "c1 IMPLEMENTATION

START-OF-SELECTION.
  DATA : OBJ TYPE REF TO C1.

  CREATE OBJECT OBJ.
  SET HANDLER OBJ->METH1 FOR ALL INSTANCES.
  CALL METHOD OBJ->METH2
    EXPORTING
      VAL1 = P_VAL1

      VAL2 = P_VAL2.


PROGRAM2:

*&---------------------------------------------------------------------*
*& Report  ZRP_EVENTS_PARAMETERS1
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*

REPORT  ZRP_EVENTS_PARAMETERS1.

PARAMETERs : p_var1 TYPE i.
   data : result type i.
class c1 DEFINITION .
  PUBLIC SECTION.
   methods : add1 IMPORTING var1 TYPE i.
   events : event1 EXPORTING VALUE(val1) TYPE i.

  ENDClass.

class c1 IMPLEMENTATION.
  METHOD add1.

   RAISE EVENT event1 EXPORTING val1 = result.
     WRITE : / result.
    ENDMETHOD.
    ENDCLASS.

class c2 DEFINITION .
  PUBLIC SECTION.
  methods : meth1 FOR EVENT event1 of c1 IMPORTING val1.
  ENDCLASS.

class c2 IMPLEMENTATION.
  METHOD meth1.
      result = 10 + val1.
        ENDMETHOD.
  ENDCLASS.

  START-OF-SELECTION.
  data : obj1 TYPE REF TO c1,
         obj2 TYPE REF TO c2.
  CREATE OBJECT : obj1,obj2.
  set HANDLER obj2->meth1 FOR ALL INSTANCEs.

  DO 10  TIMES.
  CALL METHOD obj1->add1 EXPORTING var1 = p_var1.
  ENDDO.

No comments:

Post a Comment