ALV输出的时候,可以直接用LAYOUT-CWIDTH_OPT来设置自适应列宽,这样可以满足大部分需求,但是如果ALV中有编辑或者输出,那我们需要重新定义一下列宽。如果使用的是函数ALV的方式,那么可以参考如下代码
DATA: lv_grid TYPE REF TO cl_gui_alv_grid.
DATA: ls_layout TYPE LVC_S_LAYO.
CALL FUNCTION 'GET_GLOBALS_FROM_SLVC_FULLSCR'
IMPORTING
e_grid = lv_grid.
CALL METHOD lv_grid->check_changed_data.
CALL METHOD lv_grid->get_frontend_layout
IMPORTING
es_layout = ls_layout.
ls_layout-cwidth_opt = 'X'.
CALL METHOD lv_grid->set_frontend_layout
EXPORTING
is_layout = ls_layout.
selfield-refresh = 'X'.