Clickhandler im SE24


Die Objektorientierung mit ABAP®: Vererbung, Dynamische Programmierung, GUI Controls (u.a. ALV im OO).

Moderatoren: Jan, Steff

Clickhandler im SE24

Beitragvon Abapanfänger » 13.11.2017, 14:32

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
Abapanfänger
ForumUser
 
Beiträge: 25
Registriert: 11.08.2015, 12:33
Dank erhalten: 0 mal
Ich bin: Student/in

Sponsor

Alte ABAP-Entwicklerweisheit: Weißt du weder aus noch ein, baust du einen BADI ein

Re: Clickhandler im SE24

Beitragvon sapnup » 13.11.2017, 15:55

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.

Für diese Nachricht hat sapnup einen Dank bekommen :
Abapanfänger
sapnup
ForumUser
 
Beiträge: 26
Registriert: 14.06.2016, 07:16
Dank erhalten: 4 mal
Ich bin: Entwickler/in

Re: Clickhandler im SE24

Beitragvon fr-g » 13.11.2017, 16:41

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?
fr-g
ForumUser
 
Beiträge: 19
Registriert: 26.05.2017, 15:25
Dank erhalten: 9 mal
Ich bin: Entwickler/in

Re: Clickhandler im SE24

Beitragvon Abapanfänger » 14.11.2017, 08:08

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?
Abapanfänger
ForumUser
 
Beiträge: 25
Registriert: 11.08.2015, 12:33
Dank erhalten: 0 mal
Ich bin: Student/in

Re: Clickhandler im SE24

Beitragvon fr-g » 14.11.2017, 10:12

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.
fr-g
ForumUser
 
Beiträge: 19
Registriert: 26.05.2017, 15:25
Dank erhalten: 9 mal
Ich bin: Entwickler/in


Zurück zu ABAP Objects®

  Aktuelle Beiträge   
gelöst Protokoll vergangener RFC Aufrufe
vor 16 Stunden von Dele 3 Antw.
BREAK-POINT-IDs verwenden
vor 15 Stunden von ralf.wenzel 2 Antw.
MEREQ001 Zusatzfelder ausblenden
vor 3 Tagen von SAP4Echo 0 Antw.
gelöst Z Tabelle Key Feld ändern
vor 3 Tagen von DeathAndPain 3 Antw.
gelöst Funktionsbaustein EXIT_SAPLCORF_404 in Transaktion COR6N
vor 20 Stunden von SAP_ENTWICKLER 2 Antw.

  Ähnliche Beiträge beta
gelöst PUBLIC TYPE DEF in SE24 Klasse
31.07.2007, 14:18 von schmitzandreas 5 Antw.
SE24->Programmlokale Klassen importieren
09.01.2014, 15:55 von ralf.wenzel 10 Antw.
Tabelle mit Objektreferenzen über SE24 anlegen
29.11.2011, 16:52 von Haubi 8 Antw.

 

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder

Feedback ...?

Was können wir verbessern? Hinterlasse deine Kontaktdaten, wenn du eine direkte Antwort möchtest.

... Absenden!