ALV - Spaltenüberschrift ändern

Alles rund um die Sprache ABAP®: Funktionsbausteine, Listen, ALV
9 Beiträge • Seite 1 von 1
9 Beiträge Seite 1 von 1

ALV - Spaltenüberschrift ändern

Beitrag von SAPAlex (ForumUser / 87 / 0 / 0 ) »
Hallo Wissende!

Ich bin leider blutiger Anfänger in Sachen SAP und versuche mich gerade in ABAP einzuarbeiten und hätte eine Frage zu ALV:

Ich habe eine interne Tabelle und ein dazugehörige Struktur angelegt:

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.
In meinem ABAP-Code fülle ich diese Tabelle und gebe sie dann mit ALV aus:

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 funktioniert so weit auch, da aber meine Struktur LINE keine Spaltenüberschriften hat, habe ich auch in der Anzeige keine Überschriften. Wie bekomme ich für beide Spalten (col1 & col2) eine Spaltenüberschrift rein?

Danke für euer Mühe, Alex

gesponsert
Stellenangebote auf ABAPforum.com schalten
kostenfrei für Ausbildungsberufe und Werksstudenten


Re: ALV - Spaltenüberschrift ändern

Beitrag von JHM (Top Expert / 1197 / 1 / 197 ) »
SAPAlex hat geschrieben:Wie bekomme ich für beide Spalten (col1 & col2) eine Spaltenüberschrift rein?
Das geht mittels CL_SALV_COLUMNS_TABLE bzw. CL_SALV_COLUMN_TABLE.

Zum weiterlesen:
ALV OM Doku zu Spaltentitel: http://help.sap.com/saphelp_nw2004s/hel ... ontent.htm

da die Doku keine Beispiele liefert:

ALV OM Beispiel: https://www.sdn.sap.com/irj/sdn/go/port ... 30de4908a6 (Seite 5)
Gruß Hendrik

Beitrag von SAPAlex (ForumUser / 87 / 0 / 0 ) »
Hallo und Danke für die schnelle Antwort! (Wobei die Geschwindigkeit des Forums selber, ist ja nicht wirklich berauschend?!)

Diesen Link kannte ich schon. Da ich aber (noch) blutiger Anfänger bin, bräuchte ich es etwas genauer und evtl. mit Beispielcode... wenns nicht zu viel Mühe machte... :oops:

Grüße, Alex

Beitrag von SAPAlex (ForumUser / 87 / 0 / 0 ) »
nochmal ich... :)

Zu den Link mit den Beispielen: Das kannte ich auch schon. Leider weiß nicht wie ich meine Spalten referenziere. In dem Beispiel wird ja nach einer Spalte CITYTO gesucht:

Code: Alles auswählen.

gr_column ?= gr_columns->get_column( 'CITYTO' ).
Kann ich vielleicht auch einfach mit einen Index auf die Spalten der internen Tabelle verweisen? So in der Art:

Code: Alles auswählen.

gr_column ?= gr_columns->get_columnID(1 ).
Viele Grüße, Alex

Beitrag von JHM (Top Expert / 1197 / 1 / 197 ) »
SAPAlex hat geschrieben:Leider weiß nicht wie ich meine Spalten referenziere.
Am einfachsten über den Namen also CITYTO durch COL1 bzw. COL2 ersetzten. Ein Beispiel:

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( ).
Gruß Hendrik

Beitrag von SAPAlex (ForumUser / 87 / 0 / 0 ) »
Hallo!
JHM hat geschrieben:Am einfachsten über den Namen also CITYTO durch COL1 bzw. COL2 ersetzten. Ein Beispiel:
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!

Noch eine kleine Frage: wozu ist das "?" vor der "=" in dieser Zeile:

Code: Alles auswählen.

gr_column ?= gr_columns->get_column( 'COL1' ). 

Grüße, Alex

Beitrag von JHM (Top Expert / 1197 / 1 / 197 ) »
SAPAlex hat geschrieben:allerdings habe ich col1 und col2 auch klein geschrieben. Kann das schon der Fehler gewesen sein?
Ja, SAP will fast immer Großschreibung.
SAPAlex hat geschrieben: Noch eine kleine Frage: wozu ist das "?" vor der "=" in dieser Zeile:
Das ist eine Zuweisung mit Type-Cast.

Aus der F1-Hilfe:

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. 
Gruß Hendrik

Beitrag von SAPAlex (ForumUser / 87 / 0 / 0 ) »
Hallo Hendrik!
Ja, SAP will fast immer Großschreibung.
Das war der entscheidene Hinweis! DANKE, danach hab ich die letzten 1,5 Tage gesucht... :P

Vielen Dank für deine Hilfe!
Alex

Beitrag von SAPAlex (ForumUser / 87 / 0 / 0 ) »
Hallo Hendrik,

sorry, ich nochmal: :?
Wenn ich jetzt für die Spalte COL1 beim Klick auf den Spaltentitel will, dass die entsprechende Spalte sortiert wird, verwende ich die Klasse CL_SALV_FUNCTIONAL_SETTINGS und die Methode SET_SORT_ON_HEADER_CLICK?!

Leider ist der Groschen noch nicht gefallen. :oops: Ich habe in meiner Naivität gedacht es so lösen zu können:

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' ).
Das klappt aber nicht. Wenn du mir nochmal auf die Sprünge helfen könntest... 8)

Seite 1 von 1

Vergleichbare Themen

5
Antw.
3677
Views
Spaltenüberschrift im ALV
von KlausB » 14.03.2006 14:19 • Verfasst in ABAP® Core
9
Antw.
6610
Views
Tabellenausgabe mit vertikaler Spaltenüberschrift
von libo » 27.02.2014 10:56 • Verfasst in Dialogprogrammierung
7
Antw.
3271
Views
Z_BP_GUI_CONTROL_02 Spaltenüberschrift fehlt
von Mondhund76 » 24.04.2012 09:41 • Verfasst in ABAP® für Anfänger
1
Antw.
1378
Views
Spaltenüberschrift nur für erste Seite
von dyv » 08.09.2014 11:57 • Verfasst in ABAP® für Anfänger
2
Antw.
1985
Views
Zweizeilige Spaltenüberschrift im ALV möglich?
von pampelmus » 08.08.2007 10:18 • Verfasst in ABAP® für Anfänger

Über diesen Beitrag


Unterstütze die Community und teile den Beitrag für mehr Leser und Austausch

Newsletter Anmeldung

Keine Beiträge verpassen! Wöchentlich versenden wir lesenwerte Beiträge aus unserer Community.
Die letzte Ausgabe findest du hier.
Details zum Versandverfahren und zu Ihren Widerrufsmöglichkeiten findest du in unserer Datenschutzerklärung.