SALV Button menu hinzufügen?

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

SALV Button menu hinzufügen?

Beitrag von ralf.wenzel (Top Expert / 3772 / 176 / 262 ) »
Moin,

im cl_gui_alv_grid konnte man schön Button Menüs einfügen (man klickt auf den Button und es kommt ein Menü - also ein Button mit mehreren Funktionen).

Nun möchte ich zu einem Standard(!)button eine weitere Funktion hinzufügen und das auch noch im cl_salv_table....

Wer hat den besten Tipp für mich? ;)
Bild
Ralf Wenzel Heuristika SAP-Development
25 Jahre SAP-Entwickler • 20 Jahre Freiberufler
PublikationenUngarische NotationXing

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


Re: SALV Button menu hinzufügen?

Beitrag von jensschladitz (Specialist / 417 / 0 / 56 ) »
Sali,

also du willst ein Menü mit einem unter Menü haben richtig ? Dann bau dir in einem Programm einen entsprechende Status zusammen und den gibst du dann an den SALV mit der Methode set_screen_status.

Gruss
thanks Jens

Re: SALV Button menu hinzufügen?

Beitrag von ralf.wenzel (Top Expert / 3772 / 176 / 262 ) »
jensschladitz hat geschrieben:Sali,

also du willst ein Menü mit einem unter Menü haben richtig ? Dann bau dir in einem Programm einen entsprechende Status zusammen und den gibst du dann an den SALV mit der Methode set_screen_status.

Gruss
Nein, ich will einen BUTTON mit einem Menü haben. Siehe Bild....
Bildschirmfoto 2014-02-24 um 09.40.44.png
Das ist der Standard-Vorschaubutton, der einen Menüeintrag zeigt. Diesen hätte ich gern um einen weiteren Menüeintrag erweitert, wenns geht, weil ich einen weiteren Funktionscode brauche für eine "besondere" Vorschaufunktion....

Der Button sitzt direkt über dem Grid (also im Control) und nicht etwa oben in der Buttonleiste.
Bild
Ralf Wenzel Heuristika SAP-Development
25 Jahre SAP-Entwickler • 20 Jahre Freiberufler
PublikationenUngarische NotationXing

Re: SALV Button menu hinzufügen?

Beitrag von jensschladitz (Specialist / 417 / 0 / 56 ) »
Sali,

ich denke nicht, dass das so einfach machbar ist - daher würde ich das Ganze in eine eigene Function/Menü packen (den Standard verschieeben sozusagen) welches ich im Status hinzufüge und dort dann die Standard Function rein bauen plus deine Zusatzfunktion .

Gruss
thanks Jens

Re: SALV Button menu hinzufügen?

Beitrag von ralf.wenzel (Top Expert / 3772 / 176 / 262 ) »
jensschladitz hat geschrieben:Sali,

ich denke nicht, dass das so einfach machbar ist - daher würde ich das Ganze in eine eigene Function/Menü packen (den Standard verschieeben sozusagen) welches ich im Status hinzufüge und dort dann die Standard Function rein bauen plus deine Zusatzfunktion .

Gruss
Hmpf, dann lieber doch ein eigener Button im Control mit meiner Spezialfunktion....
Bild
Ralf Wenzel Heuristika SAP-Development
25 Jahre SAP-Entwickler • 20 Jahre Freiberufler
PublikationenUngarische NotationXing

Re: SALV Button menu hinzufügen?

Beitrag von jensschladitz (Specialist / 417 / 0 / 56 ) »
Sali,

welcher Menüpunkt im Standard ist das eigentlich den du da erweitern willst ?

Gruss
thanks Jens

Re: SALV Button menu hinzufügen?

Beitrag von black_adept (Top Expert / 3942 / 105 / 885 ) »

Code: Alles auswählen.

REPORT ztest.


DATA: gt_data TYPE STANDARD TABLE OF t000 WITH NON-UNIQUE DEFAULT KEY,
      go_dock TYPE REF TO cl_gui_docking_container,
      go_salv TYPE REF TO cl_salv_table,
      go_salv_functions_list TYPE REF TO cl_salv_functions_list.

*----------------------------------------------------------------------*
*       CLASS lcl_eventreceiver DEFINITION
*----------------------------------------------------------------------*
CLASS lcl_eventreceiver DEFINITION.
  PUBLIC SECTION.
    CLASS-METHODS: handle_toolbar FOR EVENT toolbar OF cl_gui_alv_grid IMPORTING e_object.
ENDCLASS.                    "lcl_eventreceiver DEFINITION

*----------------------------------------------------------------------*
*       CLASS lcl_eventreceiver IMPLEMENTATION
*----------------------------------------------------------------------*
CLASS lcl_eventreceiver IMPLEMENTATION.
  METHOD handle_toolbar.
    DATA:lo_object TYPE REF TO cl_alv_event_toolbar_set.
    BREAK-POINT.   " Hier hast du deine Toolbar
  ENDMETHOD.                    "handle_toolbar
ENDCLASS.                    "lcl_eventreceiver IMPLEMENTATION


START-OF-SELECTION.
  SELECT *
    INTO TABLE gt_data
    FROM t000.

  CREATE OBJECT go_dock
    EXPORTING
      no_autodef_progid_dynnr = 'X'
      ratio                   = 50.

  TRY.
      cl_salv_table=>factory(  EXPORTING
                                r_container    = go_dock
                              IMPORTING
                                r_salv_table   = go_salv
                              CHANGING
                                t_table        = gt_data ).

      go_salv_functions_list = go_salv->get_functions( ).
      go_salv_functions_list->set_all( ).


      go_salv->display( ).
      PERFORM grab_toolbar.  " Muss nach dem Display aufgerufen werden
    CATCH cx_salv_msg .
  ENDTRY.

END-OF-SELECTION.
  WRITE 'Ende'.

*&---------------------------------------------------------------------*
*&      Form  GRAB_TOOLBAR
*&---------------------------------------------------------------------*
FORM grab_toolbar .

  FIELD-SYMBOLS: <child> LIKE LINE OF go_dock->children.
  DATA: lo_grid TYPE REF TO cl_gui_alv_grid.


  READ TABLE go_dock->children INDEX 1 ASSIGNING <child>.
  lo_grid ?= <child>.


  SET HANDLER lcl_eventreceiver=>handle_toolbar FOR lo_grid.


  lo_grid->refresh_table_display( ).


ENDFORM.                    " GRAB_TOOLBAR
live long and prosper
Stefan Schmöcker

email: stefan@schmoecker.de

Re: SALV Button menu hinzufügen?

Beitrag von autohandel7 (Specialist / 186 / 67 / 0 ) »
ralf.wenzel hat geschrieben:
jensschladitz hat geschrieben:Sali,

also du willst ein Menü mit einem unter Menü haben richtig ? Dann bau dir in einem Programm einen entsprechende Status zusammen und den gibst du dann an den SALV mit der Methode set_screen_status.

Gruss
Nein, ich will einen BUTTON mit einem Menü haben. Siehe Bild....
Bildschirmfoto 2014-02-24 um 09.40.44.png
Das ist der Standard-Vorschaubutton, der einen Menüeintrag zeigt. Diesen hätte ich gern um einen weiteren Menüeintrag erweitert, wenns geht, weil ich einen weiteren Funktionscode brauche für eine "besondere" Vorschaufunktion....

Der Button sitzt direkt über dem Grid (also im Control) und nicht etwa oben in der Buttonleiste.
Hi Ralf ,
Hast du geschaft, eigene Button zu ALV Hinzufügen?
Ich habe auch gleiche Frage ich habe ein Report mit ALV 'cl_salv_table' gebaut und möchte gern da Button "SAVE" integriren.
Kannst du mir Code senden?
Danke.

Re: SALV Button menu hinzufügen?

Beitrag von ralf.wenzel (Top Expert / 3772 / 176 / 262 ) »
Nein, es ist mir nicht gelungen, mein Glück war, dass sich die Anforderung geändert hat ;)
Bild
Ralf Wenzel Heuristika SAP-Development
25 Jahre SAP-Entwickler • 20 Jahre Freiberufler
PublikationenUngarische NotationXing

Re: SALV Button menu hinzufügen?

Beitrag von black_adept (Top Expert / 3942 / 105 / 885 ) »
Offensichtlich war mein letztes Beispielcoding noch nicht ausreichend um daraus das gewünschte Ergebnis zu erzielen.
Dann halt noch mal - aber diesmal vollständig

Code: Alles auswählen.

report ztest.


data: gt_data                type standard table of t006 with non-unique default key,
      go_dock                type ref to cl_gui_docking_container,
      go_salv                type ref to cl_salv_table,
      go_salv_functions_list type ref to cl_salv_functions_list.


class lcl_forbidden_enhancement definition inheriting from cl_gui_alv_grid.
  public section.
    class-methods:
      enhance_view_submenu,
      handle_toolbar            for event toolbar of cl_gui_alv_grid importing e_object,
      handle_usercommand        for event user_command of cl_gui_alv_grid importing e_ucomm.
    class-data: mo_grid type ref to cl_gui_alv_grid.
endclass.


start-of-selection.
  select *
    into table gt_data
    from t006.

  create object go_dock
    exporting
      no_autodef_progid_dynnr = 'X'
      ratio                   = 50.

  try.
      cl_salv_table=>factory(  exporting
                                r_container    = go_dock
                              importing
                                r_salv_table   = go_salv
                              changing
                                t_table        = gt_data ).

      go_salv_functions_list = go_salv->get_functions( ).
      go_salv_functions_list->set_all( ).


      go_salv->display( ).
      lcl_forbidden_enhancement=>enhance_view_submenu( ).
    catch cx_salv_msg .
  endtry.

end-of-selection.
  write 'Ende'.

class lcl_forbidden_enhancement implementation.

  method enhance_view_submenu.

    field-symbols: <child> like line of go_dock->children.


    read table go_dock->children index 1 assigning <child>.
    mo_grid ?= <child>.

    set handler handle_toolbar      for mo_grid.
    set handler handle_usercommand  for mo_grid.

    mo_grid->refresh_table_display( ).  "--> Trigger Toolbar event

  endmethod.

  method handle_toolbar.
    mo_grid->m_cl_menu_button_view->add_function( fcode = 'HUGO'
                                                  text  = 'Hineingeschummelter Eintrag' ).
  endmethod.

  method handle_usercommand.
    message e_ucomm type 'I'.
  endmethod.

endclass.
Resultat:
Unbenannt.png

Folgende Benutzer bedankten sich beim Autor black_adept für den Beitrag (Insgesamt 2):
autohandel7abuma

live long and prosper
Stefan Schmöcker

email: stefan@schmoecker.de

Seite 1 von 1

Vergleichbare Themen

0
Antw.
741
Views
PFCG Menü, URL Typ hinzufügen (Sonstige)
von Sava » 21.02.2014 08:29 • Verfasst in ABAP® für Anfänger
6
Antw.
6978
Views
Toolbar - Button mit Menü
von dawns » 28.08.2008 10:03 • Verfasst in ABAP Objects®
9
Antw.
5992
Views
SAP Standard Menü-Button ausblenden
von SAP4LIFE » 05.10.2016 15:13 • Verfasst in ABAP® für Anfänger
3
Antw.
3338
Views
Doku Button in SALV Toolbar anzeigen
von osama » 08.04.2020 10:00 • Verfasst in ABAP® für Anfänger
6
Antw.
3730
Views
SALV-Varianten - Admin-Button verstecken
von DUTZMIC » 20.02.2015 09:42 • 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.