ALV设置单元格可编辑
1.ALV显示的内表中添加字段
CELLTAB TYPE LVC_T_STYL,
2.LAYOUT添加属性
GS_LAYOUT-STYLEFNAME = 'CELLTAB'.
3.FIELDCAT列添加属性
LW_FIELDCAT-FIELDNAME = 'ZHEAD'
LW_FIELDCAT-EDIT = 'X'.
APPEND LW_FIELDCAT TO GT_FIELDCAT.
4.设置什么情况下单元格显示为可编辑状态
DATA: LT_CELLTAB TYPE LVC_T_STYL,
LS_CELLTAB TYPE LVC_S_STYL,
L_INDEX TYPE I.
LOOP AT GT_ALV INTO GW_ALV.
CLEAR : GW_ALV-CELLTAB. "不为空会报错
IF GW_ALV-CELLTAB IS INITIAL.
L_INDEX = SY-TABIX.
REFRESH LT_CELLTAB.
LS_CELLTAB-FIELDNAME = 'ZHEAD'.
IF GW_ALV-FKART = 'ZF03' OR
GW_ALV-FKART = 'ZF08'. "可编辑
LS_CELLTAB-STYLE = CL_GUI_ALV_GRID=>MC_STYLE_DISABLED.
ELSE. "不可编辑
LS_CELLTAB-STYLE = CL_GUI_ALV_GRID=>MC_STYLE_ENABLED.
ENDIF.
INSERT LS_CELLTAB INTO TABLE LT_CELLTAB.
INSERT LINES OF LT_CELLTAB INTO TABLE GW_ALV-CELLTAB.
MODIFY GT_ALV FROM GW_ALV INDEX L_INDEX.
ENDIF.
ENDLOOP.