ABAP Docking Control Container开发实例
ABAP Docking Control Container开发实例
使用时需引用cl_gui_docking_container事物
DATA: splitter 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(30) TYPE 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_LEFT,DOCK_AT_TOP,DOCK_AT_BOTTOM,DOCK_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要友好许多