1.实现效果
- 开启编辑
- 关闭编辑
2.实现
- 代码
DATA: BEGIN OF GT_SFLIGHT OCCURS 0, BOX TYPE C. INCLUDE STRUCTURE SFLIGHT. DATA STYLE TYPE LVC_T_STYL. DATA: END OF GT_SFLIGHT. DATA: GS_LAYOUT_LVC TYPE LVC_S_LAYO, "显示布局参数 GT_FIELDCAT_LVC TYPE LVC_T_FCAT WITH HEADER LINE, "字段 GS_SETTING TYPE LVC_S_GLAY, O_GRID TYPE REF TO CL_GUI_ALV_GRID, "ALV对象 GT_STYLE TYPE LVC_T_STYL. "编辑模式控制表 DATA: GT_ROW_ID TYPE LVC_T_ROW, "需要在changed获取编辑的行信息,changed change_finished使用;否则可能因为F4搜索帮助导致行ID异常 GV_ROW TYPE I, GV_COL TYPE I. "定义fieldcat脚本 DEFINE INIT_FIELDCAT. CLEAR: GT_FIELDCAT_LVC. GT_FIELDCAT_LVC-FIELDNAME = &1. "字段名 GT_FIELDCAT_LVC-COLTEXT = &2. "列标题Title GT_FIELDCAT_LVC-REF_TABLE = &3. "内部表字段的参考表名称 GT_FIELDCAT_LVC-REF_FIELD = &4. "内部表字段的参考字段名称 GT_FIELDCAT_LVC-NO_ZERO = &5. "为输出隐藏零 X:隐藏 GT_FIELDCAT_LVC-NO_CONVEXT = &6. "是否应用转换出口函数 X:开启 GT_FIELDCAT_LVC-EDIT = &7. "编辑模式 GT_FIELDCAT_LVC-F4AVAILABL = &8. "是否字段帮助 CASE GT_FIELDCAT_LVC-FIELDNAME. WHEN 'BOX'. GT_FIELDCAT_LVC-TECH = 'X'. "技术字段 * GT_FIELDCAT_LVC-checkbox = 'X'. WHEN OTHERS. ENDCASE. APPEND GT_FIELDCAT_LVC. END-OF-DEFINITION. INITIALIZATION. AT SELECTION-SCREEN OUTPUT. AT SELECTION-SCREEN. START-OF-SELECTION. PERFORM FRM_SET_LAYOUT. "设置layout PERFORM FRM_SET_FIELDCAT. "设置Fieldcatlog PERFORM FRM_SET_SETTING. "参数回调 PERFORM FRM_GET_DATA. "获取数据 PERFORM FRM_PROC_DATA. "处理数据,增加单元格编辑参数 END-OF-SELECTION. PERFORM FRM_DISPLAY_ALV. *__________________________________form____________________________* FORM FRM_SET_LAYOUT . * GS_LAYOUT_LVC-BOX_FNAME = 'BOX'. GS_LAYOUT_LVC-ZEBRA = 'X'. GS_LAYOUT_LVC-CWIDTH_OPT = 'X'. * GS_LAYOUT_LVC-SEL_MODE = 'D'. *1、sapce,等同于B,默认的设置。 *2、A(行与列的选择,无法选择单元格)。 *3、B(单选,不可以多选行,不可以多选单元格)。 *4、C(多选行、列,不可以多选单元格)。 *5、D(多选行、列