SAP NetWeaver AS ABAP Release 752, ©Copyright 2017 SAP AG. Alle Rechte vorbehalten.
ABAP - Schlüsselwortdokumentation → ABAP - Referenz → SAP-GUI-Benutzerdialoge → Dynpros → ABAP-Anweisungen für Dynpros → LOOP AT SCREEN →
MODIFY SCREEN
Syntax
MODIFY SCREEN FROM wa.
Wirkung
Diese Anweisung kann nur im Anweisungsblock hinter LOOP AT SCREEN verwendet werden und ist nur während der PBO-Verarbeitung sinnvoll. Hinter FROM muss ein Arbeitsbereich wa vom Typ SCREEN aus dem ABAP Dictionary angegeben werden. Die Anweisung modifiziert die Eigenschaften des aktuellen Bildschirmelements mit den Werten aus dem Arbeitsbereich.
Die Komponente name muss den Namen des aktuellen Bildschirmelements enthalten, ansonsten wird die Anweisung nicht ausgeführt. Bis auf die Komponenten group1 bis group4 und length können alle übrigen Komponenten von wa entweder den Wert 0 oder 1 enthalten. Durch den Wert 0 wird die entsprechende Feldeigenschaft deaktiviert und durch 1 wird sie aktiviert. Zusätzlich können required und value_help auf den Wert 2 gesetzt werden.
Wenn MODIFY SCREEN während der PBO-Verarbeitung ausgeführt wird, wirken sich die modifizierten Eigenschaften bei der Anzeige des Bildschirmbilds des aktuellen Dynpros nach der PBO-Verarbeitung aus. Die Eigenschaften der Bildschirmelemente des Dynpros werden zu Beginn jeder PBO-Verarbeitung wieder auf ihre statischen Attribute zurückgesetzt, so dass sich die Ausführung von MODIFY SCREEN während der PAI-Verarbeitung nicht auf die Anzeige des folgenden Bildschirmbilds auswirkt.
Die Komponente active
Die Komponente active dient dazu, die Komponenten input, output und invisible auf einmal zu setzen. Zu Beginn der PBO-Verarbeitung hat die Komponente active immer den Wert 1. Wenn active mit MODIFY SCREEN auf 0 gesetzt wird, werden automatisch auch input und output auf 0 und invisible auf 1 gesetzt. Andere Werte in input, output und invisible werden ignoriert. Umgekehrt führt das Setzen von input und output auf 0 und von invisible auf 1 automatisch auch zu active 0 und ein anderer Wert in active wird ignoriert.
Sonderfälle
Folgende Sonderfälle sind zu beachten:
Modifikationen in Table Controls und in Steploops
Während der Verarbeitung eines Table Controls oder eines Steploops wirken sich die Änderungen auf die aktuelle Zeile des Table Controls bzw. die aktuelle Gruppe des Steploops aus. Vor der Verarbeitung eines Table Controls wirkt sich die Änderung von Eigenschaften eines Bildschirmelements, das Teil einer Zeile des Table Controls ist, nicht auf das Table Control aus, da die Werte aus der mit CONTROLS angelegten Struktur übernommen werden. Vor der Verarbeitung eines Steploops wirkt sich die Änderung von Eigenschaften eines Bildschirmelements, das Teil einer Gruppe des Steploops ist, auf alle Gruppen des Steploops aus.
Modifikationen in Tabstrip Controls
Wenn die Komponente active für einen
Tab-Reiter eines
Tabstrip Controls auf den Wert 0 gesetzt wird, wird die gesamte Tabstrip-Seite ausgeblendet.
Hinweise
Beispiel
In folgendem PBO-Modul wird ein Eingabefeld namens val obligatorisch gemacht und auf helle Anzeige umgestellt.
MODULE modify_0100 OUTPUT.
LOOP AT SCREEN INTO DATA(screen_wa).
IF screen_wa-name = 'VAL'.
screen_wa-required = '1'.
screen_wa-intensified = '1'.
MODIFY SCREEN FROM screen_wa.
ENDIF.
ENDLOOP.
ENDMODULE.
Ausführbares Beispiel
Das Programm DEMO_DYNPRO_MODIFY_SCREEN demonstriert alle möglichen dynamischen Bildschirmmodifikationen.