Anfang des Inhaltsbereichs

Prozessdokumentation Anlegen eines Controls am Beispiel des SAP Picture  Dokument im Navigationsbaum lokalisieren

Voraussetzungen

Der folgende Ablauf ist für alle von SAP ausgelieferten Custom Controls anwendbar. In den Code-Beispielen wird immer auf das SAP Picture Control eingegangen. Für andere Controls ist aber im Prinzip nur die Klasse des Controls auszutauschen.

Weiterhin geht das Beispiel davon aus, daß das Custom Control in einem Custom Container eingebaut wird. Andere Szenarios werden in der Dokumentation zu den Control Containern beschrieben.

Ablauf

Instanz anlegen

  1. Definieren Sie eine Referenzvariable für den Custom Container, in dem das Custom Control angezeigt werden soll ( Siehe SAP Container)
  2. DATA container TYPE REF TO cl_gui_custom_container.

  3. Definieren Sie eine Referenzvariable für das Picture Control:
  4. DATA picture TYPE REF TO cl_gui_picture.

  5. Erzeugen Sie den Custom Container. Den Bereich ' CUSTOM ' für den Custom Container müssen Sie vorher im Screen Painter angelegt haben. Beim Erzeugen des Containers legen Sie auch seine Lebensdauer fest ( siehe constructor).
  6. CREATE OBJECT container
        EXPORTING container_name = 'CUSTOM'

                  lifetime       = lifetime.

  7. Erzeugen Sie das Picture Control. Für dieses können Sie auch eine Lebensdauer festlegen. Allerdings darf die Lebensdauer nicht größer sein als die seines Containers.
  8. CREATE OBJECT picture
         EXPORTING parent  = container

                  lifetime = lifetime.

    Ereignis anmelden

  9. Das Anmelden von Ereignissen gliedert sich in das Registrieren des Ereignisses am Control Framework, das Definieren einer Behandlermethode und das Anmelden der Behandlermethode. Diese Schritte finden Sie in Registrieren und Verarbeiten von Ereignissen.
  10. Arbeiten mit dem Control

  11. Diese Schritte sind control-spezifisch und werden hier nicht beschrieben.
  12. Abbau der Controls

    In der Regel übernimmt das Lifetime Management den Abbau der verwendeten Controls. Wenn Sie die Controls aber in Ihrem Programm selbst abbauen wollen, führen Sie folgende Schritte aus:

  13. Bauen Sie das Custom Control mit der Methode free am Frontend ab. Sofern Sie den Control Container nicht mehr benötigen, bauen Sie auch diesen ab:
  14. CALL METHOD picture->free
          EXCEPTIONS cntl_error        = 1
                     cntl_system_error = 2.
    CALL METHOD container->free
          EXCEPTIONS cntl_error        = 1
                     cntl_system_error = 2.

    Achtung

    Beachten Sie die Reihenfolge, in der Sie die Controls am Frontend abbauen. Wenn Sie einen Container abbauen, werden nämlich automatisch alle in dem Container eingebundenen Controls auch abgebaut. Der Versuch, ein bereits abgebautes Control erneut abzubauen, führt zu einem Fehler. Mit der Methode is_alive kann nachgeprüft werden, ob das Control schon abgebaut wurde.

  15. Löschen Sie die Referenzvariablen des Custom Controls und des Control Containers:

FREE PICTURE.
FREE CONTAINER.