ALV部分單元格可編輯控制
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顯示。