mengyuxin

Events

Apr 18th, 2021
587
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. *&---------------------------------------------------------------------*
  2. *& Report ZMENG_EVENTS
  3. *&---------------------------------------------------------------------*
  4. *&事件是在类中定义的一组结果,用于触发其他类中的事件处理程序。
  5. *&当事件被触发时,我们可以调用任何数量的事件处理程序方法。
  6. *&触发器及其处理程序方法之间的链接实际上是在运行时动态决定的。
  7.  
  8. *&在正常的方法调用中,调用程序确定对象或类的哪个方法需要被调用。
  9. *&由于固定处理程序方法未针对每个事件注册,
  10. *&因此在事件处理的情况下,处理程序方法确定需要触发的事件。
  11.  
  12. *&类的事件可以通过使用RAISE EVENT语句触发同一类的事件处理程序方法。
  13. *&对于事件,可以通过使用FOR EVENT子句在相同或不同的类中定义事件处理程序方法。
  14.  
  15. *&类似于类的方法,事件可以有参数接口,但它只有输出参数。
  16. *&输出参数通过RAISE EVENT语句传递到事件处理程序方法,
  17. *&RAISE EVENT语句接收它们作为输入参数。
  18. *&事件通过使用SET HANDLER语句在程序中动态链接到其处理程序方法。
  19.  
  20. *&当触发事件时,应该在所有处理类中执行适当的事件处理程序方法。
  21. *&---------------------------------------------------------------------*
  22. REPORT zmeng_11_events.
  23.  
  24. *&---------------------------------------------------------------------*
  25. * cl_main
  26. *&---------------------------------------------------------------------*
  27. CLASS cl_main DEFINITION.
  28.   PUBLIC SECTION.
  29.     DATA: num1 TYPE i.
  30.  
  31.   METHODS: pro IMPORTING num2 TYPE i.
  32.  
  33.   EVENTS: cutoff.
  34. ENDCLASS.
  35.  
  36. CLASS cl_main IMPLEMENTATION.
  37.   METHOD pro.
  38.     num1 = num2.
  39.     IF num2 >= 2.
  40.       RAISE EVENT cutoff.
  41.     ENDIF.
  42.   ENDMETHOD.
  43. ENDCLASS.
  44.  
  45. *&---------------------------------------------------------------------*
  46. * cl_eventHandler
  47. *&---------------------------------------------------------------------*
  48. CLASS cl_eventhandler DEFINITION.
  49.   PUBLIC SECTION.
  50.  
  51.   METHODS: handling_cutoff FOR EVENT cutoff OF cl_main.
  52. ENDCLASS.
  53.  
  54. CLASS cl_eventhandler IMPLEMENTATION.
  55.   METHOD handling_cutoff.
  56.     WRITE: / 'Handling the CutOff'.
  57.     WRITE: / 'Event has been processed'.
  58.   ENDMETHOD.
  59. ENDCLASS.
  60.  
  61. *&---------------------------------------------------------------------*
  62. * Start of selection
  63. *&---------------------------------------------------------------------*
  64. START-OF-SELECTION.
  65.   DATA: main1         TYPE REF TO cl_main.
  66.   DATA: eventhandler1 TYPE REF TO cl_eventhandler.
  67.  
  68.   CREATE OBJECT main1.
  69.   CREATE OBJECT eventhandler1.
  70.  
  71.   SET HANDLER eventhandler1->handling_cutoff FOR main1.
  72.  
  73.   main1->pro( 4 ).
  74.  
  75.  
  76. "Output result
  77. *Handling the CutOff
  78. *Event has been processed
  79.  
RAW Paste Data

Adblocker detected! Please consider disabling it...

We've detected AdBlock Plus or some other adblocking software preventing Pastebin.com from fully loading.

We don't have any obnoxious sound, or popup ads, we actively block these annoying types of ads!

Please add Pastebin.com to your ad blocker whitelist or disable your adblocking software.

×