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参数即可

扫描二维码关注公众号,回复: 4460449 查看本文章

*建立树对象
  CREATE OBJECT go_tree
    
EXPORTING
      parent   g_container_object
      node_selection_mode 
cl_gui_simple_tree=>node_sel_mode_single.

效果展示:

个人感觉这种生成拖拽屏幕的方式比起splitter要友好许多

猜你喜欢

转载自blog.csdn.net/Sundam/article/details/81566831