Code: Alles auswählen.
CLASS-DATA: BEGIN OF line,
col1 TYPE string,
col2 TYPE i,
END OF line.
CLASS-DATA itab LIKE TABLE OF line.
Code: Alles auswählen.
DATA alv TYPE REF TO cl_salv_table.
cl_salv_table=>factory(
IMPORTING r_salv_table = alv
CHANGING t_table = itab ).
alv->display( ).
Das geht mittels CL_SALV_COLUMNS_TABLE bzw. CL_SALV_COLUMN_TABLE.SAPAlex hat geschrieben:Wie bekomme ich für beide Spalten (col1 & col2) eine Spaltenüberschrift rein?
Code: Alles auswählen.
gr_column ?= gr_columns->get_column( 'CITYTO' ).
Code: Alles auswählen.
gr_column ?= gr_columns->get_columnID(1 ).
Am einfachsten über den Namen also CITYTO durch COL1 bzw. COL2 ersetzten. Ein Beispiel:SAPAlex hat geschrieben:Leider weiß nicht wie ich meine Spalten referenziere.
Code: Alles auswählen.
REPORT ztest_alv_om.
TYPES: BEGIN OF t_line,
col1 TYPE string,
col2 TYPE i,
END OF t_line.
DATA: gt_data TYPE TABLE OF t_line,
gw_data TYPE t_line.
DATA: gr_alv TYPE REF TO cl_salv_table,
gr_columns TYPE REF TO cl_salv_columns_table,
gr_column TYPE REF TO cl_salv_column_table.
START-OF-SELECTION.
* Daten füllen
DO 10 TIMES.
CLEAR gw_data.
gw_data-col1 = 'Text'.
gw_data-col2 = sy-index.
APPEND gw_data TO gt_data.
ENDDO.
* Alv erzeugen
cl_salv_table=>factory( IMPORTING r_salv_table = gr_alv
CHANGING t_table = gt_data ).
* Überschriften ändern
gr_columns = gr_alv->get_columns( ).
* erste Spalte
gr_column ?= gr_columns->get_column( 'COL1' ).
gr_column->set_long_text( 'COL1 long' ).
gr_column->set_medium_text( 'COL1 med' ).
gr_column->set_short_text( 'COL1 short' ).
* zweite Spalte
gr_column ?= gr_columns->get_column( 'COL2' ).
gr_column->set_long_text( 'COL2 long' ).
gr_column->set_medium_text( 'COL2 med' ).
gr_column->set_short_text( 'COL2 short' ).
* Alv anzeigen
gr_alv->display( ).
vielen lieben Dank! Genau so habe ich das schon probiert... allerdings habe ich col1 und col2 auch klein geschrieben. Kann das schon der Fehler gewesen sein? Ich probiere das gleich heute Abend aus!JHM hat geschrieben:Am einfachsten über den Namen also CITYTO durch COL1 bzw. COL2 ersetzten. Ein Beispiel:
Code: Alles auswählen.
gr_column ?= gr_columns->get_column( 'COL1' ).
Ja, SAP will fast immer Großschreibung.SAPAlex hat geschrieben:allerdings habe ich col1 und col2 auch klein geschrieben. Kann das schon der Fehler gewesen sein?
Das ist eine Zuweisung mit Type-Cast.SAPAlex hat geschrieben: Noch eine kleine Frage: wozu ist das "?" vor der "=" in dieser Zeile:
Code: Alles auswählen.
Die Varianten mit dem Sprachelement ?TO bzw. dem Zuweisungsoperator ?= (Casting-Operator) müssen verwendet werden, wenn source und destination Referenzvariablen sind und der statische Typ von source allgemeiner als der statische Typ von destination ist (Widening Cast). Für Zuweisungen zwischen Operanden, die keine Referenzvariablen sind, ist die Verwendung des Fragezeichens ? nicht erlaubt.
Code: Alles auswählen.
DATA sorting TYPE REF TO cl_salv_functional_settings.
sorting = alv->get_functional_settings( ).
sorting->set_sort_on_header_click( 'COL1' ).