ABAP - Schlüsselwortdokumentation →  ABAP - Referenz →  SAP-GUI-Benutzerdialoge →  Selektionsbilder →  Selektionsbildverarbeitung →  AT SELECTION-SCREEN → 

AT SELECTION-SCREEN - selscreen_event

Kurzreferenz

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.

Alternative 1

... 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.

Alternative 2

... 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.

Alternative 3

... 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.

Alternative 4

... 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.

Alternative 5

... 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.

Alternative 6

... { }


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.

Alternative 7

... 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

Alternative 8

... 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.
  ...



Weiterlesen
Example Selektionsbilder, Block- und Auswahlknopfverarbeitung
Example Selektionsbilder, Feldhilfe
Example Selektionsbilder, Eingabehilfe