Show TOC Anfang des Inhaltsbereichs

Cursorposition festlegen  Dokument im Navigationsbaum lokalisieren

Bei der Anzeige eines Bildschirmbilds stellt das System den Cursor automatisch in das erste eingabebereite Feld. Man kann aber auch im Programm festlegen auf welches Bildschirmelement der Cursor gestellt wird. Das Bildschirmelement muss nicht unbedingt ein Eingabefeld, sein. Die gezielte Positionierung des Cursors kann eine Anwendung unter Umständen benutzerfreundlicher machen.

Die Cursorposition kann statisch im Screen Painter oder dynamisch im ABAP-Programm festgelegt werden:

Statische Cursorposition

Um die Cursorposition statisch festzulegen, gibt man für das Dynproattribut Cursorposition im Screen Painter den Namen des gewünschten Bildschirmelements ein.

Dynamische Cursorposition

Um die Cursorposition dynamisch festzulegen, verwendet man in einem ABAP-Dialogmodul zum Zeitpunkt PBO die Anweisung:

SET CURSOR FIELD f [OFFSET off].

Dabei ist fentweder ein Literal oder eine Variable, die den Namen eines Bildschirmelements enthält. Mit dem Zusatz OFFSET kann der Cursor auch an eine bestimmte Stelle eines Ein-/Ausgabefelds gestellt werden.

Beispiel

Cursorposition festlegen.

REPORT demo_dynpro_set_cursor.

DATA:  field1(14) TYPE c, field2(14) TYPE c, field3(14) TYPE c,
       name(10) TYPE c.

SELECTION-SCREEN BEGIN OF BLOCK bloc WITH FRAME.
PARAMETERS: def RADIOBUTTON GROUP rad,
            txt RADIOBUTTON GROUP rad,
            f1  RADIOBUTTON GROUP rad,
            f2  RADIOBUTTON GROUP rad,
            f3  RADIOBUTTON GROUP rad.
SELECTION-SCREEN END OF BLOCK bloc.

PARAMETERS pos TYPE i.

IF txt = 'X'.
  name = 'TEXT'.
ELSEIF f1 = 'X'.
  name = 'FIELD1'.
ELSEIF f2 = 'X'.
  name = 'FIELD2'.
ELSEIF f3 = 'X'.
  name = 'FIELD3'.
ENDIF.

CALL SCREEN 100.

MODULE cursor OUTPUT.
  IF def NE 'X'.
    SET CURSOR FIELD name OFFSET pos.
  ENDIF.
  SET PF-STATUS 'SCREEN_100'.
ENDMODULE.

MODULE back INPUT.
  
LEAVE SCREEN.
ENDMODULE.

Beim Start des Programms wird ein Selektionsbild angezeigt, das es erlaubt eine Cursorposition auszuwählen.

Dann wird Dynpro 100 aufgerufen. Die statische Folgedynpronummer von Dynpro 100 ist 100 und sein statisches Layout ist:

Diese Grafik wird im zugehörigen Text erklärt

Die Ein- und Ausgabefelder sind den Feldern field1 bis field3 des ABAP-Programms zugeordnet. Die Überschrift ist das Textfeld TEXT, die Drucktaste ist das Bildschirmelement PUSH.

Die statische Cursorposition ist in den Dynproattributen als PUSH vorgegeben.

Die Bildschirmablauflogik ist:

PROCESS BEFORE OUTPUT.
  
MODULE cursor.

PROCESS AFTER INPUT.
  MODULE back AT EXIT-COMMAND.

Vor Senden des Bildschirms von Dynpro 100 wird zum Zeitpunkt PBO die Cursorposition gemäß der Benutzereingaben auf dem Selektionsbild gesetzt. Falls der Benutzer die statische Vorgabe wählt, steht der Cursor auf der Drucktaste, ansonsten auf der Überschrift oder einem der Eingabefelder. Die Positionsangabe pos wird nur auf den Eingabefeldern berücksichtigt.

 

Ende des Inhaltsbereichs