SAP ABAP AVL单元格颜色

1、最终ALV展示依靠这个BAPI:REUSE_ALV_GRID_DISPLAY_LVC

  CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY_LVC'
    EXPORTING
      I_CALLBACK_PROGRAM = W_REPID
      IS_LAYOUT_LVC      = W_LAYOUT
      IT_FIELDCAT_LVC    = T_FIELDCAT[]
      I_DEFAULT          = 'X'
      I_SAVE             = 'U'
    TABLES
      T_OUTTAB           = T_MAIN.

2、颜色控制会在参数 IS_LAYOUT_LVC参数里面的字段CTAB_FNAME
在这里插入图片描述
3、因此W_LAYOUT-CTAB_FNAME = ‘CELLCOLOR’.

  W_LAYOUT-ZEBRA = 'X'.
  W_LAYOUT-CWIDTH_OPT    = 'X'.
  W_LAYOUT-SEL_MODE = 'A'.
  W_LAYOUT-CTAB_FNAME = 'CELLCOLOR'.  " 单元格颜色字段

4、这个CELLCOLOR 定义成一个纵深结构 放到T_MAIN里面,LVC_T_SCOL

DATA: BEGIN OF W_MAIN,
        MATNR      TYPE ZQMT008-MATNR, "物料
        MAKTX      TYPE MAKT-MAKTX,  "物料描述
        CELLCOLOR  TYPE  LVC_T_SCOL,      "  单元格颜色
 END OF W_MAIN.
DATA T_MAIN  LIKE TABLE OF W_MAIN.

5、取数的时候根据字段条件设置颜色

DATA:GS_CELLCOLOR TYPE LVC_S_SCOL. "定义一个结构用于更新CELLCOLOR
LOOP AT T_MAIN  ASSIGNING FIELD-SYMBOL (<FS_MAIN>)
        IF  <FS_MAIN>-MATNR = 'A00000001'. "物料编码
          GS_CELLCOLOR-FNAME = 'MATNR' .   "设置字段
          GS_CELLCOLOR-COLOR-COL = '1'.    "设置颜色
        ENDIF.
        APPEND GS_CELLCOLOR TO  <FS_MAIN>-CELLCOLOR.
      ENDIF.
ENDLOP.

以上只是个人分享理解,如果喜欢帮忙点个赞!感谢!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值