ABAP-Liste und Control

Hier zeigen wird Ihnen einen ABAP-Report, der eine Liste ausgibt. Links von der Liste ist mittels DockingContainer ein TextEditControl eingebunden. Per Doppelklick auf eine Listzeile wird diese in den Editor geschrieben.


Ein TextEditControl angebunden an eine ABAP-Liste



Vielen Dank an dieser Stelle an BlackAdept!

Das Programm

REPORT zz_docking_liste.

CLASS cl_gui_cfw DEFINITION LOAD.

types: tabzeile(132).
DATA:  o_docker    TYPE REF TO cl_gui_docking_container,
       o_text      TYPE REF TO cl_gui_textedit,
       tab         TYPE STANDARD TABLE OF tabzeile,
       line        TYPE i.

AT LINE-SELECTION.

*– Aktuelle Cursorposition ermitteln
  CALL METHOD o_text->get_selection_pos
     IMPORTING
       from_line              = line.

*– Texttabelle löschen
  CLEAR tab.
*– Aktuellen Inhalt des TextEditControls lesen
  CALL METHOD o_text->get_text_as_r3table
     IMPORTING
       table                   = tab.

  IF tab IS INITIAL.
*– Ausgewählte Zeile anfügen
    APPEND sy-lisel TO tab.
  ELSE.
*– Ausgewählte Zeile nach Cursorposition anfügen
    ADD 1 TO line.
    INSERT sy-lisel INTO tab INDEX line.
  ENDIF.
*– Texttabelle wieder zum TextEditControl senden
  CALL METHOD o_text->set_text_as_r3table
     EXPORTING
       table                   = tab.

END-OF-SELECTION.

*– Docking-Instanz erzeugen
  CREATE OBJECT o_docker
     EXPORTING
       side                    = o_docker->dock_at_left
       ratio                   = 30
       no_autodef_progid_dynnr = ‘X’.

*– TextEditControl erzeugen
  CREATE OBJECT o_text
     EXPORTING
       parent                  = o_docker
       wordwrap_position       = 40
       wordwrap_mode           = o_text->wordwrap_at_fixed_position.


*– Liste ausgeben
  DO 80 TIMES.

    FORMAT COLOR = sy-index.
    WRITE:/ ‘Listzeile’, sy-index.

  ENDDO.

Enno Wulff

Leave a Comment