前言:在实际开发中,需要在ALV上方加一个类型下图的显示,
我们会想到用OOALV,那样肯定会涉及到画屏幕问题,画的屏幕是固定电脑格式,比如说我用15.6的电脑画的屏幕,他13的电脑就会显示成这种
这样的话使用就不是很舒服。
解决办法:
data:uc_grid TYPE REF TO cl_gui_alv_grid
uc_docking_container TYPE REF TO cl_gui_docking_container.
IF uc_docking_container IS INITIAL.
* IF UC_CUSTOM_CONTAINER IS INITIAL.
* CREATE OBJECT UC_CUSTOM_CONTAINER
* EXPORTING
* CONTAINER_NAME = UV_CONTAINER_NAME.
* 创建 容器
CREATE OBJECT uc_docking_container
EXPORTING
repid = sy-repid
dynnr = uv_dynnr
* side = cl_gui_docking_container=>dock_at_right ”ALV贴屏幕右边,从屏幕右边开始算宽度
side = cl_gui_docking_container=>dock_at_bottom "ALV贴屏幕左边,从左边算屏幕宽度,
* extension = 1000 "屏幕宽度
ratio = uv_ratio "屏幕比例 大于95就会全屏占满
style = cl_gui_control=>ws_child "可选参数,设置ALV是否可用手动拖动大小
EXCEPTIONS
cntl_error = 1
cntl_system_error = 2
create_error = 3
lifetime_error = 4
lifetime_dynpro_dynpro_link = 5
OTHERS = 6.
ENDIF.
CREATE OBJECT uc_grid
EXPORTING
i_parent = uc_docking_container
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.
ENDIF.