ABAP ALV 颜色行,列,单元格

3 篇文章 0 订阅

结果

代码

REPORT  ZGUO_TEST.
*调用数据表
TABLES: SPFLI.
*定义、申明变量
TYPE-POOLS: SLIS.
DATA: GT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV.
DATA: LS_LAYOUT TYPE SLIS_LAYOUT_ALV.

TYPES:BEGIN OF SSPFLI.
        INCLUDE TYPE SPFLI.
TYPES:
  COLOR(4),
  CELL_COLOR TYPE SLIS_T_SPECIALCOL_ALV,
  END OF SSPFLI.

DATA: GT_SPFLI TYPE TABLE OF SSPFLI WITH HEADER LINE.

DATA: LT_CELL TYPE SLIS_T_SPECIALCOL_ALV,LS_CELL LIKE LINE OF LT_CELL.

*初始化列宽
INITIALIZATION.
  LS_LAYOUT-COLWIDTH_OPTIMIZE = 'X'.

START-OF-SELECTION.
  PERFORM FRM_LOAD_DATA.

FORM FRM_LOAD_DATA.
  PERFORM FRM_FIELD.

  SELECT * INTO CORRESPONDING FIELDS OF TABLE GT_SPFLI FROM SPFLI.
  LOOP AT GT_SPFLI.
    IF GT_SPFLI-CARRID = 'DL'." 行颜色
      GT_SPFLI-COLOR = 'C610'.
    ENDIF.

    IF GT_SPFLI-AIRPFROM = 'FRA'.
      CLEAR:LS_CELL,LT_CELL.REFRESH LT_CELL."单元格颜色
      LS_CELL-FIELDNAME = 'AIRPFROM'.
      LS_CELL-COLOR-COL = '6'.
      APPEND LS_CELL TO LT_CELL.
      GT_SPFLI-CELL_COLOR = LT_CELL.
    ENDIF.

    MODIFY GT_SPFLI TRANSPORTING COLOR CELL_COLOR.
  ENDLOOP.

*函数
  LS_LAYOUT-INFO_FIELDNAME = 'COLOR'.
  LS_LAYOUT-COLTAB_FIELDNAME = 'CELL_COLOR'.

  CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
    EXPORTING
      I_CALLBACK_PROGRAM = SY-REPID
      IT_FIELDCAT        = GT_FIELDCAT
      I_SAVE             = 'A'
      IS_LAYOUT          = LS_LAYOUT
    TABLES
      T_OUTTAB           = GT_SPFLI.

ENDFORM.  

FORM FRM_FIELD.
  DATA: LS_FCAT LIKE LINE OF GT_FIELDCAT.
  REFRESH: GT_FIELDCAT.
  CLEAR: GT_FIELDCAT.

*显示数据表格ALV的栏位
  CLEAR LS_FCAT.
  LS_FCAT-FIELDNAME = 'CARRID'.
  LS_FCAT-REPTEXT_DDIC = 'Airline Code'.
  APPEND LS_FCAT TO GT_FIELDCAT.

  CLEAR LS_FCAT.
  LS_FCAT-FIELDNAME = 'CONNID'.
  LS_FCAT-REPTEXT_DDIC = 'Flight Connection Number'.
  APPEND LS_FCAT TO GT_FIELDCAT.

  CLEAR LS_FCAT.
  LS_FCAT-FIELDNAME = 'COUNTRYFR'.
  LS_FCAT-REPTEXT_DDIC = 'Country Key'.
*  LS_FCAT-KEY = 'C510'. "列颜色
  LS_FCAT-EMPHASIZE = 'C510'.
  APPEND LS_FCAT TO GT_FIELDCAT.

  CLEAR LS_FCAT.
  LS_FCAT-FIELDNAME = 'CITYFROM'.
  LS_FCAT-REPTEXT_DDIC = 'Departure city'.
  APPEND LS_FCAT TO GT_FIELDCAT.

  CLEAR LS_FCAT.
  LS_FCAT-FIELDNAME = 'AIRPFROM'.
  LS_FCAT-REPTEXT_DDIC = 'Departure airport'.
  APPEND LS_FCAT TO GT_FIELDCAT.

  CLEAR LS_FCAT.
  LS_FCAT-FIELDNAME = 'COUNTRYTO'.
  LS_FCAT-REPTEXT_DDIC = 'Country Key'.
  APPEND LS_FCAT TO GT_FIELDCAT.

ENDFORM.

  • 38
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

指尖溯光

创作不易您的鼓励是我最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值