1. 程式人生 > >ABAP Docking Control Container開發例項

ABAP Docking Control Container開發例項

ABAP Docking Control Container開發例項

使用時需引用cl_gui_docking_container事物

DATAsplitter                       TYPE REF TO cl_dynpro_splitter,
           go_dbz                      

TYPE REF TO cl_gui_alv_grid,
           go_ybz                      TYPE REF TO cl_gui_alv_grid,
           go_cache                  
TYPE REF TO cl_gui_alv_grid,
           gc_custom_container       TYPE REF TO cl_gui_custom_container,
           g_container_object           TYPE REF TO 
cl_gui_docking_container,
           go_tree                    TYPE REF TO cl_gui_simple_tree,
           ok_code                   TYPE sy-ucomm,
           ok_save                   TYPE sy-ucomm,
           g_tree_container_name(30TYPE c VALUE'C1'.

建立100螢幕,畫好container(這裡的container與生成docking無關

在PBO中例項化docking control

MODULE status_0100 OUTPUT.
  SET PF-STATUS 'PF_0100'.
  SET TITLEBAR  'TITLE_0100'.
*為避免每一次有PAI時都會觸發PBO重新例項化物件,要在這裡加一個標記
  CHECK flag IS INITIAL.
*   alv_grid
  PERFORM form_create_object.
*   docking control
  PERFORM createdockingcontrol.
*   tree control
  PERFORM createtreecontrol.
  flag 'X'.
ENDMODULE.

 

FORM createdockingcontrol .
* create container for alv-tree
  CREATE OBJECT g_container_object
      
EXPORTING side cl_gui_docking_container=>dock_at_left 

可以選擇拼接的位置(DOCK_AT_LEFTDOCK_AT_TOPDOCK_AT_BOTTOMDOCK_AT_RIGHT
                extension 260        “初始寬度
                repid     sy-repid  “程式名
                dynnr     '0100'.   
ENDFORM.

例項化螢幕控制元件時,將Docking物件寫入parent引數即可

*建立樹物件
  CREATE OBJECT go_tree
    
EXPORTING
      parent   g_container_object
      node_selection_mode 
cl_gui_simple_tree=>node_sel_mode_single.

效果展示:

個人感覺這種生成拖拽螢幕的方式比起splitter要友好許多