Container umhängen
Bei der Erzeugung eines Controls bindet man dieses in der Regel an einen Custom-Container. Soll es an einen anderen Container gebunden werden, so muss das Control umgehängt werden. Dies geht aber nur mit bestimmten Vorbereitungen. Wir zeigen Ihnen anhand eines Beispielprogramms, wie es geht.
Beschreibung
Das Programm erzeugt ein Icon auf einem Customcontainer. Nach jedem “Enter” wechselt das Icon in den jeweils anderen Container.
So sieht’s aus
Vorbereitungen
Zum folgenden Coding muss das Dynpro 1 angelegt werden. Auf dem Dynpro müssen die beiden CustomerContainer CC1 und CC2 angelegt werden.
Auf der Elementliste muss zum OK_CODE das Feld SY-OKCODE eingetragen werden.
Ablauflogik zum Dynpro 1
PROCESS BEFORE OUTPUT. MODULE status_0001. * PROCESS AFTER INPUT. MODULE user_command_0001.
Coding
*&---------------------------------------------------------------------* *& Report ZZLink *&---------------------------------------------------------------------* REPORT zzlink. TYPE-POOLS icon. DATA gr_cc TYPE REF TO cl_gui_custom_container. DATA gr_pic TYPE REF TO cl_gui_picture. DATA gv_lnk TYPE char30 VALUE 'CC1'. START-OF-SELECTION. CALL SCREEN 1. *----------------------------------------------------------------------* * MODULE status_0001 OUTPUT *----------------------------------------------------------------------* MODULE status_0001 OUTPUT. SET PF-STATUS 'STLI' OF PROGRAM 'SAPMSSY0'. IF gr_cc IS INITIAL. *** Custom Container erzeugen CREATE OBJECT gr_cc EXPORTING container_name = 'CC1' EXCEPTIONS OTHERS = 6. ENDIF. IF gr_pic IS INITIAL. *** Picture Control erzeugen CREATE OBJECT gr_pic EXPORTING parent = gr_cc EXCEPTIONS OTHERS = 2. *** Icon "Mülleimer" laden CALL METHOD gr_pic->load_picture_from_sap_icons EXPORTING icon = icon_delete EXCEPTIONS error = 1. *** Icon strecken CALL METHOD gr_pic->set_display_mode EXPORTING display_mode = gr_pic->display_mode_stretch EXCEPTIONS error = 1. ENDIF. CASE gv_lnk. *** Nach "Enter" wechselt das Icon von einem zum anderen Container WHEN 'CC1'. gv_lnk = 'CC2'. CALL METHOD gr_cc->link EXPORTING repid = space dynnr = space container = 'CC1'. WHEN 'CC2'. gv_lnk = 'CC1'. CALL METHOD gr_cc->link EXPORTING repid = space dynnr = space container = 'CC2'. ENDCASE. ENDMODULE. " STATUS_0100 OUTPUT *----------------------------------------------------------------------* * MODULE user_command_0001 INPUT *----------------------------------------------------------------------* MODULE user_command_0001 INPUT. CASE sy-ucomm. WHEN 'BACK' OR '%EX' OR 'RW'. SET SCREEN 0. LEAVE SCREEN. WHEN '%PRI'. CALL SCREEN 2 STARTING AT 5 5. ENDCASE. ENDMODULE. " USER_COMMAND_0100 INPUT
Letzte Artikel von Enno Wulff (Alle anzeigen)
- Meine Eclipse-Plugins - 22. November 2024
- Interview mit Björn Schulz (Software-Heroes.com) - 3. September 2024
- Daten aus ALV ermitteln - 3. September 2024