您的位置:首页 > 其它

ALV 颜色设置

2014-09-24 22:33 603 查看
一、行颜色

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-POOLS: slis.

*&---------------------------------------------------------------------*
*& Type Definition                                                     *
*&---------------------------------------------------------------------*
TYPES: BEGIN 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用到的工作区定义
DATA: wa_fieldcat TYPE slis_fieldcat_alv,

      wa_layout TYPE slis_layout_alv.

*&---------------------------------------------------------------------*
*& Inner Table Definition                                              *
*&---------------------------------------------------------------------*
DATA: gt_out TYPE TABLE OF typ_out WITH HEADER LINE.

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

*&---------------------------------------------------------------------*
*& Data Definition                                                     *
*&---------------------------------------------------------------------*
DATA: g_count TYPE i VALUE 1.

**--ALV变量声明
DATA: g_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 .

  DATA: l_pos TYPE i 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-POOLS: slis.

*&---------------------------------------------------------------------*
*& Type Definition                                                     *
*&---------------------------------------------------------------------*
TYPES: BEGIN 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用到的工作区定义
DATA: wa_fieldcat TYPE slis_fieldcat_alv,

      wa_layout TYPE slis_layout_alv.

*&---------------------------------------------------------------------*
*& Inner Table Definition                                              *
*&---------------------------------------------------------------------*
DATA: gt_out TYPE TABLE OF typ_out WITH HEADER LINE.

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

*&---------------------------------------------------------------------*
*& Data Definition                                                     *
*&---------------------------------------------------------------------*
DATA: g_count TYPE i VALUE 1.

**--ALV变量声明
DATA: g_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 .

  DATA: l_pos TYPE i 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-POOLS: slis.

*&---------------------------------------------------------------------*
*& Type Definition                                                     *
*&---------------------------------------------------------------------*
TYPES: BEGIN 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用到的工作区定义
DATA: wa_fieldcat TYPE slis_fieldcat_alv,

      wa_layout TYPE slis_layout_alv,

      wa_cellcolor TYPE lvc_s_scol. " 单元格颜色结构

*&---------------------------------------------------------------------*
*& Inner Table Definition                                              *
*&---------------------------------------------------------------------*
DATA: gt_out TYPE TABLE OF typ_out WITH HEADER LINE.

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

*&---------------------------------------------------------------------*
*& Data Definition                                                     *
*&---------------------------------------------------------------------*
DATA: g_count TYPE i VALUE 1.

**--ALV变量声明
DATA: g_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 .

  DATA: l_pos TYPE i 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
橙色
控制
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  ALV颜色编码