Im Dynpro selbst können mit dem Werkzeug Screen Painter zwei Arten von Eingabehilfen definiert werden:
...
1. Verwendung der Zusätze VALUES oder SELECT in der FIELD-Anweisung der Ablauflogik.
2. Direkte Anbindung einer Suchhilfe an ein Dynprofeld.
Eine direkte Anbindung einer Suchhilfe an ein Dynprofeld übersteuert die Zusätze der FIELD-Anweisung. Die Funktionalität der FIELD-Anweisung zur Eingabeüberprüfung bleibt jedoch erhalten.
Die folgenden beiden Möglichkeiten der Eingabehilfe werden noch aus Kompatibilitätsgründen unterstützt, sollten aber nicht mehr verwendet werden.
In der Ablauflogik kann man wie folgt eine Werteliste für ein Dynprofeld f angeben:
FIELD f VALUES (val1, val2,...).
Die Werteliste sollte durch Einzelwerte val1, val2,... definiert werden. Die Zusätze NOT und BETWEEN der Eingabeüberprüfung machen für die Eingabehilfe keinen Sinn.
Weiterhin kann eine Werteliste wie folgt durch einen Zugriff auf eine Datenbanktabelle erstellt werden:
FIELD f
SELECT *
FROM dbtab
WHERE
k1 = f1 AND k2 = f2
AND...
In der WHERE-Bedingung müssen die Felder des Primärschlüssels k1, k2 … der Einträge in der Datenbanktabelle dbtabmit Dynprofeldern f1 , f2 ... verglichen werden. Der Zusatz WHENEVER der Eingabeüberprüfung ist für die Eingabehilfe nicht notwendig.
Wenn das Feld f aus dem Dictionary übernommen wurde, kann die Selektion und die Aufbereitung der Trefferliste vom Vorhandensein einer Prüftabelle beeinflusst werden.
Für eine Suchhilfe des ABAP Dictionary besteht die Möglichkeit der Anbindung an ein Dynprofeld. Der Name der Suchhilfe muss hierzu im Screen Painter in den Attributen des Bildschirmfelds in das Feld Suchhilfe eingetragen werden. Dadurch wird der erste Parameter der Suchhilfe dem Dynprofeld zugeordnet. Damit ist nur das Rückstellen eines Wertes aus der Trefferliste in die Bildschirmmaske möglich.
Eingabehilfe im Dynpro.
REPORT demo_dynpro_f4_help_dynpro MESSAGE-ID dw.
DATA: carrier(3) TYPE c,
connection(4) TYPE c.
CALL SCREEN 100.
MODULE cancel INPUT.
LEAVE
PROGRAM.
ENDMODULE.
Die statische Folgedynpronummer von Dynpro 100 ist 100 und sein Layout ist wie folgt:
Die Eingabefelder sind von den Programmfeldern carrier und connection übernommen worden. Der Funktionscode der Drucktaste ist CANCEL mit dem Funktionstyp E. Dem Dynprofeld carrier ist die Suchhilfe DEMO_F4_DE mit dem Suchhilfeparameter CARRID zugeordnet, welche auf die Datenbanktabelle SCARR zugreift.
Die Bildschirmablauflogik ist:
PROCESS BEFORE OUTPUT.
PROCESS AFTER INPUT.
MODULE cancel AT EXIT-COMMAND.
FIELD carrier VALUES ('AA', 'LH').
FIELD connection SELECT *
FROM spfli
WHERE
carrid = carrier
AND
connid = connection.
Bei Auswahl der F4-Hilfe für die einzelnen Felder erhält der Benutzer folgende Eingabehilfen:
· Für Fluggesellschaft zeigt die Suchhilfe die Liste der Namen von Fluggesellschaften an und stellt für die ausgewählte Zeile das Kürzel der Gesellschaft in das Eingabefeld. Falls das Kürzel nicht der VALUES-Liste der Ablauflogik entspricht, löst die Eingabeüberprüfung zu PAI eine Fehlermeldung aus. Die Suchhilfe übersteuert also zwar den VALUES-Zusatz für die Eingabehilfe aber nicht für die Eingabeüberprüfung. Hier sollte also kein VALUES-Zusatz verwendet werden.
· Für Verbindung zeigt die Ablauflogik die Liste der selektierten Einträge aus der Datenbanktabelle SPFLI und stellt für die Verbindungsnummer der ausgewählten Zeile in das Eingabefeld.