Anfang des Inhaltsbereichs

Behandlung von Ereignissen  Dokument im Navigationsbaum lokalisieren

Verwendung

Der Benutzer eines Applikationsprogramms kann Ereignisse auf Custom Controls auslösen. Das Applikationsprogramm bekommt dann die Kontrolle und kann auf das Ereignis reagieren.

Typische Ereignisse sind z.B. Doppelklick und Drag & Drop.

Integration

Wie in Architektur des Control Frameworks angedeutet, besitzt sowohl der Automation Controller als auch das OO Control Framework eine Tabelle aller relevanten Control-Ereignisse. Diese Tabellen müssen vom Applikationsprogramm aufgebaut werden. Die Ereignistabelle am Frontend besteht aus Control-Instanz und Ereignis. Am Backend enthält die Ereignistabelle zusätzlich die ABAP-Behandlermethode für die Ereignisse.

Der Aufbau der Tabellen erfolgt über eine spezielle Methode des OO Control Frameworks ( control->set_registered_events ). Bei der Registrierung des Ereignisses muß die Applikation festlegen, ob das Ereignis als Systemereignis oder als Applikationsereignis interpretiert werden soll:

Die zum Ereignis definierte Behandlermethode wird automatisch vom System aufgerufen. Mit der Methode set_new_ok_code haben Sie allerdings die Möglichkeit, PAI und PBO auszulösen und einen OK_CODE zu setzen, den Sie dann in einem PAI-Modul interpretieren können.

Zum Festlegen der Behandlermethode eines Ereignisses muß das Applikationsprogramm über das ABAP-Sprachelement SET HANDLER eine Behandlermethode registrieren. Die Behandlermethode muß in dem Applikationsprogramm als Methode einer (lokalen) Klasse angelegt werden. Es steht Ihnen frei, die Behandlermethode als Instanzmethode oder statische Methode anzulegen.

Diese Grafik wird im zugehörigen Text erklärt

Funktionsumfang

Wird auf einem Custom Control ein Ereignis ausgelöst, überprüft der Automation Controller, ob dieses Ereignis in seiner Tabelle registriert wurde. Wurde das Ereignis nicht registriert, wird das Ereignis vom Automation Controller ignoriert. Wurde es dagegen registriert, generiert der Automation Controller einen OK_CODE , der an das OO Control Framework weitergeleitet wird.

Je nach Art des Ereignisses wird dann entweder direkt (bei einem Systemereignis) oder nach Aufruf der statischen Methode CL_GUI_CFW=>DISPATCH (bei einem Applikationsereignis) die zum Ereignis registrierte Behandlermethode aufgerufen. Dabei wird über den Ereignisparameter sender die Objektreferenz des Controls, welches das Ereignis ausgelöst hat, an die Behandlermethode übergeben.

Die statische Methode CL_GUI_CFW=>DISPATCH muß zur Auswertung von Applikationsereignissen innerhalb der PAI-Module aufgerufen werden.

Hinweis

Der OK_CODE eines Ereignisses wird durch den Aufruf der Methode CL_GUI_CFW=>DISPATCH "verbraucht". Daher führt ein zweiter Aufruf der Methode nicht zu einem erneuten Anspringen der Behandlermethode.

Über den Parameter RC der Methode CL_GUI_CFW=>DISPATCH erhalten Sie Informationen, ob das Ereignis erfolgreich an eine Behandlermethode weitergeleitet werden konnte.

Diese Grafik wird im zugehörigen Text erklärt