Anfang des InhaltsbereichsEingabehilfe definieren Dokument im Navigationsbaum lokalisieren

Falls sich ein reportintern deklariertes Eingabefeld auf ein Feld im ABAP-Dictionary bezieht, für das eine Eingabehilfe definiert ist, wird beim Aufruf der F4-Hilfe für dieses Feld automatisch die Werteliste des Dictionarys angezeigt. Um eine Eingabehilfe für reportintern deklarierte Eingabefelder ohne Dictionary-Bezug anzulegen, oder um eine vorgegebene Eingabehilfe des Dictionarys zu übersteuern (siehe auch Suchhilfe für Parameter), kann man einen Ereignisblock für das Ereignis

AT SELECTION-SCREEN ON VALUE-REQUEST FOR <field>

anlegen. Das Ereignis wird beim Aufruf der F4-Hilfe für das Feld <field> ausgelöst. Falls kein entsprechender Ereignisblock definiert ist, erscheint keine selbstdefinierte Eingabehilfe bzw. die Werteliste aus dem Dictionary. Falls ein entsprechender Ereignisblock definiert ist, wird dieser statt dem Standard-Eingabehilfemechanismus ausgeführt. Es muß dann im Ereignisblock dafür gesorgt werden, daß der Benutzer eine Werteliste angezeigt bekommt und darauf einen Wert auswählen kann.

Für Eingabefelder des Selektionsbild, die innerhalb der verwendeten logischen Datenbank deklariert sind, kann kein Ereignisblock AT SELECTION-SCREEN ON VALUE-REQUEST angelegt werden. Der Eingabehilfemechanismus der logischen Datenbank kann im Report nicht übersteuert werden. Innerhalb logischer Datenbanken kann eine Dictionary-unabhängige Eingabehilfe mit der Option VALUE-REQUEST der Anweisungen PARAMETERS und SELECT-OPTIONS definiert werden.

Beispiel

REPORT demo_selection_screen_f4.

PARAMETERS: p_carr_1 TYPE spfli-carrid,
            p_carr_2 TYPE spfli-carrid.

AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_carr_2.
  CALL SCREEN 100 STARTING AT 10 5
                  ENDING   AT 50 10.

MODULE value_list OUTPUT.
  SUPPRESS DIALOG.
  LEAVE TO LIST-PROCESSING AND RETURN TO SCREEN 0.
  SET PF-STATUS space.
  NEW-PAGE NO-TITLE.
  WRITE 'Star Alliance' COLOR COL_HEADING.
  ULINE.
  p_carr_2 = 'AC '.
  WRITE: / p_carr_2 COLOR COL_KEY, 'Air Canada'.
  HIDE p_carr_2.
  p_carr_2 = 'LH '.
  WRITE: / p_carr_2 COLOR COL_KEY, 'Lufthansa'.
  HIDE p_carr_2.
  p_carr_2 = 'SAS'.
  WRITE: / p_carr_2 COLOR COL_KEY, 'SAS'.
  HIDE p_carr_2.
  p_carr_2 = 'THA'.
  WRITE: / p_carr_2 COLOR COL_KEY, 'Thai International'.
  HIDE p_carr_2.
  p_carr_2 = 'UA '.
  WRITE: / p_carr_2 COLOR COL_KEY, 'United Airlines'.
  HIDE p_carr_2.
  CLEAR p_carr_2.
ENDMODULE.

AT LINE-SELECTION.
  CHECK NOT p_carr_2 IS INITIAL.
  LEAVE TO SCREEN 0.

In diesem Programm wird ein Selektionsbild mit zwei Parametern deklariert, die sich beide auf die Spalte CARRID der Datenbanktabelle SPFLI beziehen.Während für P_CARR_1 die Eingabehilfe des Dictionarys verwendet wird, wird für P_CARR_2 eine eigene Eingabehilfe programmiert. Hierfür wird das Dynpro 100 aufgerufen. In der Ablauflogik wird zum Zeitpunkt PBO das Dialogmodul VALUE_LIST gestartet. Der Bildschirm des Dynpros 100 wird nicht benötigt und es werden keine Dialogodule zum Zeitpunkt PAI aufgerufen:

PROCESS BEFORE OUTPUT.
  MODULE value_list.

PROCESS AFTER INPUT.

Das Dialogmodul VALUE_LIST unterdrückt das Erscheinen des Bildschirms von Dynpro 100 und schaltet auf Listenanzeige um. Auf der Liste werden Werte für den Parameter P_CARR_2 ausgegeben und im HIDE-Bereich abgelegt. Durch Auswahl einer Zeile auf der Werteliste wird das Ereignis AT LINE-SELECTION ausgelöst wobei automatisch der ausgewählte Wert aus dem HIDE-Bereich in das Feld P_CARR_2 gestellt wird. Bei einer gültigen Auswahl wird der Ereignisblock zu AT LINE-SELECTION direkt zum Selektionsbild verlassen und das Eingabefeld entsprechend gefüllt.

Diese Grafik wird im zugehörigen Text erklärt

 

 

Ende des Inhaltsbereichs