CL_SALV_TABLE Fullscreen Grid: Spalte als Button definieren

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

CL_SALV_TABLE Fullscreen Grid: Spalte als Button definieren

Beitrag von DeathAndPain (Top Expert / 1967 / 261 / 415 ) »
Hallo zusammen,

ich benutze eine Fullscreen ALV, erzeugt per CL_SALV_TABLE. In meiner Ausgabetabelle ist eine Spalte namens CELLTYPE definiert und per CL_SALV_COLUMNS_TABLE->SET_CELL_TYPE_COLUMN als Zellentypfeld definiert. Bei zwei bestimmten Spalten setze ich dort VALUE = if_salv_c_cell_type=>button, um die betreffende Spalte als Button-Spalte zu deklarieren. (Anmerkung: Bitte beachten, dass ich von einem Fullscreen Grid rede. Bei einem Container-Grid würde man das anders machen und die Methode CL_SALV_COLUMN_TABLE->SET_CELL_TYPE benutzen, aber die ist bei Fullscreen ALVs nicht zulässig (Dump mit entsprechendem Hinweis).)

Das Ganze funktioniert auch dahingehend, dass mir die betreffenden Spalten als Button-Spalten ausgegeben werden. Nur: Wenn ich auf solch Button draufklicke, passiert nichts. Ich würde erwarten, dass hier das Event LINK_CLICK aus der CL_SALV_EVENTS_TABLE ausgelöst wird, aber das ist nicht der Fall. Wenn ich eine der Spalten von if_salv_c_cell_type=>button zu if_salv_c_cell_type=>hotspot ändere, funktioniert es sofort, und ich bekomme den Event (aber halt keinen Button mehr). Nach allem, was ich gelesen habe, müsste dieser Event auch für Buttons verwendet werden.

Ist das lösbar, oder hat die SAP die Button-Funktionalität beim Fullscreen ALV vergurkt? (Ich sitze hier auf Release 7.40.)

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


Re: CL_SALV_TABLE Fullscreen Grid: Spalte als Button definieren

Beitrag von PeterPaletti (Specialist / 359 / 33 / 99 ) »
Wenn ich die Kommentare im SAP-Report SALV_TEST_TABLE_COLUMNS richtig deute, dann ist das Setzen eines Buttons in eine Spalte beim Fullscreen Modus des SALV nicht möglich.

Code: Alles auswählen.

* Zeile 500 
*... §4.6 set button column   " celltype button  for fullscreen not supported
  try.
      lr_column ?= lr_columns->get_column( 'BUTTON' ).
*      lr_column->set_cell_type( if_salv_c_cell_type=>button ).
      lr_column->set_icon( if_salv_c_bool_sap=>true ).
      lr_column->set_long_text( 'BUTTON' ).
      lr_column->set_tooltip( 'Buttons not supported' ).
    catch cx_salv_not_found.                            "#EC NO_HANDLER
  endtry.
Und:

Code: Alles auswählen.

* Zeile 969 
*... §4.6 set button column   "only valid for grid adapter
    try.
        lr_column ?= lr_columns->get_column( 'BUTTON' ).
        lr_column->set_cell_type( if_salv_c_cell_type=>button ).
        lr_column->set_icon( if_salv_c_bool_sap=>true ).
        lr_column->set_long_text( 'BUTTON' ).
      catch cx_salv_not_found.                          "#EC NO_HANDLER
    endtry.


Re: CL_SALV_TABLE Fullscreen Grid: Spalte als Button definieren

Beitrag von black_adept (Top Expert / 4121 / 130 / 955 ) »
Genau das ist der Grund, warum ich in fast allen Fällen, in denen ich eigentlich einen Fullscreengrid haben möchte, auf folgendes Ersatzcoding zurückgreife, welches es de facto in einen Containergrid umwandelt, der so aussieht wie ein Fullscreengrid, aber eben die volle Funktionalität des Containergrids zur Verfügung stellt ( und sogar die ALV-Funktionen von den Programmfunktionen trennt ).
Einziger Nachteil ist, dass der sich über alle Fullscreenfenster legt und z.B. die SOS-Funktion damit nicht mehr (richtig) funktioniert. Aber für sehr, sehr viele Programme ist diese Vorgehensweise absolut ausreichend.

Code: Alles auswählen.

cl_salv_table=>factory( exporting r_container = cl_gui_container=>screen_0 
...
write '.'. " Damit erzeuge ich eine Ausgabeliste, über die sich der SALV legt
live long and prosper
Stefan Schmöcker

email: stefan@schmoecker.de

Re: CL_SALV_TABLE Fullscreen Grid: Spalte als Button definieren

Beitrag von DeathAndPain (Top Expert / 1967 / 261 / 415 ) »
PeterPaletti hat geschrieben:
07.03.2025 05:13
Wenn ich die Kommentare im SAP-Report SALV_TEST_TABLE_COLUMNS richtig deute, dann ist das Setzen eines Buttons in eine Spalte beim Fullscreen Modus des SALV nicht möglich.
Habe ich auch gesehen. Nur: Die Buttons erscheinen ja. Sie zu setzen, ist also möglich. Nur das Ereignis kommt nicht an. Wie dämlich kann das sein!?

Seite 1 von 1

Vergleichbare Themen

6
Antw.
3647
Views
SALV Fullscreen pf-status für Toolbar
von Cubitus » 03.05.2024 14:20 • Verfasst in ABAP® für Anfänger
11
Antw.
4630
Views
ALV Filter Spalte definieren
von SvenL » 12.12.2013 12:15 • Verfasst in ABAP® Core
3
Antw.
2643
Views
SALV Smartforms: Spalte als Barcode drucken
von ralf.wenzel » 23.08.2018 14:20 • Verfasst in ABAP® Core
3
Antw.
2114
Views
SALV: CHAR-Spalte numerisch sortieren
von ralf.wenzel » 28.09.2017 12:59 • Verfasst in ABAP Objects®
9
Antw.
10873
Views
SALV Button menu hinzufügen?
von ralf.wenzel » 23.02.2014 12:54 • Verfasst in ABAP Objects®

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.