[ABAP] ABAP-Listausgabe in interne ASCII-Tabelle ausgeben

DATA(i) = 0.

WHILE i < 10.

  WRITE: / i.
  i = i + 1.

ENDWHILE.

DATA: it_abaplist TYPE STANDARD TABLE OF abaplist WITH DEFAULT KEY.

* Sichern einer Liste
CALL FUNCTION 'SAVE_LIST'
  TABLES
    listobject         = it_abaplist
  EXCEPTIONS
    list_index_invalid = 1
    OTHERS             = 2.

IF sy-subrc = 0.

  DATA: it_list_ascii TYPE list_string_table.

* Konvertieren eines (gesicherten) Listobjekts nach ASCI
  CALL FUNCTION 'LIST_TO_ASCI'
    IMPORTING
      list_string_ascii  = it_list_ascii
    TABLES
      listobject         = it_abaplist
    EXCEPTIONS
      empty_list         = 1
      list_index_invalid = 2
      OTHERS             = 3.

  IF sy-subrc = 0.
    cl_demo_output=>display( it_list_ascii ).
  ENDIF.
ENDIF.

[ABAP] ABAP-Listausgabe in HTML wandeln

**********************************************************************
* Testausgabe
**********************************************************************
* Farbe definieren
FORMAT COLOR COL_HEADING.
* Überschriftentext
WRITE: / |Testausgabe|.
* Leerzeichen am Zeilenende, damit der Farbbalken durchgezogen wird
WRITE AT sy-linsz space.
* Farbdefinition abschalten
FORMAT COLOR OFF.

WRITE: / 'Grün' COLOR COL_POSITIVE.
WRITE: / 'Rot' COLOR COL_NEGATIVE.

ULINE.

**********************************************************************
* Aufbereitung der Listausgabe für HTML
**********************************************************************
DATA: it_list TYPE STANDARD TABLE OF abaplist WITH DEFAULT KEY.

* Listausgabe in Form einer binären internen Tabelle speichern
* Sichern einer Liste
CALL FUNCTION 'SAVE_LIST'
  TABLES
    listobject         = it_list
  EXCEPTIONS
    list_index_invalid = 1
    OTHERS             = 2.

DATA: it_html TYPE STANDARD TABLE OF w3html.

* Listausgabe -> HTML
* Converts a given listobject to html
CALL FUNCTION 'WWW_HTML_FROM_LISTOBJECT'
  TABLES
    html          = it_html
    listobject    = it_list.

* HTML-Viewer
DATA(o_hv) = NEW cl_gui_html_viewer( parent = cl_gui_container=>default_screen ).
* URL holen
DATA: lv_url TYPE swk_url.

o_hv->load_data( IMPORTING
                   assigned_url = lv_url
                 CHANGING
                   data_table   = it_html ).

* HTML-Daten anzeigen
o_hv->show_url( url      = lv_url
                in_place = abap_false ).

* cl_gui_container=>default_screen erzwingen
WRITE: space.

[ABAP] Listausgabe eines Reports holen, anzeigen, in ASCII wandeln

* https://blogs.sap.com/2016/12/29/exporting-list-to-memory-and-its-dangers/
* beliebigen Report ausführen, der eine Listausgabe hat
SUBMIT showcolo EXPORTING LIST TO MEMORY AND RETURN.

DATA: it_list TYPE STANDARD TABLE OF abaplist WITH DEFAULT KEY.

* Einlesen aufbereiteter Liste aus Memory
CALL FUNCTION 'LIST_FROM_MEMORY'
  TABLES
    listobject = it_list
  EXCEPTIONS
    not_found  = 1
    OTHERS     = 2.

IF sy-subrc = 0.
* Speicher (Liste) freigeben
* Löschen der letzten gespeicherten Liste aus dem Memory
  CALL FUNCTION 'LIST_FREE_MEMORY'.
ENDIF.

IF sy-subrc = 0.
  WRITE: / 'Listausgabe aus Report SHOWCOLO:'.

* Listausgabe des aufgerufenen Reports hier wieder anzeigen
* Anzeigen eines (gesicherten) Listobjekts
  CALL FUNCTION 'WRITE_LIST'
    TABLES
      listobject = it_list
    EXCEPTIONS
      empty_list = 1
      OTHERS     = 2.

  IF sy-subrc = 0.
    DATA: it_list_ascii TYPE list_string_table.

* Konvertieren eines (gesicherten) Listobjekts nach ASCI
    CALL FUNCTION 'LIST_TO_ASCI'
      IMPORTING
        list_string_ascii  = it_list_ascii
      TABLES
        listobject         = it_list
      EXCEPTIONS
        empty_list         = 1
        list_index_invalid = 2
        OTHERS             = 3.

    IF sy-subrc = 0.

      ULINE.

      WRITE: / 'Listausgabe ASCII-konvertiert hier im Report:'.

      LOOP AT it_list_ascii ASSIGNING FIELD-SYMBOL(<s>).
        WRITE: / <s>.
      ENDLOOP.
    ENDIF.
  ENDIF.
ENDIF.

[ABAP] SALV-Table in der Listausgabe in Custom-Container anzeigen

DATA: o_alv TYPE REF TO cl_salv_table.

START-OF-SELECTION.
  DATA: it_spfli TYPE STANDARD TABLE OF spfli WITH DEFAULT KEY.

  SELECT * FROM spfli INTO CORRESPONDING FIELDS OF TABLE it_spfli.

  WRITE: / 'GUI-Objekt in der Listanzeige'.

  ULINE.

* freier Custom-Container in der Listenansicht
  DATA(o_cnt) = NEW cl_gui_custom_container( container_name = ''
                                             repid          = 'SAPMSSY0'
                                             dynnr          = '0120' ).
* Position des Containers
  o_cnt->set_top( 50 ).
  o_cnt->set_left( 50 ).
  o_cnt->set_width( 1000 ).
  o_cnt->set_height( 200 ).


* SALV-Grid für Anzeige im Container
  TRY.
      cl_salv_table=>factory( EXPORTING
                                r_container  = o_cnt
                              IMPORTING
                                r_salv_table = o_alv
                              CHANGING
                                t_table      = it_spfli ).

      o_alv->display( ).

    CATCH cx_root INTO DATA(e_txt).
      WRITE: / e_txt->get_text( ).
  ENDTRY.

  DO 100 TIMES.
    WRITE: / |{ sy-index } Lorem ipsum.|.
  ENDDO.

[ABAP] Listenausgabe: Inhalt und Format einer Zeile lesen / ändern

Beispiel 1 (Zeile lesen)

START-OF-SELECTION.
  WRITE: / 'Feld1', 'Feld2'.

* Zeile 3 lesen
  READ LINE 3.
* Inhalt der gelesenen Zeile steht in sy-lisel
  MESSAGE sy-lisel TYPE 'S'.

Beispiel 2 (Format der geklickten Zeile ändern)

AT LINE-SELECTION.
* bei Doppelklick auf Zeile der Listenausgabe: Farben anpassen
  MODIFY CURRENT LINE FIELD FORMAT sy-index COLOR 1 LINE FORMAT COLOR 2.

Beispiel 3 (Inhalt der geklickten Zeile ändern)

AT LINE-SELECTION.
* bei Doppelklick auf Zeile der Listenausgabe: Inhalt ändern
  MODIFY CURRENT LINE LINE VALUE FROM 'Anderer Text.'.