SAP NetWeaver AS ABAP Release 752, ©Copyright 2017 SAP AG. Alle Rechte vorbehalten.
ABAP - Schlüsselwortdokumentation → ABAP - Referenz → SAP-GUI-Benutzerdialoge → Selektionsbilder → Selektionsbildverarbeitung → AT SELECTION-SCREEN →
AT SELECTION-SCREEN - selscreen_event
Syntax
... { OUTPUT }
| { ON {para|selcrit} }
| { ON END OF selcrit }
| { ON BLOCK block }
| { ON RADIOBUTTON GROUP group }
| { }
| { ON {HELP-REQUEST|VALUE-REQUEST}
FOR {para|selcrit-low|selcrit-high} }
| { ON EXIT-COMMAND }.
Alternativen:
1. ... OUTPUT
2. ... ON {para|selcrit}
3. ... ON END OF selcrit
4. ... ON BLOCK block
5. ... ON RADIOBUTTON GROUP group
6. ... { }
7. ... ON {HELP-REQUEST|VALUE-REQUEST} FOR {para|selcrit-low|selcrit-high}
8. ... ON EXIT-COMMAND
Wirkung
Diese Zusätze erlauben die Einzelauswertung spezifischer Elemente der
Selektionsbilder des
Programms. Die Information, welches Selektionsbild das Ereignis ausgelöst hat, steht im Systemfeld sy-dynnr zur Verfügung.
... OUTPUT
Wirkung
Dieses Ereignis wird beim Dynpro-Ereignis PBO
eines Selektionsbildes ausgelöst. In dem Ereignisblock kann das Selektionsbild durch Zuweisungen
an die Datenobjekte von Parametern und Selektionskriterien und durch dynamische Bildschirmmodifikationen vorbereitet werden.
Hinweise
Beispiel
Modifikation eines mit PARAMETERS deklarierten Eingabefelds eines Selektionsbilds. Die Eingabe in das Feld ist unsichtbar, d.h. durch die Zeichen "***..." überdeckt, was beispielsweise für die Eingabe eines Passworts verwendet werden kann.
PARAMETERS pass(30) TYPE c.
AT SELECTION-SCREEN OUTPUT.
LOOP AT SCREEN INTO DATA(wa).
IF wa-name = 'PASS'.
wa-invisible = '1'.
MODIFY screen FROM wa.
ENDIF.
ENDLOOP.
... ON {para|selcrit}
Wirkung
Dieses Ereignis wird beim Dynpro-Ereignis PAI eines Selektionsbildes ausgelöst, wenn der Inhalt des Eingabefeldes eines Parameters para oder eine Zeile eines Selektionskriteriums selcrit an das ABAP-Programm übergeben wurde. In dem Ereignisblock kann die Benutzereingabe überprüft werden. Das Senden einer Warnung oder Fehlermeldung im Ereignisblock macht die Felder von para bzw. selcrit wieder eingabebereit.
Es kann kein Parameter angegeben werden, der als Auswahlknopf definiert ist. Für solche ist der Zusatz ON RADIOBUTTON GROUP vorgesehen.
Hinweis
Wenn im Dialogfenster für die Mehrfachselektion eines Selektionskriteriums selcrit eine Benutzeraktion stattfindet, werden die Einträge der
Selektionstabelle Zeile
für Zeile an das Programm übergeben, wobei für jede Zeile das Ereignis AT SELECTION-SCREEN ON selcrit ausgelöst wird.
... ON END OF selcrit
Wirkung
Dieses Ereignis wird ausgelöst, nachdem nach einer Benutzeraktion im Dialogfenster für
die Mehrfachselektion die Selektionstabelle selcrit vollständig an
das Programm übergeben wurde. Im Ereignisblock kann die gesamte Selektionstabelle überprüft werden.
... ON BLOCK block
Wirkung
Dieses Ereignis wird beim Dynpro-Ereignis PAI eines Selektionsbildes ausgelöst, wenn alle Eingabefelder
eines Blocks block des Selektionsbildes an das ABAP-Programm übergeben
wurden. In dem Ereignisblock können die Benutzereingaben überprüft werden. Das
Senden einer Warnung oder Fehlermeldung in dem Ereignisblock macht alle Felder des Blocks block wieder eingabebereit.
... ON RADIOBUTTON GROUP group
Wirkung
Dieses Ereignis wird beim Dynpro-Ereignis PAI
eines Selektionsbildes ausgelöst, wenn alle Felder einer Auswahlknopfgruppe group
des Selektionsbildes an das ABAP-Programm übergeben wurden. Im Ereignisblock kann die Benutzereingabe überprüft werden. Das Senden einer
Warnung oder
Fehlermeldung im Ereignisblock macht alle Auswahlknöpfe der Gruppe group wieder eingabebereit.
Hinweis
Die einzelnen Felder einer Auswahlknopfgruppe werden nicht einzeln übergeben und lösen nicht das Ereignis AT SELECTION-SCREEN ON par aus.
... { }
Wirkung
Das Ereignis AT SELECTION-SCREEN selbst wird als letztes Ereignis der Selektionsbildverarbeitung
ausgelöst, wenn alle Eingabewerte an das Programm übergeben wurden. In diesem Ereignisblock
können sämtliche Benutzereingaben überprüft werden. Das Senden einer Warnung oder Fehlermeldung im Ereignisblock macht alle Bildschirmfelder wieder eingabebereit.
... ON { HELP-REQUEST | VALUE-REQUEST } FOR {para|selcrit-low|selcrit-high}
Wirkung
Die beiden Ereignisse ON HELP-REQUEST und ON VALUE-REQUEST werden bei den Dynpro-Ereignissen POH und POV eines Selektionsbildes ausgelöst, wenn für das Eingabefeld eines Parameters para oder eines der Eingabefelder eines Selektionskriteriums selcrit die Feldhilfe F1 bzw. die Eingabehilfe F4 aufgerufen wurde. Andere Selektionsbildereignisse werden nicht ausgelöst.
In den Ereignisblöcken kann eine selbst definierte Feld- bzw. Eingabehilfe programmiert werden, welche die eventuell im ABAP Dictionary definierten Hilfen übersteuert.
Hinweise
... ON EXIT-COMMAND
Wirkung
Dieses Ereignis wird ausgelöst, wenn der Benutzer eine der Funktionen Zurück,
Beenden oder Abbrechen aufgerufen hat. Im Ereignisblock können eventuelle Aufräumarbeiten vorgenommen werden.
Beispiel
In diesem ausführbaren Programm sind ein Standardselektionsbild und ein weiteres Selektionsbild definiert. In den Ereignisblöcken AT SELECTION-SCREEN werden die Eingaben in die Selektionsbilder über die Auswertung des Namens p_carrid und die Dynpro-Nummer in sy-dynnr gezielt behandelt.
REPORT demo_at_selection_screen.
* Global data
TABLES sscrfields.
DATA: spfli_tab TYPE TABLE OF spfli,
spfli_wa LIKE LINE OF spfli_tab.
* Selection screens
PARAMETERS p_carrid TYPE spfli-carrid.
SELECTION-SCREEN BEGIN OF SCREEN 500.
SELECT-OPTIONS s_conn FOR spfli_wa-connid.
SELECTION-SCREEN END OF SCREEN 500.
* Handling selection screen events
AT SELECTION-SCREEN ON p_carrid.
IF p_carrid IS INITIAL.
MESSAGE 'Please enter a value' TYPE 'E'.
ENDIF.
AUTHORITY-CHECK OBJECT 'S_CARRID'
ID 'CARRID' FIELD p_carrid
ID 'ACTVT' FIELD '03'.
IF sy-subrc = 4.
MESSAGE 'No authorization for carrier' TYPE 'E'.
ELSEIF sy-subrc <> 0.
MESSAGE 'Error in authority check' TYPE 'A'.
ELSE.
IF sscrfields-ucomm = 'ONLI'.
CALL SELECTION-SCREEN '0500'.
ENDIF.
ENDIF.
AT SELECTION-SCREEN.
IF sy-dynnr = '0500'.
IF s_conn IS INITIAL.
MESSAGE 'Please enter values' TYPE 'W'.
ELSE.
SELECT *
FROM spfli
WHERE carrid = @p_carrid AND
connid IN @s_conn
INTO TABLE @spfli_tab.
IF sy-subrc <> 0.
MESSAGE 'No flights found' TYPE 'E'.
ENDIF.
ENDIF.
ENDIF.
* Main program
START-OF-SELECTION.
...