ALV Muster für CL SALV Klassen

Aus SAP Wiki ツ


https://www.berater-wiki.de/ALV-Vorlage_CL_SALV*

Mirror
DATA: gt_spfli     TYPE TABLE OF spfli.                  "Flugdaten

DATA: go_functions TYPE REF TO cl_salv_functions.        "Symbolleiste

DATA: go_table     TYPE REF TO cl_salv_table.            "Klasse

DATA: go_display   TYPE REF TO cl_salv_display_settings. "Displayeinstellungen

DATA: go_columns   TYPE REF TO cl_salv_columns_table.    "Spaltenmanipulation
DATA: go_column    TYPE REF TO cl_salv_column_table.

DATA: color        TYPE lvc_t_scol.                      "Farbe (Feld in Ausgabetabelle)

DATA: go_sorts     TYPE REF TO cl_salv_sorts.            "Sortierung
DATA: go_agg       TYPE REF TO cl_salv_aggregations.     "Aggregation

DATA: go_filter    TYPE REF TO cl_salv_filters.          "Filter

DATA: go_layout    TYPE REF TO cl_salv_layout.           "Layout

DATA: key          TYPE salv_s_layout_key.


**********************
* Start-Of-Selection *
**********************
START-OF-SELECTION.

* Selektion Flugdaten
  SELECT * INTO TABLE gt_spfli FROM spfli.


* Entscheidung welche Darstellung erfolgen soll, hier Vollscreen Dynpro
  cl_salv_table=>factory( IMPORTING r_salv_table = go_table
                          CHANGING t_table = gt_spfli ).

* Symbolleiste wird eingeblendet
  go_functions = go_table->get_functions( ).
  go_functions->set_all( abap_true ).

  go_display = go_table->get_display_settings( ).
  go_display->set_striped_pattern( cl_salv_display_settings=>true ).

* Titel setzen
  go_display->set_list_header( 'Flugdatenmodell' ).

* Eine Spalte ALV besorgen
  go_columns = go_table->get_columns( ).
  go_column ?= go_columns->get_column( 'CITYTO' ).

* Überschriftenbezeichnung ändern
  go_column->set_long_text( 'Lange Überschrifte' ).      "max. 40 Zeichen
  go_column->set_medium_text( 'Mittlere Überschrift' ).  "max. 20 Zeichen
  go_column->set_short_text( 'Überschr.' ).              "max. 10 Zeichen

* Sortierung ALV ändern
  go_sorts = go_table->get_sorts( ).
 "gr_sorts->add_sort( 'CITYTO' ).

* Filter definieren
  go_filter = go_table->get_filters( ).
  go_filter->add_filter( columnname = 'CARRID' low = 'LH' ).

* Layout (Layoutänderungen abspeicherbar)
  go_layout = go_table->get_layout( ).
  key-report = sy-repid.
  go_layout->set_key( key ).
  go_layout->set_save_restriction( cl_salv_layout=>restrict_none ).

* Farben für Zeilen/Zellen
"Loop .. assigning <ausgabezeile>.
"       <ausgabezeile>-color = value #( ( color-col = 5     "grün
"                                         color-int = 0
"                                         color-inv = 0 ) ).
"ENDLOOP.

* Vor dem Aufruf der DISPLAY-Methode wird das Color-Feld dem ALV bekannt gemacht.
 "lo_alv->get_columns( )->set_color_column( 'COLOR' ).

*******************
* Anzeige Tabelle *
*******************
  go_table->display( ).