ABAP Docking Control Container開發例項
ABAP Docking Control Container開發例項
使用時需引用cl_gui_docking_container事物
DATA: splitter TYPE REF TO cl_dynpro_splitter,
go_dbz
go_ybz TYPE REF TO cl_gui_alv_grid,
go_cache
gc_custom_container TYPE REF TO cl_gui_custom_container,
g_container_object TYPE REF TO
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要友好許多