Ankreuzfelder und Auswahlknöpfe mit Funktionscodes 

Ankreuzfeldern und Auswahlknöpfen können im Screen Painter bis zu zwanzigstellige Funktionscodes zugeordnet werden.

Ankreuzfelder und Auswahlknöpfe ohne Funktionscode verhalten sich wie normale Ein-/Ausgabefelder. Eine Auswahl führt zur Änderung des Feldinhalts, aber nicht zum Ereignis PAI (eine Auswahl einer Drucktaste führt dagegen immer zum Ereignis PAI, auch wenn der Funktionscode leer ist).

Die Auswahl von Ankreuzfeldern und Auswahlknöpfen mit Funktionscode ändert dagegen den entsprechenden Feldinhalt und führt zum Ereignis PAI, wobei der zugeordnete Funktionscode im OK-Feld übergeben wird. Mehr Mehr Informationen zur Auswertung von Funktionscodes finden sich unter Funktionscodes auswerten.

Während jedem Ankreuzfeld ein individueller Funktionscode zugeordnet werden kann, können die Auswahlknöpfe einer Auswahlknopfgruppe nur einen gemeinsamen Funktionscode haben. Bei der Zuordnung eines Funktionscodes zu einem Auswahlknopf im Screen Painter, wird automatisch der gleiche Funktionscode allen übrigen Auswahlknöpfen der gleichen Gruppe zugeordnet.

Ankreuzfelder und Auswahlknöpfe mit Funktionscodes können wie folgt eingesetzt werden:

Wie bei der Definition von Drucktasten sollte auch bei der Zuordnung von Funktionscodes zu Ankreuzfeldern und Auswahlknöpfen darauf geachtet werden, daß keine ungewollten Überschneidungen mit Funktionscodes des GUI-Status stattfinden.

PROGRAM demo_dynpro_check_radio.

DATA: radio1(1) TYPE c, radio2(1) TYPE c, radio3(1) TYPE c,
      field1(10) TYPE c, field2(10) TYPE c, field3(10) TYPE c,
      box TYPE c.

DATA: ok_code TYPE sy-ucomm,
      save_ok TYPE sy-ucomm.

CALL SCREEN 100.

MODULE user_command_0100 INPUT.
  save_ok = ok_code.
  CLEAR ok_code.
  CASE save_ok.
    WHEN 'RADIO'.
      IF radio1 = 'X'.
        field1 = 'Selected!'.
        CLEAR: field2, field3.
      ELSEIF radio2 = 'X'.
        field2 = 'Selected!'.
        CLEAR: field1, field3.
      ELSEIF radio3 = 'X'.
        field3 = 'Selected!'.
        CLEAR: field1, field2.
      ENDIF.
    WHEN 'CANCEL'.
      LEAVE PROGRAM.
  ENDCASE.
ENDMODULE.

Die statische Folgedynpronummer von Dynpro 100 ist 100 und sein Layout ist:

Der für die Dynprofelder relevante Teil der Elementliste ist wie folgt:

Name

Typ

defLg

Format

Funktionscode

RADIO1

Radio

1

CHAR

RADIO

FIELD1

I/O

10

CHAR

 

RADIO2

Radio

1

CHAR

RADIO

FIELD2

I/O

10

CHAR

 

RADIO3

Radio

1

CHAR

RADIO

FIELD3

I/O

10

CHAR

 

BOX

Check

1

CHAR

CANCEL

OK_CODE

OK

20

OK

 

Für die Bildschirmfelder FIELD1 bis 3 ist die Eingabemöglichkeit im Screen Painter ausgeschaltet.

Die Bildschirmablauflogik ist:

PROCESS BEFORE OUTPUT.

PROCESS AFTER INPUT.
  MODULE user_command_0100.

Jede Auswahl eines der drei Auswahlknöpfe führt zum Ereignis PAI, wobei der Funktionscode RADIO und der Feldinhalt der Bildschirmfelder an das ABAP-Programm übergeben wird. Im Dialogmodul USER_COMMAND_100 werden die Felder FIELD1 bis 3 entsprechend dem gewählten Auswahlknopfs gefüllt und erscheinen so beim nächsten Senden des Dynpros.

Auch die Auswahl des Ankreuzfelds führt zum Ereignis PAI. Hier wird der Funktionscode CANCEL an das ABAP Programm übergeben und im Dialogmodul USER_COMMAND_100 wird das Programm sofort beendet.