Statusikonen 

Statusikonen sind Anzeigeelemente, die der graphischen Darstellung eines Zustands des Programms dienen können. Prinzipiell können zwar alle im SAP GUI vorhandenen Ikonen verwendet werden, die Auswahl sollte sich aber auf die dafür vorgesehenen Ikonen für Statusanzeigen des SAP Style Guide beschränken.

Statusikonen können nur im graphischen Screen Painter angelegt werden. Beim Anlegen einer Statusikone auf einem Dynpro, wird dieser ein Name und ein Dynprofeld zugewiesen. Dieses Dynprofeld wird Statusfeld genannt. Die visualisierte Länge des Dynprofelds bestimmt den Platz, den die Statusikone auf dem Bildschirmbild einnehmen kann. Zusätzlich zur eigentlichen Ikone kann hinter dieser Platz für einen erklärenden Text reserviert werden. Die eigentliche Länge (defLg) des Statusfelds muß ausreichend für die interne Darstellung der Ikone, den eventuellen Text und einen optionalen Quickinfo-Text sein. Beim Anlegen der Statusikone im Screen Painter erscheint ein Platzhalter auf dem Bildschirmbild. Die eigentliche Ikone, der erklärende Text und der Quickinfo-Text müssen zum Zeitpunkt PBO im ABAP-Programm definiert werden.

Zur Definition der Statusikone im ABAP-Programm, muß in diesem ein gleichnamiges Feld mit Bezug auf den Dictionary-Typ ICONS-TEXT angelegt und zum Zeitpunkt PBO mit den technischen Informationen der Ikone gefüllt werden. Beim Senden des Bildschirmbilds wird das Statusfeld mit diesen Informationen versorgt und die Ikone dargestellt.

Zum Füllen des Felds im ABAP-Programm verwendet man den Funktionsbaustein ICON_CREATE. Die Import-Parameter sind:

Hier muß der Name der gewünschten Ikone angegeben werden. Die Namen von Ikonen findet man im SAP Style Guide, im Include-Programm <ICON> oder in den entsprechenden Eingabehilfen von Screen oder Menu Painter.

Hier kann ein erklärender Text angegeben werden, der hinter der Ikone auf dem Bildschirmbild erscheint.

Hier kann ein Quickinfo-Text angegeben werden, der dann erscheint, wenn der Mauszeiger während der Bildschirmanzeige auf die Ikone bewegt wird.

Dieses Flag schaltet die Anzeige des Quickinfo-Texts ein oder aus.

Der Funktionsbaustein verwandelt diese Eingaben in eine Zeichenkette und weist diese dem Export-Parameter RESULT zu. Durch Übernahme des Export-Parameters RESULT in das Statusfeld, wird dieses mit den notwendigen Informationen für die Anzeige der Statusikone gefüllt.

Statusikonen.

REPORT demo_dynpro_status_icons.

DATA value TYPE i VALUE 1.

DATA: status_icon TYPE icons-text,
      icon_name(20) TYPE c,
      icon_text(10) TYPE c.

CALL SCREEN 100.

MODULE set_icon OUTPUT.

  SET PF-STATUS 'SCREEN_100'.

  CASE value.
    WHEN 1.
      icon_name = 'ICON_GREEN_LIGHT'.
      icon_text =  text-003.
    WHEN 2.
      icon_name = 'ICON_YELLOW_LIGHT'.
      icon_text =  text-002.
    WHEN 3.
      icon_name = 'ICON_RED_LIGHT'.
      icon_text =  text-001.
  ENDCASE.

  CALL FUNCTION 'ICON_CREATE'
       EXPORTING
            name                  = icon_name
            text                  = icon_text
            info                  = 'Status'
            add_stdinf            = 'X'
       IMPORTING
            result                = status_icon
       EXCEPTIONS
            icon_not_found        = 1
            outputfield_too_short = 2
            OTHERS                = 3.

  CASE sy-subrc.
    WHEN 1.
      MESSAGE e888(sabapdocu) WITH text-004.
    WHEN 2.
      MESSAGE e888(sabapdocu) WITH text-005.
    WHEN 3.
      MESSAGE e888(sabapdocu) WITH text-006.
  ENDCASE.

ENDMODULE.

MODULE cancel INPUT.
  LEAVE PROGRAM.
ENDMODULE.

MODULE change.
  CASE value.
    WHEN 1.
      value = 2.
    WHEN 2.
      value = 3.
    WHEN 3.
      value = 1.
  ENDCASE.
ENDMODULE.

Die statische Folgedynpronummer von Dynpro 100 ist 100 und sein statisches Layout ist:

Es ist ein Statusfeld namens STATUS_ICON, mit einer visualisierten Länge 12 und einer definierten Länge 26 angelegt. Die Statusikone und der Platz für einen Text werden im Screen Painter symbolisch angedeutet.

Die Bildschirmablauflogik ist:

PROCESS BEFORE OUTPUT.
  MODULE set_icon.

PROCESS AFTER INPUT.
  MODULE cancel AT EXIT-COMMAND.
  MODULE change.

Im Dialogmodul SET_ICON werden in Abhängigkeit des programmlokalen Felds VALUE verschiedene Werte an den Funktionsbaustein ICON_CREATE übergeben. Das Statusfeld STATUS_ICON wird mit dessen Export-Parameter RESULT versorgt. Dadurch wird die entsprechende Ikone mit Text und Quickinfo auf dem Bildschirm angezeigt. Bei Auswahl der Taste WEITER wird zum Zeitpunkt PAI das Feld VALUE geändert, wodurch zu PBO eine andere Ikone definiert wird. Folgende Ikonen und Texte erscheinen hier hintereinander:

  Niedrig

  Mittel

  Hoch

Der Quickinfo-Text ist für alle Ikonen gleich 'Status'.