Anfang des Inhaltsbereichs

Drucktasten auf dem Dynpro Dokument im Navigationsbaum lokalisieren

Drucktasten waren ursprünglich die einzigen Elemente auf den Bildschirmen von Dynpros, bei deren Auswahl der Benutzer das Ereignis PAI auslöst. Ab Releas 4.6 können Funktionscodes auch Ankreuzfeldern, Auswahlknöpfen und Dropdown-Boxen zugeordnet werden. Eine Drucktaste kann in ihren Attributen mit einem bis zu zwanzigstelligen Funktionscode verknüpft werden.

Drucktasten sind durch den Text, der statisch in den Attributen angegeben ist beschriftet und können mit Ikonen versehen werden. Wenn für eine Drucktaste das Attribut Ausgabefeld gesetzt wird, kann ihr Text auch dynamisch im ABAP-Programm festgelegt werden. Hierfür muß im ABAP-Programm ein Feld angelegt werden, das den gleichen Namen wie die Drucktaste hat, und der gewünschte Text muß diesem Feld vor dem Senden des Bildschirmbilds zugewiesen werden. Dabei können auch Ikonen eingebaut werden, indem man das Kürzel der gewünschten Ikone in den Text aufnimmt. Die Zuordnung von Ikonen zu ihren Kürzeln findet man in dem Include-Programm <ICON>. Beispielsweise hat die Ikone ICON_CANCEL (Diese Grafik wird im zugehörigen Text erklärt) das Kürzel @0W@.

Beim jedem Ereignis PAI wird der Funktionscode in das Systemfeld SYST-UCOMM bzw. SY-UCOMM gestellt und dem OK-Feld zugewiesen, falls er nicht leer ist. Ein leerer Funktionscode wird weder in das Feld SY-UCOMM gestellt noch dem OK-Feld zugewiesen. Leere Funktionscodes treten beispielsweise auf, wenn bei einer Drucktaste das entsprechende Attribut nicht im Screen Painter gefüllt ist. Um mit dem OK-Feld zu arbeiten muß es im Screen Painter mit einem Namen versehen und dadurch deklariert werden. Mehr Informationen zur Auswertung von Funktionscodes finden sich unter Funktionscodes auswerten.

Das hauptsächliche Mittel, dem Benutzer Aktionen zu ermöglichen, die das Ereignis PAI auslösen und dem Programm Funktionscodes zur Verfügung stellen weisen, ist der GUI-Status mit seinen Oberflächenelementen und deren Zuordnung zu Funktionscodes. Allein aus Platzgründen können auf dem Bildschirmbild nur viel weniger Funktionscodes durch Drucktasten zur Verfügung gestellt werden, als im GUI-Status.

Aus diesem Grund sollten Drucktasten hauptsächlich in folgenden Fällen eingesetzt werden:

Beim Definieren von Drucktasten ist zu beachten, daß der zugehörige Funktionscode je nach Zielsetzung entweder der gleiche ist, wie beim gewünschten Oberflächenelement des GUI-Status, oder mit keinem ungewünschten Funktionscode übereinstimmt. Während die Verwaltung von Funktionscodes des GUI-Status vom Werkzeug Menu Painter unterstützt wird, kann diese Unterstützung nicht die Funktionscodes von Drucktasten umfassen, da der GUI-Status eines Dynpros erst zur Laufzeit bekannt ist.

Beispiel

Drucktasten auf Dynpros.

PROGRAM demo_dynpro_push_button.

DATA: ok_code TYPE sy-ucomm,
      save_ok LIKE ok_code,
      output(8) TYPE c.

CALL SCREEN 100.

MODULE user_command_0100 INPUT.
  save_ok = ok_code.
  CLEAR ok_code.
  CASE save_ok.
    WHEN 'BUTTON_EXIT'.
      LEAVE PROGRAM.
    WHEN 'BUTTON_1'.
      output = 'Button 1'(001).
    WHEN 'BUTTON_2'.
      output = 'Button 2'(002).
    WHEN 'BUTTON_3'.
      output = 'Button 3'(003).
    WHEN 'BUTTON_4'.
      output = 'Button 4'(004).
    WHEN OTHERS.
      output = save_ok.
  ENDCASE.
ENDMODULE.

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

Diese Grafik wird im zugehörigen Text erklärt

Der für die Dynprofelder relevante Teil der Elementliste ist wie folgt:

Name

Typ

Format

Text

Funktionscode

OUTPUT

I/O

CHAR

   

BUTTON1

Push

 

Drucktaste 1

BUTTON_1

BUTTON2

Push

 

Drucktaste 2

BUTTON_2

BUTTON3

Push

 

Drucktaste 3

BUTTON_3

BUTTON4

Push

 

Drucktaste 4

BUTTON_4

EXIT_BUTTTON

Push

 

Abbrechen

BUTTON_EXIT

OK_CODE

OK

OK

   

Für das Bildschirmfeld von OUTPUT ist die Eingabemöglichkeit im Screen Painter ausgeschaltet.

Die Bildschirmablauflogik ist:

PROCESS BEFORE OUTPUT.

PROCESS AFTER INPUT.
  MODULE user_command_0100.

Wenn der Benutzer eine der Drucktasten auswählt, wird das Ereignis PAI ausgelöst. Der Funktionscode der Drucktaste wird dem Dynprofeld OK_CODE und dieses dem gleichnamigen ABAP-Feld zugewiesen. Dann wird das Modul USER_COMMAND_0100 bearbeitet.

Hier wird als erstes der Inhalt des Felds OK_CODE der Hilfsvariablen SAVE_OK zugewiesen und OK_CODE wird initialisiert. Dieses Vorgehen ist immer empfohlen, da dadurch zum Zeitpunkt PBO auch das Dynprofeld OK_CODE wieder initialisiert wird und keinen unbeabsichtigten Wert enthält.

In der CASE-Kontrollstruktur wird dann je nach ausgewählter Taste dem Feld OUTPUT ein Textsymbol zugewiesen und dadurch im Ausgabefeld des Dynpros angezeigt oder das Programm bei der Auswahl von Abbrechen verlassen.

 

 

Ende des Inhaltsbereichs