Breite des Navigationsfensters

Die Breite des Navigationsfensters im Viewcluster ist leider fest eingestellt und meistens etwas zu schmal für die meisten Beschreibungen. Hier zeigen wir Ihnen, wie Sie die Breite des Splitters individuell einstellen können.

Um die Breite des Navigationsfensters zu ändern sind die folgenden Schritte notwendig:

  1. Ablauflogik des ersten Pflegedialogs ändern
  2. PBO-Modul anlegen
  3. Unterroutine anlegen

Mit den folgenden Änderungen wird die Größe des Navigationsfensters einmal angepasst und die Beschreibungen zu den einzelnen Pflegedialoges sind von Anfang an gut lesbar.

1. Ablauflogik anpassen

Fügen Sie als letzte Anweisung im PBO die folgende Zeile ein:

MODULE ZZ_VIM_INFO.

ACHTUNG:
Die Änderungen, die Sie in der Ablauflogik vornehmen werden mit einer Neugenerierung des Tabellenpflegedialogs gelöscht!

2. PBO-Modul anlegen

Mit einem Doppelklick auf ZZ_VIM_INFO können Sie das PBO-Modul anlegen. Am besten rufen Sie darin die Unterroutine ZZ_VIM_INFO auf:

PERFORM zz_vim_info.

3. Unterroutine anlegen

Legen Sie – ebenfalls mit einem Doppelklick – die Unterroutine an:

*&---------------------------------------------------------------------*
*&      Form  zz_vim_info
*&---------------------------------------------------------------------*
* Set the width of the docking control to 300
*----------------------------------------------------------------------*
FORM zz_vim_info .

  DATA lv_width_act TYPE i.
  DATA lv_width_new TYPE i VALUE 300.
  FIELD-SYMBOLS <navi> TYPE REF TO cl_gui_docking_container.
  ASSIGN ('(SAPLSVCM)DOCKING_CONTAINER') TO <navi>.
  IF sy-subrc = 0 AND NOT <navi> IS INITIAL.
*** Get actual width
    CALL METHOD <navi>->get_width
      IMPORTING
        width = lv_width_act.

    IF lv_width_act <> lv_width_new.
*** Set desired width
      CALL METHOD <navi>->set_width
        EXPORTING
          width = lv_width_new.
*** Refresh control to adjust dynpro size again
      CALL FUNCTION 'SAPGUI_SET_FUNCTIONCODE'
        EXPORTING
          functioncode = '=00'
        EXCEPTIONS
          OTHERS       = 2.
    ENDIF.
  ENDIF.

ENDFORM.                    " zz_vim_info

Nachdem die Breite gesetzt wurde, muss noch einmal der Bildschirm neu aufgebaut werden, denn das TableControl des Pflegedialoges wurde für die ursprüngliche Dynpro-Größe angepasst. Das heißt, durch das breitere Navigationsfenster, passt das TableControl evtl. nicht mehr auf das nun kleinere Dynpro. Indem einmal “Enter gedrückt” wird, wird der Bildschirm erneut aufgebaut.

Enno Wulff

Leave a Comment