Code: Alles auswählen.
REPORT z_events.
TYPES: ty_boolean(1),
        ty_kennzeichen(10),
        ty_tankinhalt(4) TYPE p DECIMALS 2,
        ty_ort(30).
CONSTANTS: co_true VALUE 'X',
           co_false VALUE space,
           tankmenge TYPE ty_tankinhalt VALUE '20'.
*----------------------------------------------------------------------*
*       INTERFACE lif_fahrzeug
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
INTERFACE lif_fahrzeug.
  EVENTS: nicht_genung_tankinhalt.
  METHODS:
  get_kennzeichen
      RETURNING value(re_kennzeichen) TYPE ty_kennzeichen,
      get_ort
     RETURNING value(re_ort) TYPE ty_ort,
get_verbrauch
RETURNING value(re_verbrauch) TYPE ty_tankinhalt,
get_tankinhalt
RETURNING value(re_tankinhalt) TYPE ty_tankinhalt,
 tanken
IMPORTING value(im_tankmenge) TYPE ty_tankinhalt,
fahren_nach
IMPORTING
value(im_zielort) TYPE ty_ort
value(im_entfernung) TYPE p,
on_nicht_genug_tankinhalt
FOR EVENT nicht_genug_tankinhalt OF lif_fahrzeug.
ENDINTERFACE.                    "lif_fahrzeug
* Klassen-Definition
CLASS fahrzeug DEFINITION.
  PUBLIC SECTION.
    TYPES: ty_kennzeichen(10),
    ty_tankinhalt(4) TYPE p DECIMALS 2,
    ty_ort(30).
    INTERFACES: lif_fahrzeug.
    METHODS:
    constructor
    IMPORTING
    value(im_kennzeichen)
    TYPE ty_kennzeichen
    value(im_verbrauch)
    TYPE ty_tankinhalt
    value(im_ort)
    TYPE ty_ort
    value(im_tankinhalt)
    TYPE ty_tankinhalt DEFAULT 0.
  PRIVATE SECTION.
    DATA: kennzeichen TYPE ty_kennzeichen,
    tankinhalt TYPE ty_tankinhalt,
    verbrauch_per_100_km TYPE ty_tankinhalt,
    aktueller_ort TYPE ty_ort.
ENDCLASS.                    "fahrzeug DEFINITION
*
CLASS fahrzeug IMPLEMENTATION.
  METHOD constructor. "Initialisierungen
    kennzeichen = im_kennzeichen.
    verbrauch_per_100_km = im_verbrauch.
    aktueller_ort = im_ort.
    tankinhalt = im_tankinhalt.
    SET HANDLER lif_fahrzeug~on_nicht_genug_tankinhalt
      FOR ALL INSTANCES.
  ENDMETHOD.                    "constructor
Code: Alles auswählen.
class fahrzeug definition.
...
methods on_nicht_genug_tankinhalt for event nicht_genug_tankinhalt OF lif_fahrzeug.
Code: Alles auswählen.
 raise event nicht_genug_tankinhalt.
Code: Alles auswählen.
method constructor.
...
set handler lif_fahrzeug~on_nicht_genuegend_tankinhalt for me.
endmethod.