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.