ALV报表中对单元格的可编辑和颜色设置

1.单元格可编辑:
首先需要在程序定义的结构中增加 FIELD_STYLE 参考LVC_T_STYL
 

TYPES :BEGIN OF TYP_RESULTX,
BOX         TYPE CHAR1,
FIELD_STYLE TYPE LVC_T_STYL.               "修改模式.
INCLUDE TYPE TYP_RESULT.
TYPES:  END OF TYP_RESULTX.

然后在程序中循环需要输出的内表,条件是被选中的行

FORM FRM_DATA_EDIT USING PV_OPEN TYPE CHAR1.
  LOOP AT GT_RESULTX ASSIGNING FIELD-SYMBOL(<LFS_ALV>) WHERE BOX = 'X'.
    IF PV_OPEN = ABAP_ON.
      PERFORM FRM_OPEN_EDIT CHANGING <LFS_ALV>-FIELD_STYLE.
    ELSE.
      PERFORM FRM_CLOSE_EDIT CHANGING <LFS_ALV>-FIELD_STYLE.
    ENDIF.
    MODIFY GT_RESULTX FROM <LFS_ALV>.
  ENDLOOP.
ENDFORM.

对被选中行的FIELD_STYLE结构的FIELDNAME 赋值需要变成可编辑的字段

对结构的STYLE 赋值CL_GUI_ALV_GRID=>MC_STYLE_ENABLED. "表示可编辑

" 设置某个单元格为可编辑
ls_cellstyle-fieldname = 'MATNR'.  " 列名
ls_cellstyle-style     = cl_gui_alv_grid=>mc_style_enabled.
APPEND ls_cellstyle TO lt_cellstyles.

" 设置某个单元格为不可编辑
ls_cellstyle-fieldname = 'WERKS'.  " 列名
ls_cellstyle-style     = cl_gui_alv_grid=>mc_style_disabled.
APPEND ls_cellstyle TO lt_cellstyles.

最后在GS_LAYOUT中指定STYLEFNAME

  GS_LAYOUT-STYLEFNAME = 'FIELD_STYLE'.  "layout中指定修改控制字段

另外如果要表单整个可编辑:

LAYOUT-EDIT = 'X'.

列可编辑:

FIELDCAT-EDIT = 'X'.

2.单元格颜色设置

在需要输出的内表的结构中增加字段

    COLOR        TYPE LVC_T_SCOL

然后对于满足条件,需要输出颜色的行

   REFRESH <LFS_ALV3>-COLOR.
            CLEAR LS_COLOR.
            LS_COLOR-FNAME = 'ZBQTY'.
            LS_COLOR-COLOR-COL = 6.    " 颜色
            LS_COLOR-COLOR-INT = 1.    " 是否加重
            LS_COLOR-COLOR-INV = 0.    "是否反色  0表示底色,1表示字体颜色
            APPEND LS_COLOR TO <LFS_ALV3>-COLOR.

颜色参考如下

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值