Ausgewähltes / aktives CUSTOM CONTROL bei F2-Tastendruck

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

Benutzeroberflächen in SAP®-Systemen.
3 Beiträge • Seite 1 von 1
3 Beiträge Seite 1 von 1

Ausgewähltes / aktives CUSTOM CONTROL bei F2-Tastendruck

Beitrag von Gokar (ForumUser / 23 / 19 / 3 ) »
Hallo in die Runde,

ich habe aktuell leider ein Problem mit dem F2-Tastendruck (der Doppelklick ist hier nicht das Problem, der funktioniert).

Kennt jemand eine Möglichkeit, zum Zeitpunkt PAI (process-after-input) festzustellen, ob ein bzw. welches Custom Control zum Zeitpunkt des F2-Tastendrucks ausgewählt / aktiv ist?

Die Anweisungen GET CURSOR FIELD und GET CURSOR LINE funktionieren ja leider nicht für Custom Controls, sondern nur für Dynprofelder und Tablecontrolls.

***

Hier noch eine kurze Hintergrundbeschreibung:

- Das betroffene Dynpro beinhaltet mehrere ALV-Grid-Elemente, jeweils über ein Custom Control eingebunden, als auch simple Dynpro-Textfelder.
- In den ALV-Grid-Elementen kann eine Zeile ausgewählt werden, daraufhin werden die Dynpro-Textfelder entsprechend mit den zur ausgewählen Zeile gehörenden Daten versorgt. Hierzu wurden jeweils die Events DOUBLE_CLICK und ON_LINK_CLICK der Klasse CL_SALV_EVENTS_TABLE registriert und mit Logik versorgt.
- Einige Dynpro-Textfelder sind doppelklicksensitiv (bspw. zum Absprung in eine Transaktion). Im zugehörigen GUI-Status wurde daher dem F2-Tastendruck der dazu übliche Funktionscode 'PICK' zugeordnet.
- Zur Bestimmung auf welches Dynpro-Textfeld geklickt wurde, wird die Anweisung GET CURSOR FIELD verwendet.

- Ohne die Zuordnung eines Funktionscodes zur F2-Taste über den GUI-Status wird beim Drücken der F2-Taste im ALV-Grid normalerweise automatisch das Ereignis DOUBLE_CLICK ausgelöst (natürlich nur sofern registriert, etc.). Im Anschluss erfolgt der Aufruf der PAI-Logik des Dynpros.
- Nach der Zuordnung des Funktionscodes 'PICK' wird das Ereignis DOUBLE_CLICK beim Drücken der F2-Taste im ALV-Grid nicht mehr ausgelöst. Stattdessen wird direkt die PAI-Logik mit SY-UCOMM = 'PICK' prozessiert.

***

Danke vorab für Ideen und Anregungen.

Mfg

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


Re: Ausgewähltes / aktives CUSTOM CONTROL bei F2-Tastendruck

Beitrag von a-dead-trousers (Top Expert / 4396 / 223 / 1182 ) »
Mit CL_GUI_CONTROL=>GET_FOCUS ist es möglich, analog zu GET CURSOR, das aktuell ausgewählte GUI-Control abzufragen.
Ich weiß aber nicht ob dir das bei bei deinem F2 vs. Doppelklick Problem weiterhilft.

Ich hatte ein ähnliches Problem mit der F4 Taste. Da musste ich dann eine Wrapper-OCX um das Original SAP Control schreiben, damit dort die F4-Taste abgefangen wurde und nicht an den GUI weitergeleitet wird.

Folgende Benutzer bedankten sich beim Autor a-dead-trousers für den Beitrag:
Gokar

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: Ausgewähltes / aktives CUSTOM CONTROL bei F2-Tastendruck

Beitrag von Gokar (ForumUser / 23 / 19 / 3 ) »
Danke für den Tipp!

Ich habe jetzt zum Zeitpunkt PAI wenn das User-command 'PICK' übergeben wurde und durch die Anweisung GET CURSOR kein Feld ermittelt werden konnte, mittels der Methode cl_gui_control=>get_focus( ) ein Objekt vom Typ cl_gui_control zurückgeliefert bekommen und dessen Attribut cl_gui_control->parent einem Objekt vom Typ cl_gui_custom_container zugewiesen. Daraufhin konnte ich über die Methode cl_gui_custom_container->get_name( ) den Namen des Custom-Containers ermitteln.

Zur Info noch das rudimentäre Test-Coding...

Code: Alles auswählen.

FORM test_get_custom_container_name.
  DATA: ir_gui_control TYPE REF TO cl_gui_control.
  DATA: ir_gui_custom_container TYPE REF TO cl_gui_custom_container.
  DATA: iv_name TYPE string.
  DATA: iv_string TYPE string.
**********************************************************************
  CALL METHOD cl_gui_control=>get_focus
    IMPORTING
      control           = ir_gui_control
    EXCEPTIONS
      cntl_error        = 1
      cntl_system_error = 2
      OTHERS            = 3.
  IF sy-subrc <> 0.
    RETURN.
  ENDIF.
*--------------------------------------------------------------------*
  IF ir_gui_control->parent IS NOT INITIAL.
    ir_gui_custom_container ?= ir_gui_control->parent.
  ENDIF.
  IF ir_gui_custom_container IS INITIAL.
    RETURN.
  ENDIF.
*--------------------------------------------------------------------*
  iv_name = ir_gui_custom_container->get_name( ).
  IF iv_name IS INITIAL.
    RETURN.
  ENDIF.
*--------------------------------------------------------------------*
  CONCATENATE 'Name des aktiven Custom-Containers:' iv_name INTO iv_string SEPARATED BY space.
  MESSAGE iv_string TYPE 'S'.
ENDFORM.

Seite 1 von 1

Vergleichbare Themen

16
Antw.
8778
Views
Table Control in Custom Control?
von ralf.wenzel » 29.11.2013 21:21 • Verfasst in ABAP Objects®
3
Antw.
3378
Views
subscreen im custom control
von dimes » 18.04.2006 14:36 • Verfasst in ABAP Objects®
1
Antw.
4756
Views
Custom Control ausblenden
von andipesel » 18.11.2007 23:11 • Verfasst in Dialogprogrammierung
5
Antw.
4469
Views
Custom Control => Container ermitteln
von ewx » 04.06.2013 22:12 • Verfasst in ABAP Objects®
0
Antw.
1429
Views
Event auf Custom Control Spaltendiagramm
von freche_göre » 04.09.2008 14:30 • Verfasst in ABAP Objects®

Ü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

Aktuelle Forenbeiträge

Dialog-Container mit Toolbar/Status
vor 5 Stunden von black_adept gelöst 23 / 3582
User Exit EXIT_RQCPRM10_001
vor 6 Stunden von a-dead-trousers 2 / 200
Trennen Strasse und Hausnummer
vor 12 Stunden von payten 13 / 10509
Daten an Tabelle binden
Gestern von Lukas Sanders 2 / 1252

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.

Aktuelle Forenbeiträge

Dialog-Container mit Toolbar/Status
vor 5 Stunden von black_adept gelöst 23 / 3582
User Exit EXIT_RQCPRM10_001
vor 6 Stunden von a-dead-trousers 2 / 200
Trennen Strasse und Hausnummer
vor 12 Stunden von payten 13 / 10509
Daten an Tabelle binden
Gestern von Lukas Sanders 2 / 1252

Unbeantwortete Forenbeiträge

aRFC im OO-Kontext
vor 4 Wochen von ralf.wenzel 1 / 2802
Hilfe bei SWEC/SWE2
September 2024 von retsch 1 / 9381