REUSE_ALV_GRID_DISPLAY_LVC 实现单元格级别的编辑示例

1.实现效果

  • 开启编辑
    1
  • 关闭编辑
    2

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(多选行、列
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值