1. 输出内表gt_output中定义字段:
data: l_style type lvc_t_styl. "设置可否编辑
2. 定义gs_layout:
data: gs_layout type lvc_s_layo.
gs_layout-stylefname = 'L_STYLE'.
3. 设置某字段
data: ls_style type lvc_s_styl,
lt_style type lvc_t_styl.
if g_edit = ''.
loop at gt_eban.
clear lt_style[].
clear ls_style.
ls_style-fieldname = 'FIELDXX'. "设置字段
ls_style-style = cl_gui_alv_grid=>mc_style_enabled."可编辑
append ls_style to lt_style.
gt_eban-l_style[] = lt_style[].
modify gt_eban.
endloop.
g_edit = 'X'.
elseif g_edit = 'X'.
loop at gt_eban.
clear lt_style[].
clear ls_style.
ls_style-fieldname = 'FIELDXX'.
ls_style-style = cl_gui_alv_grid=>mc_style_disabled."不可编辑
append ls_style to lt_style.
gt_eban-l_style[] = lt_style[].
modify gt_eban.
endloop.
g_edit = ''.
endif.
4. 输出内表:
call function 'REUSE_ALV_GRID_DISPLAY_LVC'
exporting
i_callback_program = sy-repid
i_callback_pf_status_set = 'FRM_PF_STATUS_SET'
i_callback_user_command = 'FRM_ALV_COMMAND'
is_layout_lvc = gs_layout
it_fieldcat_lvc = gt_fieldcat[] "'[]' is necessary
i_save = 'A'
it_sort_lvc = gt_sort[]
tables
t_outtab = gt_output
exceptions
program_error = 1
others = 2.
5. 更新数据:
form frm_alv_command using ucomm type sy-ucomm
rs_selfield type slis_selfield.
data: lr_grid type ref to cl_gui_alv_grid.
call function 'GET_GLOBALS_FROM_SLVC_FULLSCR'
importing
e_grid = lr_grid.
call method lr_grid->check_changed_data.
* rs_selfield-refresh = 'X'.
* rs_selfield-row_stable = 'X'.
* rs_selfield-col_stable = 'X'.
* read table itab index rs_selfield-tabindex.
endform.
评论