1、在内表中定义字段style TYPE lvc_t_styl,它是内表,用来控制不可编辑;
2、设置单元格所在列为可编辑的fieldcat-edit = 'X';
3、在layout结构中设定控制不可编辑字段的名字,FM(REUSE_ALV_GRID_DISPLAY_LVC,其他函数不行)或者OO:wa-layout-stylefname= 'STYLE';
4、在内表循环中给该字段赋值(控制不可编辑),将不符合条件的数据设置成不可编辑,通过STYLE=CL_GUI_ALV_GRID=>MC_STYLE_DISABLED实现。
DATA: ls_fieldcat_9000 TYPE lvc_s_fcat,
ls_style TYPE lvc_s_styl,
lt_style TYPE lvc_t_styl.
LOOP AT pt_out WHERE bstnk IS INITIAL.
READ TABLE pt_fieldcat_9000 INTO ls_fieldcat_9000 WITH KEY fieldname = 'BSTNK'.
IF sy-subrc EQ 0.
ls_style-fieldname = 'YBFSJJE'.
ls_style-style = cl_gui_alv_grid=>mc_style_disabled.
APPEND ls_style TO lt_style.
pt_out-style = lt_style.
MODIFY pt_out TRANSPORTING style.
CLEAR ls_style.
REFRESH: lt_style.
ENDIF.
ENDLOOP.
5、调用REUSE_ALV_GRID_DISPLAY_LVC显示。