Ereignis on Toolbar - Buttons im ALV

Die Frage ist als "gelöst" markiert. Den entsprechend Beitrag findest du hier.

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

Ereignis on Toolbar - Buttons im ALV

Beitrag von JohnLocklay (Specialist / 183 / 30 / 2 ) »
Moin Gemeinde

Ich verzweifel gerade mal wieder.

Ich hab eine lokale Ereignisklasse geschrieben mit
den methoden handle_toolbar und handle_user_command.

in der Handle toolbar erzeuge ich 2 Buttons und die user_command methode soll eignetlich auf
den Auslöser des Buttons reagieren.

Die Buttons werden angezeigt aber die methode handle_user_command wird einfach nicht aufgerufen.

ich instanziere das objekt.
ich registriere meine beiden events mit set handler.
und führe die methode go_alv->set_toolbar_interactive( ). aus.

aber es passiert einfach nix oO

Hat jemand ne spontane Idee?

Für jede Hilfe dankbar

John.
Code once - Think twice

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


Re: Ereignis on Toolbar - Buttons im ALV

Beitrag von JohnLocklay (Specialist / 183 / 30 / 2 ) »
vielleicht nochmal zur verständlichkeit der code.

hier meine Klasse

Code: Alles auswählen.

CLASS lcl_service 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
          sender.


ENDCLASS.                    "lcl_service DEFINITION

*----------------------------------------------------------------------*
*       CLASS lcl_service IMPLEMENTATION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS lcl_service IMPLEMENTATION.

METHOD handle_toolbar.

    DATA button TYPE stb_button.

    CLEAR button.
    button-function  = 'CREATE'.
    button-quickinfo = 'Hinzufügen'.
    button-butn_type = 2.
    button-disabled  = ' '.
    button-text = 'Benutzergruppe Hinzufügen'.
    APPEND button TO e_object->mt_toolbar.

  ENDMETHOD.

* Methode um Auf das ereignis des ALV Button
* zu reagieren

 METHOD handle_user_command.

    CASE e_ucomm.

      WHEN 'CREATE'.

          BREAK-POINT.

      ENDCASE.

  ENDMETHOD.

ENDCLASS.    
und hier meine registrierung

Code: Alles auswählen.

    CREATE OBJECT lr_service.

    SET HANDLER lr_service->handle_user_command FOR 1022_go_alv.
    SET HANDLER lr_service->handle_toolbar      FOR 1022_go_alv.

    1022_go_alv->set_toolbar_interactive( ).
Code once - Think twice

Re: Ereignis on Toolbar - Buttons im ALV

Beitrag von a-dead-trousers (Top Expert / 4285 / 214 / 1141 ) »
Hast du es schon mal mit BEFORE_USER_COMMAND versucht?
Das Event wird in den Methoden EXECUTE_FCODE und RAISE_EVENT des ALV-Grids ausgelöst. Setz da mal einen Break-Point rein, aktiviere das Systemdebugging und schau dir an was da genau passiert.
Wozu dient eigentlich die Mehtode SET_TOOLBAR_INTERACTIVE? Die hab ich noch nie verwendet. Hast du schon mal versucht das wegzulassen?

Eigentlich eine Anfängerfrage: Hast du sichergestellt, dass dein ALV-Grid wirklich nur einmal instanziert wird? Ein Dynpro durchläuft ständig den PAI/PBO Zyklus und wenn man da nicht auf IS BOUND oder IS NOT INITIAL abfragt, wird das Grid ständig neu instanziert und die Events bzw. die Anzeigen passen nicht mehr zusammen.
Theory is when you know something, but it doesn't work.
Practice is when something works, but you don't know why.
Programmers combine theory and practice: Nothing works and they don't know why.

ECC: 6.18
Basis: 7.50

Re: Ereignis on Toolbar - Buttons im ALV

Beitrag von JohnLocklay (Specialist / 183 / 30 / 2 ) »
jas, ich verstehe Deine Frage, beim coden kann ja alles passieren ;-)
Aber ich habe natürlich Container und gridinstanzierung mit if go_cont is not bound usw abgesichert.
Wenn ich die Methode set_toolbar_interactive( ). weglasse werden die Buttons erst gar nicht angezeigt.

Ich habe mein Coding jetzt noch mal mit diesem BCALV5 Dings Testprogramm abgeglichen
und da findet alles genau so statt oO.

Ich erkenne jetzt erstmal keine groben fehler
in der klasse, sowie in der Handler Registrierung.
Code once - Think twice

Re: Ereignis on Toolbar - Buttons im ALV

Beitrag von black_adept (Top Expert / 3946 / 105 / 886 ) »

Code: Alles auswählen.

   button-butn_type = 2.
Das ist doch ein Kontextmenübutton und dementspechend würde der Event CONTEXT_MENU getriggert und nicht USER_COMMAND. Ein "normaler" Button wie du ihn wohl meinst hat

Code: Alles auswählen.

   button-butn_type = 0.

Folgende Benutzer bedankten sich beim Autor black_adept für den Beitrag:
JohnLocklay

live long and prosper
Stefan Schmöcker

email: stefan@schmoecker.de

Re: Ereignis on Toolbar - Buttons im ALV

Beitrag von JohnLocklay (Specialist / 183 / 30 / 2 ) »
Aaaaaallllterr..

Danke!!!! Ich hab mich schon gewundert
warum da so schwarze ecken auf dem Button waren.
Das kann ja wohl nicht war sein. Jetzt gehts!!

Ich fall um...
Code once - Think twice

Seite 1 von 1

Vergleichbare Themen

4
Antw.
408
Views
0
Antw.
799
Views
ALV Buttons
von robz » 27.11.2006 16:08 • Verfasst in ABAP® Core
10
Antw.
4108
Views
ALV Eigene Buttons
von SAP_ENTWICKLER » 19.08.2015 08:44 • Verfasst in ABAP® Core
1
Antw.
1551
Views
Buttons in der Listenansicht
von axxter » 24.02.2005 11:06 • Verfasst in ABAP® Core
0
Antw.
1993
Views
TABLEVIEW mit Buttons
von cloenne » 10.09.2008 14:44 • Verfasst in Web-Dynpro, BSP + BHTML

Über diesen Beitrag


Die Frage ist als "gelöst" markiert. Den entsprechend Beitrag findest du hier.

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.