Clickhandler im SE24

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

Clickhandler im SE24

Beitrag von Abapanfänger (ForumUser / 59 / 16 / 1 ) »
Hallo zusammen

Ich habe im PF-Status ein Button deklariert.
Den Button würde ich gerne in meiner Klasse abfangen.
Ich habe einige Anleitungen gefunden, jedoch keine wie man es im SE24 also GUI programmiert.

Wie muss ich da vorgehen, damit ich mein Klick abfangen kann?

Hängt es mit dem Raster "Ereignisse"(Events) zusammen?
Auch wenn das prinzip in einer lokalen Klasse gleich ist finde ich nicht heraus wie man es über die Oberfläche macht.

Ich bedanke mich schon mal im Voraus.
Freundliche Grüsse,

ABAPanfänger

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


Re: Clickhandler im SE24

Beitrag von sapnup (ForumUser / 42 / 14 / 12 ) »
Hallo Abapanfänger,

falls ich dich richtig verstehe kanns du bereits den Handler in einer lokalen Klasse anlegen, jedoch noch nicht in einer globalen. Um den Handler in einer globalen Klasse anzulegen, ruf diese Klasse zuerst in SE24 auf und gehe in den Methoden-Tab. Von hier an hast du zwei Wege:

1. Über den Queltext-Editor (Button "Queltextbasiert") kannst du, wie in einer lokalen Klasse, eine Handlermethode anlegen. Also mit der Definition:

Code: Alles auswählen.

methods myHandler for event myEvent of class myClass.
und einer entsprechenden Implementierung.

2. Wenn du es lieber grafisch magst, dann such nach dem Button "zu Eigenschaften wechseln" in der Methodenübersicht. Der ruft ein Eigenschaftenfenster zu einer Methode auf, wo du die Methode als Eventhandler deklarieren kannst.

Gruß!

Edit:
Was mich etwas irritiert ist: sind die PF-Buttons nicht die, die beim Anklicken den PAI auslösen? Wenn das der Fall ist, dann brauchst du für die keinen Event-Handler, sondern kannst direkt auf den von dir eingegebenen OK-Code (über sy-ucomm) im PAI reagieren.

Folgende Benutzer bedankten sich beim Autor sapnup für den Beitrag:
Abapanfänger


Re: Clickhandler im SE24

Beitrag von fr-g (ForumUser / 76 / 12 / 25 ) »
Um dir da weiterhelfen zu können, müsste man wissen, auf welcher Art von Screen deine Buttons erscheinen sollen. Geht es um klassische Dynpros oder (S)ALV ohne eigens angelegtes Dynpro oder eine klassische Liste oder...? Wo und wie setzt du den PFSTATUS?

Re: Clickhandler im SE24

Beitrag von Abapanfänger (ForumUser / 59 / 16 / 1 ) »
fr-g hat geschrieben:Um dir da weiterhelfen zu können, müsste man wissen, auf welcher Art von Screen deine Buttons erscheinen sollen. Geht es um klassische Dynpros oder (S)ALV ohne eigens angelegtes Dynpro oder eine klassische Liste oder...? Wo und wie setzt du den PFSTATUS?
Ich benutze eine SALV aber mit einer selbst angelegten PF-Status

Code: Alles auswählen.

   
    SET PF-STATUS 'SALV_EXE'.
    lo_alv->set_screen_status(
    pfstatus      =  'SALV_EXE'
    report        =  'Report_name'
    set_functions = lo_alv->c_functions_all ).
Sollte ich den Button nicht durch den PF-Status anlegen, falls ich kein Dynpro benutzen möchte?

Re: Clickhandler im SE24

Beitrag von fr-g (ForumUser / 76 / 12 / 25 ) »
Abapanfänger hat geschrieben:Ich benutze eine SALV aber mit einer selbst angelegten PF-Status
Das hab ich mir gedacht :)

Den Befehl SET PF-STATUS brauchst du nicht....du nutzt einfach nur die Methode set_screen_status.
sapnup hatte weiter oben ja schon erklärt, wie du die Event-Handler-Klasse in der SE24 anlegst. Diese Klasse muss eine Methode haben, z.B.

Code: Alles auswählen.

METHODS:
    on_user_command FOR EVENT added_function OF cl_salv_events IMPORTING e_salv_function.
In der Methodenimplementierung fragst du dann den Funktionscode ab, den du im PF-Status angegeben hast, und reagierst entsprechend darauf:

Code: Alles auswählen.

  METHOD on_user_command.
    CASE e_salv_function.
      WHEN 'DEIN_FUNKTIONSCODE'.
        "Tu etwas
    ENDCASE.
Jetzt musst du nur noch in deiner anderen Klasse/deinem Programm (in dem du set_screen_status aufrufst) vor lo_alv->display dir ein Events-Objekt geben lassen, ein Objekt von deiner Event-Handler-Klasse erzeugen und dieses Objekt für das Ereignis on_user_command registrieren:

Code: Alles auswählen.

lo_alv->set_screen_status(
          pfstatus = 'SALV_EXE'
          report = 'REPORT_NAME'
          set_functions = lo_alv->c_functions_all ).

lo_events = lo_alv->get_event( ).
CREATE OBJECT lo_event_handler.
SET HANDLER lo_event_handler->on_user_command FOR lo_events.

Seite 1 von 1

Vergleichbare Themen

0
Antw.
764
Views
SE24 stürzt reproduzierbar ab
von ralf.wenzel » 08.12.2016 13:16 • Verfasst in ABAP® Core
5
Antw.
2733
Views
PUBLIC TYPE DEF in SE24 Klasse
von Thomas R. » 30.07.2007 17:05 • Verfasst in ABAP Objects®
10
Antw.
4436
Views
SE24->Programmlokale Klassen importieren
von ralf.wenzel » 08.01.2014 19:24 • Verfasst in ABAP Objects®
8
Antw.
3667
Views
SE24/SE80: Sortierung vorbelegen
von ralf.wenzel » 14.02.2018 09:35 • Verfasst in ABAP Objects®
8
Antw.
4625
Views
Tabelle mit Objektreferenzen über SE24 anlegen
von ABAP_User » 25.11.2011 23:44 • Verfasst in ABAP Objects®

Ü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 3 Tagen von Lucyalison 1 / 71
Group Items auf einer Filterbar
vor einer Woche von Bright4.5 1 / 111
tRFC Transaktionen SM58
vor 4 Wochen von A6272 1 / 141