Vorgehen zur Verwendung des GUI Docking-Containers
1 Einleitung In dem vorliegenden Dokument wird anhand eines Beispiels auf den Einsatz des GUI Docking-Containers eingegangen. Das komplette Beispielcoding ist in Kapitel 3 enthalten. Nähere Informationen zum Ablauf können Kapitel 2 entnommen werden. 1
2 Informationen zur Programmlogik Zu Beginn der Programmverarbeitung findet ein lesender Zugriff auf die Tabelle SFLIGHT statt. Dieser hat den ausschließlichen Zweck, Daten für eine spätere Anzeige zu beschaffen. Nach der Datenermittlung erfolgt die Instanziierung des GUI Docking-Containers (Klasse CL_GUI_DOCKING_CONTAINER). Der CONSTRUCTOR-Methode werden in dem vorliegenden Beispiel neben der Andockrichtung auch die Breite bzw. Höhe mitgegeben. Damit das Andocken bei Aufruf des Träger-Dynpro per WRITE- Anweisung funktioniert, ist zusätzlich der Parameter NO_AUTODEF_PROGID _DYNNR mit dem Wert X zu Belegen. Bei Angabe von Dynpro-Nummer und Report ist das Füllen des Parameters nicht notwendig. Beim Instanziieren des GUI Docking- Containers im PBO-Ereignis eines Dynpro müssen weder der Parameter NO_AUTODEF_PROGID_DYNNR versorgt noch die Dynpro-Nummer und Programmbezeichnung mitgegeben werden. Anschließend wird eine Instanz der ALV-Grid-Klasse (CL_GUI_ALV_GRID) erzeugt. Bei der Instanziierung ist zu beachten, dass als Parent (Parameter I_PARENT) der GUI Docking-Container zu übergeben ist. Das Coding zum Aufruf des ALV-Grid dient nur der Visualisierung der Daten und wird in diesem Dokument nicht näher behandelt. Als Trägerdynpro für den Docking-Container kommt in diesem Beispiel das SAP Standard-Ausgabedypnro zum Einsatz. Der Aufruf erfolgt über die Anweisung WRITE. Wie bereits weiter oben beschrieben, kann stattdessen jedes beliebige Dynpro über die Anweisung CALL SCREEN aufgerufen werden. Beim Einsatz von Klasse CL_GUI_DOCKING_CONTAINER ist zu beachten, dass der Container in Abhängigkeit der mitgegebenen Andockrichtung und Breite/Höhe nur einen Teil des Dynpros einnimmt. Der andere Teil ist weiterhin sichtbar, was eine Kombination mit normalen Dynpro-Elementen erlaubt (siehe Abbildung 1). 2
Abbildung 1: ALV-Anzeige im Default Custom-Container 3
3 Coding *--------------------------------------------------------------------* * Das vorliegende Programm demonstriert das Vorgehen zum Einsatz des * Docking Containers * * Date: 17.05.2015 *--------------------------------------------------------------------* * Änderungen *--------------------------------------------------------------------* REPORT zaj_gui_docking_container. DATA: gt_sflight DATA: gr_docking DATA: gr_alv_grid TYPE STANDARD TABLE OF sflight. TYPE REF TO cl_gui_docking_container. TYPE REF TO cl_gui_alv_grid. START-OF-SELECTION. * Selektion der anzuzeigenden Daten SELECT * FROM sflight INTO CORRESPONDING FIELDS OF TABLE gt_sflight. IF sy-subrc NE 0. * In diesem Fall wird eine leere Tabelle angezeigt * Erstellen des Docking Containers CREATE OBJECT gr_docking EXPORTING side = cl_gui_docking_container=>dock_at_left extension = 1000 no_autodef_progid_dynnr = abap_true "nur der Wert 'X' EXCEPTIONS cntl_error = 1 cntl_system_error = 2
create_error = 3 lifetime_error = 4 lifetime_dynpro_dynpro_link = 5 OTHERS = 6. IF sy-subrc <> 0. MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4. * ALV-Anzeige anstoßen CREATE OBJECT gr_alv_grid EXPORTING i_parent = gr_docking EXCEPTIONS error_cntl_create = 1 error_cntl_init = 2 error_cntl_link = 3 error_dp_create = 4 OTHERS = 5. IF sy-subrc <> 0. MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4. gr_alv_grid->set_table_for_first_display( EXPORTING i_structure_name = 'SFLIGHT' CHANGING it_outtab = gt_sflight EXCEPTIONS invalid_parameter_combination = 1 program_error = 2 too_many_lines = 3 OTHERS = 4 ). IF sy-subrc <> 0. MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4. * Aufruf des Trägerdynpros WRITE: space.