Show TOC

KontextmenüLocate this document in the navigation structure

Verwendung
Achtung

Kontextmenüs werden vom SAP GUI for HTML nicht unterstützt.

Das Kontextmenü (rechte Maustaste, SHIFT+F10 ) ermöglicht das Anzeigen von kontextabhängigen Menüs. Der Kontext wird über die Postition des Mausanzeigers definiert, an der der Benutzer das Kontextmenü aufgerufen hat.

Der Benutzer kann über das Kontextmenü Funktionen auswählen, die für den aktuellen Kontext relevant sind.

Funktionsumfang

Soll auf einem Custom Control ein Kontextmenü implementiert werden, müssen Sie das Ereignis registrieren, das vom Benutzer durch Rechtsklick ausgelöst wird ( context_menu ). Das Ereignis für das Auswählen eines Eintrags im Kontextmenü (Ereignis context_menu_selected ) wird entweder von der Control-Verschalung automatisch registriert (z.B. SAP Tree) oder muss explizit registriert werden (z.B. SAP Picture).

Fordert der Benutzer auf einem Objekt ein Kontextmenü an, wird über den normalen Ereignismechanismus das Anwendungsprogramm aufgerufen. In der Ereignisbehandlermethode zum Ereignis context_menu erhält das Programm als Ereignisparameter eine Menüreferenz. Das Programm benutzt diese Menüreferenz, um das anzuzeigende Menü aufzubauen. Dabei können mit dem Menu Painter definierte Menüs oder dynamisch aufgebaute Menüs benutzt werden. Nach Verlassen der Ereignisbehandlermethode wird das Kontextmenü automatisch angezeigt.

Achtung

Das SAP Picture stellt eine Ausnahme dar. Hier bekommen Sie keine Menüreferenz als Ereignisparameter übergeben.

Wird eine Menüfunktion des Kontextmenüs ausgewählt, wird wiederum ein Ereignis ausgelöst, das an das Anwendungsprogramm übergeben wird. Auch auf dieses Ereignis muss die Anwendung eine Behandlermethode registrieren. Verwenden Sie die Behandlermethode, um den Funktionscode zu analysieren. Dieser wird an die Methode als Ereignisparameter übergeben.

Aktivitäten
  • Sie registrieren das Ereignis context_menu und context_menu_selected durch die Methode set_registered_events . Die Identifikation des Ereignisses ist vom jeweiligen Control abhängig. Dies wird in der dazugehörigen Dokumentation beschrieben.

  • Sie müssen Ereignisbehandlermethoden für beide Ereignisse in Ihrer Anwendung definieren.

    Achtung

    Der SAP Tree bildet eine Ausnahme bei der Registrierung von den Ereignissen. Im SAP Tree muss nur das Ereignis context_menu registriert werden. Das Ereignis context_menu_selected wird automatisch von der Control-Verschalung registriert.

Aufbau des Kontextmenüs

In der Implementierung der Behandlermethode für das Ereignis context_menu muss das Menü dem Control zugeordnet werden. Dabei muss unter Umständen geprüft werden, in welchem Kontext das Kontextmenü aufgerufen wurde.

Der Aufbau des Kontextmenüs erfolgt über die Klasse CL_CTMENU . Fast alle Control-Verschalungen übergeben eine Kontextmenü-Objektreferenz als Ereignisparameter des Ereignisses context_menu . Ist dies nicht der Fall (z.B. beim SAP Picture), müssen Sie ein Objekt der Klasse CL_CTMENU anlegen.

Auf das Kontextmenü-Objekt können Sie folgenden Methoden anwenden:

Methode

Beschreibung

LOAD_GUI_STATUS

Laden eines im Menu Painter vordefinierten Kontextmenüs (siehe unten)

ADD_FUNCTION

Hinzufügen einer Funktion

ADD_MENU

Hinzufügen eines im Menu Painter definierten Menüs

ADD_SUBMENU

Hinzufügen eines im Menu Painter definierten Menüs als Untermenü

ADD_SEPARATOR

Hinzufügen einer Trennlinie

RESET

Zurücksetzen auf Initialwert

HIDE FUNCTIONS

Ausblenden einer Funktion

SHOW_FUNCTIONS

Einblenden einer Funktion

DISABLE_FUNCTIONS

Deaktivieren einer Funktion

ENABLE_FUNCTIONS

Aktivieren einer Funktion

Nach Verlassen der Ereignisbehandlermethode wird das Kontextmenü automatisch angezeigt. Ausnahmen sind das SAP Picture Control und das SAP Toolbar Control. Bei diesen Controls muss das Kontextmenü explizit über die Methode display_context_menu angezeigt werden.

Auswerten des Funktionscodes

Die Interpretation des ausgewählten Menüpunktes erfolgt in der Behandlermethode zum Ereignis context_menu_selected . Über den Funktionscode wird das ausgewählte Menü identifiziert und eine entsprechende Reaktion ausgeführt.