Show TOC Anfang des Inhaltsbereichs

Ankreuzfelder und Auswahlknöpfe mit Funktionscodes  Dokument im Navigationsbaum lokalisieren

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

·        Bildschirmbilder können teilweise und damit sozusagen kontextsensitiv bearbeitet werden. Nur bei Auswahl eines Ankreuzfelds oder Auswahlknopfs werden bestimmte Daten beispielsweise oder Datenbank gelesen und in zugehörige Ein-/Ausgabefelder gestellt.

·        Feldinhalte können in Abhängigkeit von Ankreuzfeldern oder Auswahlknöpfen durch Muster belegt werden. Ein typisches Beispiel sind Formatierungseinstellungen für Schriften. Zwar sind die Eingabefelder einzeln bearbeitbar, man kann aber durch Auswahl eines Musters alle Eingabefelder auf einmal und zueinander passend (vor)belegen.

·        Die dynamische Bildschirmmodifikation kann direkt durch Ankreuzfelder oder Auswahlknöpfe gesteuert werden. Beispielsweise können erst im Moment der Auswahl zugehörige Ein-/Ausgabefelder eingabebereit gemacht werden.

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

Beispiel

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 Folge-Dynpro-Nummer von Dynpro 100 ist 100 und sein Layout ist:

Diese Grafik wird im zugehörigen Text erklärt

Der für die Dynpro-Felder 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 field3 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_0100 werden die Felder field1 bis field3 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_0100 wird das Programm sofort beendet.

 

Ende des Inhaltsbereichs