SAP_ALV_颜色设置

一、行颜色

1、在内表中定义字段line_color(4),用来存储四位颜色值;

2、在内表循环中给这个字段赋值;

3、在layout结构中设定颜色字段的名字,FM:wa_layout-info_fieldname = 'LINE_COLOR'.或者OO:wa_layout-info_fname = 'LINE_COLOR'.

二、列颜色

1、在ALV显示字段设置中,给gt_fieldcat-emphasize赋颜色值就可以。

三、单元格颜色

1、在内表中定义字段cellcolor TYPE lvc_t_scol,它是内表,用来存储单元格的颜色;

2、在内表循环中给这个内表赋值;

3、在layout结构中设定颜色字段的名字,FM:wa_layout-coltab_fieldname = 'CELLCOLR'.或者wa_layout-ctab_fname = 'CELLCOLR'.


附上:示例

1、行颜色


*&---------------------------------------------------------------------*
*& Report  YTEST073
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*

REPORT ytest074.

*&---------------------------------------------------------------------*
*& Tables Declarition                                                  *
*&---------------------------------------------------------------------*


*&---------------------------------------------------------------------*
*& Type-pools Declarition                                              *
*&---------------------------------------------------------------------*
TYPE-POOLSslis.

*&---------------------------------------------------------------------*
*& Type Definition                                                     *
*&---------------------------------------------------------------------*
TYPESBEGIN OF typ_out,
         carrid TYPE sflight-carrid,
         connid TYPE sflight-connid,
         fldate TYPE sflight-fldate,
         price TYPE sflight-price,
         line_color(4),             "颜色
      END OF typ_out.

*&---------------------------------------------------------------------*
*& Work Area Definition                                                *
*&---------------------------------------------------------------------*
**--ALV用到的工作区定义
DATAwa_fieldcat TYPE slis_fieldcat_alv,
      wa_layout TYPE slis_layout_alv.

*&---------------------------------------------------------------------*
*& Inner Table Definition                                              *
*&---------------------------------------------------------------------*
DATAgt_out TYPE TABLE OF typ_out WITH HEADER LINE.

**--ALV用到的内表定义
DATAgt_fieldcat TYPE slis_t_fieldcat_alv WITH HEADER LINE.

*&---------------------------------------------------------------------*
*& Data Definition                                                     *
*&---------------------------------------------------------------------*
DATAg_count TYPE VALUE 1.

**--ALV变量声明
DATAg_repid LIKE sy-repid VALUE sy-repid.


START-OF-SELECTION.
**--获取主数据
  SELECT carrid
         connid
         fldate
         price
    INTO TABLE gt_out
    FROM sflight.

  LOOP AT gt_out WHERE carrid EQ 'AF'.
    gt_out-line_color 'C510'.
    MODIFY gt_out TRANSPORTING color.
  ENDLOOP.


END-OF-SELECTION.

**--ALV显示字段设置
  PERFORM frm_set_all_fieldcat.

**--ALV显示样式设置
  PERFORM frm_set_layout.
**--ALV显示
  PERFORM frm_display_alv.
*&---------------------------------------------------------------------*
*&      Form  FRM_SET_ALL_FIELDCAT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM frm_set_all_fieldcat .
  DATAl_pos TYPE VALUE 0.
  CLEAR gt_fieldcat.
  REFRESH gt_fieldcat.
  DEFINE hout.
    l_pos l_pos + 1.
    gt_fieldcat-tabname 'GT_ALV'"内表
    gt_fieldcat-fieldname &1.
    gt_fieldcat-seltext_m &2.
    gt_fieldcat-col_pos l_pos.
    gt_fieldcat-outputlen &3.
    gt_fieldcat-edit &4.
    gt_fieldcat-key &5"是否在进行编辑
    gt_fieldcat-checkbox &6"勾选框
    gt_fieldcat-emphasize &7"勾选框
    append gt_fieldcat.
    clear gt_fieldcat.
  END-OF-DEFINITION.

  hout 'CARRID' 'CARRID' '' '' '' '' ''.
  hout 'CONNID' 'CONNID' '' '' '' '' ''.
  hout 'FLDATE' 'FLDATE' '' '' '' '' ''.
  hout 'PRICE' 'PRICE' '' '' '' '' ''.
ENDFORM.                    " FRM_SET_ALL_FIELDCAT
*&---------------------------------------------------------------------*
*&      Form  FRM_SET_LAYOUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM frm_set_layout .
  wa_layout-zebra 'X'.
  wa_layout-f2code '&ETA'"是否有事件
  wa_layout-colwidth_optimize 'X'.
  wa_layout-info_fieldname 'LINE_COLOR'" 行颜色字段
ENDFORM.                    " FRM_SET_LAYOUT
*&---------------------------------------------------------------------*
*&      Form  FRM_DISPLAY_ALV
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM frm_display_alv .
  CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
   EXPORTING
*     I_INTERFACE_CHECK                 = ' '
*     I_BYPASSING_BUFFER                = ' '
*     I_BUFFER_ACTIVE                   = ' '
     i_callback_program                g_repid
*       i_callback_pf_status_set          = 'FRM_SET_STATUS'
*       i_callback_user_command           = 'FRM_USER_COMMAND'
*     I_CALLBACK_TOP_OF_PAGE            = ' '
*     I_CALLBACK_HTML_TOP_OF_PAGE       = ' '
*     I_CALLBACK_HTML_END_OF_LIST       = ' '
*     I_STRUCTURE_NAME                  =
*     I_BACKGROUND_ID                   = ' '
*     I_GRID_TITLE                      =
*     I_GRID_SETTINGS                   =
     is_layout                         wa_layout
     it_fieldcat                       gt_fieldcat[]
*     IT_EXCLUDING                      =
*     IT_SPECIAL_GROUPS                 =
*     it_sort                           = it_sort[]
*     IT_FILTER                         =
*     IS_SEL_HIDE                       =
*     i_default                         = 'X'
   i_save                            'X'
*     IS_VARIANT                        =
*     IT_EVENTS                         =
*     IT_EVENT_EXIT                     =
*     IS_PRINT                          =
*     IS_REPREP_ID                      =
*     I_SCREEN_START_COLUMN             = 0
*     I_SCREEN_START_LINE               = 0
*     I_SCREEN_END_COLUMN               = 0
*     I_SCREEN_END_LINE                 = 0
*     I_HTML_HEIGHT_TOP                 = 0
*     I_HTML_HEIGHT_END                 = 0
*     IT_ALV_GRAPHICS                   =
*     IT_HYPERLINK                      =
*     IT_ADD_FIELDCAT                   =
*     IT_EXCEPT_QINFO                   =
*     IR_SALV_FULLSCREEN_ADAPTER        =
*   IMPORTING
*     E_EXIT_CAUSED_BY_CALLER           =
*     ES_EXIT_CAUSED_BY_USER            =
    TABLES
      t_outtab                          gt_out
   EXCEPTIONS
     program_error                     1
     OTHERS                            2
            .
  IF sy-subrc <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
  ENDIF.
ENDFORM.                    " FRM_DISPLAY_ALV

二、列颜色


*&---------------------------------------------------------------------*
*& Report  YTEST073
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*

REPORT ytest073.

*&---------------------------------------------------------------------*
*& Tables Declarition                                                  *
*&---------------------------------------------------------------------*


*&---------------------------------------------------------------------*
*& Type-pools Declarition                                              *
*&---------------------------------------------------------------------*
TYPE-POOLSslis.

*&---------------------------------------------------------------------*
*& Type Definition                                                     *
*&---------------------------------------------------------------------*
TYPESBEGIN OF typ_out,
         carrid TYPE sflight-carrid,
         connid TYPE sflight-connid,
         fldate TYPE sflight-fldate,
         price TYPE sflight-price,
      END OF typ_out.

*&---------------------------------------------------------------------*
*& Work Area Definition                                                *
*&---------------------------------------------------------------------*
**--ALV用到的工作区定义
DATAwa_fieldcat TYPE slis_fieldcat_alv,
      wa_layout TYPE slis_layout_alv.

*&---------------------------------------------------------------------*
*& Inner Table Definition                                              *
*&---------------------------------------------------------------------*
DATAgt_out TYPE TABLE OF typ_out WITH HEADER LINE.

**--ALV用到的内表定义
DATAgt_fieldcat TYPE slis_t_fieldcat_alv WITH HEADER LINE.

*&---------------------------------------------------------------------*
*& Data Definition                                                     *
*&---------------------------------------------------------------------*
DATAg_count TYPE VALUE 1.

**--ALV变量声明
DATAg_repid LIKE sy-repid VALUE sy-repid.


START-OF-SELECTION.
**--获取主数据
  SELECT carrid
         connid
         fldate
         price
    INTO TABLE gt_out
    FROM sflight.


END-OF-SELECTION.

**--ALV显示字段设置
  PERFORM frm_set_all_fieldcat.

**--ALV显示样式设置
  PERFORM frm_set_layout.
**--ALV显示
  PERFORM frm_display_alv.
*&---------------------------------------------------------------------*
*&      Form  FRM_SET_ALL_FIELDCAT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM frm_set_all_fieldcat .
  DATAl_pos TYPE VALUE 0.
  CLEAR gt_fieldcat.
  REFRESH gt_fieldcat.
  DEFINE hout.
    l_pos l_pos + 1.
    gt_fieldcat-tabname 'GT_ALV'"内表
    gt_fieldcat-fieldname &1.
    gt_fieldcat-seltext_m &2.
    gt_fieldcat-col_pos l_pos.
    gt_fieldcat-outputlen &3.
    gt_fieldcat-edit &4.
    gt_fieldcat-key &5"是否在进行编辑
    gt_fieldcat-checkbox &6"勾选框
    gt_fieldcat-emphasize &7"勾选框
    append gt_fieldcat.
    clear gt_fieldcat.
  END-OF-DEFINITION.

  hout 'CARRID' 'CARRID' '' '' '' '' ''.
  hout 'CONNID' 'CONNID' '' '' '' '' ''.
  hout 'FLDATE' 'FLDATE' '' '' '' '' ''.
  hout 'PRICE' 'PRICE' '' '' '' '' 'C510'.
ENDFORM.                    " FRM_SET_ALL_FIELDCAT
*&---------------------------------------------------------------------*
*&      Form  FRM_SET_LAYOUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM frm_set_layout .
  wa_layout-zebra 'X'.
  wa_layout-f2code '&ETA'"是否有事件
  wa_layout-colwidth_optimize 'X'.
ENDFORM.                    " FRM_SET_LAYOUT
*&---------------------------------------------------------------------*
*&      Form  FRM_DISPLAY_ALV
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM frm_display_alv .
  CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
   EXPORTING
*     I_INTERFACE_CHECK                 = ' '
*     I_BYPASSING_BUFFER                = ' '
*     I_BUFFER_ACTIVE                   = ' '
     i_callback_program                g_repid
*       i_callback_pf_status_set          = 'FRM_SET_STATUS'
*       i_callback_user_command           = 'FRM_USER_COMMAND'
*     I_CALLBACK_TOP_OF_PAGE            = ' '
*     I_CALLBACK_HTML_TOP_OF_PAGE       = ' '
*     I_CALLBACK_HTML_END_OF_LIST       = ' '
*     I_STRUCTURE_NAME                  =
*     I_BACKGROUND_ID                   = ' '
*     I_GRID_TITLE                      =
*     I_GRID_SETTINGS                   =
     is_layout                         wa_layout
     it_fieldcat                       gt_fieldcat[]
*     IT_EXCLUDING                      =
*     IT_SPECIAL_GROUPS                 =
*     it_sort                           = it_sort[]
*     IT_FILTER                         =
*     IS_SEL_HIDE                       =
*     i_default                         = 'X'
   i_save                            'X'
*     IS_VARIANT                        =
*     IT_EVENTS                         =
*     IT_EVENT_EXIT                     =
*     IS_PRINT                          =
*     IS_REPREP_ID                      =
*     I_SCREEN_START_COLUMN             = 0
*     I_SCREEN_START_LINE               = 0
*     I_SCREEN_END_COLUMN               = 0
*     I_SCREEN_END_LINE                 = 0
*     I_HTML_HEIGHT_TOP                 = 0
*     I_HTML_HEIGHT_END                 = 0
*     IT_ALV_GRAPHICS                   =
*     IT_HYPERLINK                      =
*     IT_ADD_FIELDCAT                   =
*     IT_EXCEPT_QINFO                   =
*     IR_SALV_FULLSCREEN_ADAPTER        =
*   IMPORTING
*     E_EXIT_CAUSED_BY_CALLER           =
*     ES_EXIT_CAUSED_BY_USER            =
    TABLES
      t_outtab                          gt_out
   EXCEPTIONS
     program_error                     1
     OTHERS                            2
            .
  IF sy-subrc <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
  ENDIF.
ENDFORM.                    " FRM_DISPLAY_ALV

三、单元格颜色



*&---------------------------------------------------------------------*
*& Report  YTEST073
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*

REPORT ytest075.

*&---------------------------------------------------------------------*
*& Tables Declarition                                                  *
*&---------------------------------------------------------------------*


*&---------------------------------------------------------------------*
*& Type-pools Declarition                                              *
*&---------------------------------------------------------------------*
TYPE-POOLSslis.

*&---------------------------------------------------------------------*
*& Type Definition                                                     *
*&---------------------------------------------------------------------*
TYPESBEGIN OF typ_out,
         carrid TYPE sflight-carrid,
         connid TYPE sflight-connid,
         fldate TYPE sflight-fldate,
         price TYPE sflight-price,
         cellcolor TYPE lvc_t_scol"单元格颜色
      END OF typ_out.

*&---------------------------------------------------------------------*
*& Work Area Definition                                                *
*&---------------------------------------------------------------------*
**--ALV用到的工作区定义
DATAwa_fieldcat TYPE slis_fieldcat_alv,
      wa_layout TYPE slis_layout_alv,
      wa_cellcolor TYPE lvc_s_scol" 单元格颜色结构

*&---------------------------------------------------------------------*
*& Inner Table Definition                                              *
*&---------------------------------------------------------------------*
DATAgt_out TYPE TABLE OF typ_out WITH HEADER LINE.

**--ALV用到的内表定义
DATAgt_fieldcat TYPE slis_t_fieldcat_alv WITH HEADER LINE.

*&---------------------------------------------------------------------*
*& Data Definition                                                     *
*&---------------------------------------------------------------------*
DATAg_count TYPE VALUE 1.

**--ALV变量声明
DATAg_repid LIKE sy-repid VALUE sy-repid.


START-OF-SELECTION.
**--获取主数据
  SELECT carrid
         connid
         fldate
         price
    INTO CORRESPONDING FIELDS OF TABLE gt_out
    FROM sflight.

  "---单元格颜色控制
  LOOP AT gt_out WHERE carrid EQ 'AF'.
    wa_cellcolor-fname 'CONNID'.
    wa_cellcolor-color-col '3'.
    wa_cellcolor-color-int '1'.
    wa_cellcolor-color-inv '0'.
    APPEND wa_cellcolor TO gt_out-cellcolor.

    MODIFY gt_out  TRANSPORTING cellcolor.
  ENDLOOP.


END-OF-SELECTION.

**--ALV显示字段设置
  PERFORM frm_set_all_fieldcat.

**--ALV显示样式设置
  PERFORM frm_set_layout.
**--ALV显示
  PERFORM frm_display_alv.
*&---------------------------------------------------------------------*
*&      Form  FRM_SET_ALL_FIELDCAT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM frm_set_all_fieldcat .
  DATAl_pos TYPE VALUE 0.
  CLEAR gt_fieldcat.
  REFRESH gt_fieldcat.
  DEFINE hout.
    l_pos l_pos + 1.
    gt_fieldcat-tabname 'GT_ALV'"内表
    gt_fieldcat-fieldname &1.
    gt_fieldcat-seltext_m &2.
    gt_fieldcat-col_pos l_pos.
    gt_fieldcat-outputlen &3.
    gt_fieldcat-edit &4.
    gt_fieldcat-key &5"是否在进行编辑
    gt_fieldcat-checkbox &6"勾选框
    gt_fieldcat-emphasize &7"勾选框
    append gt_fieldcat.
    clear gt_fieldcat.
  END-OF-DEFINITION.

  hout 'CARRID' 'CARRID' '' '' '' '' ''.
  hout 'CONNID' 'CONNID' '' '' '' '' ''.
  hout 'FLDATE' 'FLDATE' '' '' '' '' ''.
  hout 'PRICE' 'PRICE' '' '' '' '' ''.
ENDFORM.                    " FRM_SET_ALL_FIELDCAT
*&---------------------------------------------------------------------*
*&      Form  FRM_SET_LAYOUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM frm_set_layout .
  wa_layout-zebra 'X'.
  wa_layout-f2code '&ETA'"是否有事件
  wa_layout-colwidth_optimize 'X'.
  wa_layout-coltab_fieldname 'CELLCOLOR'.  " 单元格颜色字段
ENDFORM.                    " FRM_SET_LAYOUT
*&---------------------------------------------------------------------*
*&      Form  FRM_DISPLAY_ALV
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM frm_display_alv .
  CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
   EXPORTING
*     I_INTERFACE_CHECK                 = ' '
*     I_BYPASSING_BUFFER                = ' '
*     I_BUFFER_ACTIVE                   = ' '
     i_callback_program                g_repid
*       i_callback_pf_status_set          = 'FRM_SET_STATUS'
*       i_callback_user_command           = 'FRM_USER_COMMAND'
*     I_CALLBACK_TOP_OF_PAGE            = ' '
*     I_CALLBACK_HTML_TOP_OF_PAGE       = ' '
*     I_CALLBACK_HTML_END_OF_LIST       = ' '
*     I_STRUCTURE_NAME                  =
*     I_BACKGROUND_ID                   = ' '
*     I_GRID_TITLE                      =
*     I_GRID_SETTINGS                   =
     is_layout                         wa_layout
     it_fieldcat                       gt_fieldcat[]
*     IT_EXCLUDING                      =
*     IT_SPECIAL_GROUPS                 =
*     it_sort                           = it_sort[]
*     IT_FILTER                         =
*     IS_SEL_HIDE                       =
*     i_default                         = 'X'
   i_save                            'X'
*     IS_VARIANT                        =
*     IT_EVENTS                         =
*     IT_EVENT_EXIT                     =
*     IS_PRINT                          =
*     IS_REPREP_ID                      =
*     I_SCREEN_START_COLUMN             = 0
*     I_SCREEN_START_LINE               = 0
*     I_SCREEN_END_COLUMN               = 0
*     I_SCREEN_END_LINE                 = 0
*     I_HTML_HEIGHT_TOP                 = 0
*     I_HTML_HEIGHT_END                 = 0
*     IT_ALV_GRAPHICS                   =
*     IT_HYPERLINK                      =
*     IT_ADD_FIELDCAT                   =
*     IT_EXCEPT_QINFO                   =
*     IR_SALV_FULLSCREEN_ADAPTER        =
*   IMPORTING
*     E_EXIT_CAUSED_BY_CALLER           =
*     ES_EXIT_CAUSED_BY_USER            =
    TABLES
      t_outtab                          gt_out
   EXCEPTIONS
     program_error                     1
     OTHERS                            2
            .
  IF sy-subrc <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
  ENDIF.
ENDFORM.                    " FRM_DISPLAY_ALV

四、颜色编码

ABAP中的颜色代码是由4位字都组成的

Cxyz

C:color的简写,颜色代码均以C开头

x:标准色代码,SAP中一共有7个标准色

y:反转颜色启用/关闭 1/0

z:增强颜色启用/关闭 1/0

标准色代码一览表

X

颜色

主要用处

1

灰蓝色

抬头、标题栏

2

浅灰色

列表内容

3

黄色

汇总

4

蓝色

关键字

5

绿色

正确

6

红色

错误

7

橙色

控制



  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值