CL_GUI_ALV_GRID- Toolbar - eigener Button

Die Objektorientierung mit ABAP®: Vererbung, Dynamische Programmierung, GUI Controls (u.a. ALV im OO).
5 Beiträge • Seite 1 von 1
5 Beiträge Seite 1 von 1

CL_GUI_ALV_GRID- Toolbar - eigener Button

Beitrag von Dolph (ForumUser / 33 / 0 / 0 ) »
Hallo,
ich möchte inder Toolbat eines CL_GUI_ALV_GRID einen eigenen Button verwenden bzw. kreieren.
Was hab ich da zu tun?
Bis jetzt hab ich nur die Funktion toolbar-excluding gefunden bei der man Standardbuttons ausschalten kann.

Beispiel:
Ich habe im CL_GUI_ALV_GRID eine Tabelle erzeugt, wenn ich nun einen Button drücke werden Inhalte dieser Tabelle verwendet um eine Lieferplaneinteilung zu erstellen.
Mir fehlt eigetnlich nur noch der Sprung mit dem Button!!
Kann mir jermand helfen bitte??

Gruß
Dolph

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


Beitrag von jupp ( / / 0 / 3 ) »
Du brauchst einen Ereignishandler der auf das Ereignis 'toolbar' des Grids reagiert, in der Methode des Handlers wird der Button hinzugesetzt

Code: Alles auswählen.

    DATA button  TYPE stb_button.
    CLEAR button.
    button-function  = 'SUBRC'.
    button-icon      = icon_execute.
    button-quickinfo = 'Funktion'.
    button-butn_type = 2.
    button-disabled  = ' '.
    button-text = 'meine Funktion'.
    APPEND button TO e_object->mt_toolbar.


Dann brauchst du eine Ereignishandlermethode die auf das Ereignis 'user_command' des Grid reagiert, übergeben wird der Funktionscode e_ucomm, der als button-function hinterlegt wurde.

Die Ereignishandlermethoden müssen natürlich für das Grid wie übliche mit SET HANDLER registriert werden.

Zusätzlich braucht man nach der Registrierung einen Aufruf der Methode set_toolbar_interactive des Grid, das das Ereignis toolbar auslöst und den Inhalt prozessiert sprich den Button zur Anzeige bringt.

Toolbar

Beitrag von Dolph (ForumUser / 33 / 0 / 0 ) »
Du hast nicht zufällig ein bisschen mehr Codign oder ein Beispiel ??

Dolph

habbich

Beitrag von jupp ( / / 0 / 3 ) »
Hab ich.

1. Lokale Klasse für Ereignishandler bauen
a) Definition

Code: Alles auswählen.

CLASS lcl_event_receiver DEFINITION.
  PUBLIC SECTION.
    METHODS:
    handle_toolbar
        FOR EVENT toolbar OF   
            cl_gui_alv_grid
            IMPORTING e_object  
                      e_interactive,
    handle_user_command
        FOR EVENT user_command OF 
            cl_gui_alv_grid
            IMPORTING e_ucomm.
ENDCLASS.
b) Implementation

Code: Alles auswählen.

CLASS lcl_event_receiver IMPLEMENTATION.
  METHOD handle_toolbar.
  DATA button  TYPE stb_button.
*   Einfügen eines Separators = 
*   senkrechter Strich zum Absetzen 
*   von anderen Buttons
    CLEAR button.
    button-butn_type = 3. "Separator
    APPEND button TO e_object->mt_toolbar.


*   Einfügen Button
    CLEAR button.
    button-function  = 'RETURN'. 
    button-icon      = icon_execute.  
    button-quickinfo = 'Info'.
    button-butn_type = '2' "normaler Btn.
    button-disabled  = ' '.
    button-text = 'Meine Funktion'.
    APPEND button TO e_object->mt_toolbar.
  ENDMETHOD.

  METHOD handle_user_command.
    CASE e_ucomm.
      WHEN 'RETURN'.
*       hier kommt Quellcode für 
*       Funktion rein
      WHEN OTHERS.
    ENDCASE.
  ENDMETHOD.

ENDCLASS.
2. Feld für Ereignishandler deklarieren

Code: Alles auswählen.

DATA gref_event_receiver type ref to 
lcl_event_receiver.


3.Nach Aufruf Grid first_display,
a) Ereignishandler instanziieren
b) Ereignisse auf Handler registrieren
c) Methode toolbar_interactive ausführen

Code: Alles auswählen.

CALL METHOD grid->set_table_for_first_display
      EXPORTING
[...]
* a) instanziieren
CREATE OBJECT gref_event_receiver.

* b) registrieren
SET HANDLER gref_event_receiver->handle_user_command
              gref_event_receiver->handle_toolbar FOR ALL INSTANCES.

* c) Methodenaufruf, löst Ereignis 
*    toolbar aus und zeigt Button an 
  CALL METHOD grid->set_toolbar_interactive.

Beitrag von bobo ( / / 0 / 3 ) »
mal wieder zwischendurch als Tip:

SE38
name: BCALV*

und sich da mal umsehen ;)

ps: zu deinem problem sollte der report BCALV_GRID_05 dienlich sein!

Seite 1 von 1

Vergleichbare Themen

5
Antw.
3376
Views
Button in ALV Toolbar
von Ines » 29.06.2007 14:11 • Verfasst in ABAP® für Anfänger
0
Antw.
889
Views
ALV Toolbar INSERT Button
von SAP_ENTWICKLER » 06.12.2017 07:49 • Verfasst in ABAP® Core
6
Antw.
6981
Views
Toolbar - Button mit Menü
von dawns » 28.08.2008 10:03 • Verfasst in ABAP Objects®
2
Antw.
2148
Views
Button aus Toolbar entfernen
von Bugfix13 » 21.05.2014 10:40 • Verfasst in ABAP® für Anfänger
5
Antw.
3688
Views
Toolbar button hinzufügen
von Paradoxon5 » 17.12.2015 13:37 • Verfasst in ABAP® Core

Ü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.

Unbeantwortete Forenbeiträge

Zwischensumme Adobe Forms
vor 4 Tagen von Lucyalison 1 / 72
Group Items auf einer Filterbar
vor einer Woche von Bright4.5 1 / 111
tRFC Transaktionen SM58
vor 4 Wochen von A6272 1 / 141