ALV的颜色设置分为3种:行、列、单元格。
 
1.列颜色的设置
  在 slis_t_fieldcat_alv-emphasize 中,写入需要的颜色代码。
  Eg:
  DATA: fc TYPE slis_t_fieldcat_alv WITH HEADER LINE.
        fc-tabname = 'ITAB'.
         fc-fieldname = 'COL'.
         fc-emphasize = 'C100'.
         append fc.
 
2.行颜色的设置
  a.在要输出的 itab 中,加入 color 列,类型为C(4),记录需要的颜色代码。
  b.设置 layout。alv_layout-info_fieldname = 'COLOR'.
Eg: DATA: BEGIN OF itab OCCURS 0.
   INCLUDE STRUCTURE mara.
    DATA: color(4) TYPE c.
    DATA: END OF itab.
 
    DATA: alv_layout TYPE slis_layout_alv.
      
    itab-matnr =  '123'.
    itab-color = 'C200'.
    APPEND itab.
 
    alv_layout-info_fieldname = 'COLOR'.  
 
3.单元格颜色设置
  a.在要输出的 itab 中,加入 color 列,类型为 slis_t_specialcol_alv,记录需要的颜色代码。
  b.设置 layout。alv_layout-coltab_fieldname = 'COLOR'.
 
Eg: DATA: BEGIN OF itab OCCURS 0.
   INCLUDE STRUCTURE mara.
    DATA: color TYPE slis_t_specialcol_alv.
    DATA: END OF itab.
 
    DATA: color TYPE slis_t_specialcol_alv.      
    DATA: alv_layout TYPE slis_layout_alv.
 
    color-color-col = '1'.
    color-color-int = '0'.
    color-color-inv = '0'.
    color-fieldname = 'COL'.
    APPEND color.
      
    itab-matnr =  '123'.
    itab-color[] = color[].
    APPEND itab.
 
    alv_layout-coltab_fieldname = 'COLOR'.
 
以上是我对ALV GRID着色方法的一个总结,由于技术水平有限可能还存在一些遗漏,还望大家指出。
 
事例代码:
 
REPORT ztest.

"双击单元格,可进入新的ALV画面.

TYPE-POOLS: slis.

*一共定义3个内表.
*itab1 :设置列颜色,
*itab2 :设置行颜色.
*itab3 :设置单元格颜色.

DATA: BEGIN OF itab_test OCCURS 0,
        col1(4) TYPE c,
        col2(4) TYPE c,
        col3(4) TYPE c,
        col4(4) TYPE c,
        col5(4) TYPE c,
        col6(4) TYPE c,
      END OF itab_test .

DATA: BEGIN OF itab_test2 OCCURS 0.
        INCLUDE STRUCTURE itab_test.
DATA: color(4) TYPE c.
DATA: END OF itab_test2.

DATA: BEGIN OF itab_test3 OCCURS 0.
        INCLUDE STRUCTURE itab_test.
DATA: color TYPE slis_t_specialcol_alv.
DATA: END OF itab_test3.

DATA: fc TYPE slis_t_fieldcat_alv WITH HEADER LINE,
      fc2 TYPE slis_t_fieldcat_alv WITH HEADER LINE,
      fc3 TYPE slis_t_fieldcat_alv WITH HEADER LINE.

START-OF-SELECTION.
  PERFORM create_data.

END-OF-SELECTION.
  PERFORM fieldcat_build.
  PERFORM show_alv.

*&---------------------------------------------------------------------*
*&      Form  create_data
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
FORM create_data.

DATA: l_color(4) TYPE c,
        l_char TYPE c,
        i TYPE i.
  DATA: color TYPE slis_t_specialcol_alv WITH HEADER LINE.

REFRESH itab_test.
  REFRESH itab_test2.
  REFRESH itab_test3.
  REFRESH fc.
  REFRESH fc2.
  REFRESH fc3.

WHILE sy-index < 8.
* 内表 1
    itab_test-col1 = ( sy-index - 1 ) * 6 + 1.
    itab_test-col2 = ( sy-index - 1 ) * 6 + 2.
    itab_test-col3 = ( sy-index - 1 ) * 6 + 3.
    itab_test-col4 = ( sy-index - 1 ) * 6 + 4.
    itab_test-col5 = ( sy-index - 1 ) * 6 + 5.
    itab_test-col6 = ( sy-index - 1 ) * 6 + 6.
    APPEND itab_test.

* 内表 2
    MOVE-CORRESPONDING itab_test TO itab_test2.
    l_char =  sy-index.

i = sy-index MOD 2.
    IF i = 0.
      CONCATENATE 'C' l_char '01' INTO l_color.
    ELSE.
      CONCATENATE 'C' l_char '10' INTO l_color.
    ENDIF.
    itab_test2-color = l_color.
    APPEND itab_test2.

* 内表 3
    MOVE-CORRESPONDING itab_test TO itab_test3.
    REFRESH color.

color-color-col = l_char.

color-color-int = '0'.
    color-color-inv = '0'.
    color-fieldname = 'COL1'. APPEND color.
    CONCATENATE l_char '00' INTO itab_test3-col1.

color-color-int = '0'.
    color-color-inv = '1'.
    color-fieldname = 'COL2'. APPEND color.
    CONCATENATE l_char '01' INTO itab_test3-col2.

color-color-int = '1'.
    color-color-inv = '0'.
    color-fieldname = 'COL3'. APPEND color.
    CONCATENATE l_char '10' INTO itab_test3-col3.

itab_test3-color[] = color[].
    APPEND itab_test3.

ENDWHILE.

ENDFORM.                    "create_data

************************************************************************
FORM fieldcat_build.
  DATA: BEGIN OF fc_struct,
          tabname(10),
          fieldname(5),
          seltext_m(5),
          emphasize(4),
        END OF fc_struct.
  DEFINE ac.
    clear: fc,fc2,fc_struct.
    fc_struct = &1.
    fc-tabname   = fc_struct-tabname.  "内表名
    fc-fieldname = fc_struct-fieldname. "字段名
    fc-seltext_m = fc_struct-seltext_m. "字段描述
    fc-emphasize = fc_struct-emphasize. "列颜色
    append fc.

fc2-tabname   = fc_struct-tabname.  "内表名
    fc2-fieldname = fc_struct-fieldname. "字段名
    fc2-seltext_m = fc_struct-seltext_m. "字段描述
    append fc2.

if fc3-fieldname < 'COL4'.
      fc3-tabname   = fc_struct-tabname.  "内表名
      fc3-fieldname = fc_struct-fieldname. "字段名
      fc3-seltext_m = fc_struct-seltext_m. "字段描述
      append fc3.
    endif.
  END-OF-DEFINITION.

ac 'ITAB_TEST COL1 COL1 C100'.
  ac 'ITAB_TEST COL2 COL2 C200'.
  ac 'ITAB_TEST COL3 COL3 C300'.
  ac 'ITAB_TEST COL4 COL4 C400'.
  ac 'ITAB_TEST COL5 COL5 C500'.
  ac 'ITAB_TEST COL6 COL6 C600'.

ENDFORM.                    "fieldcat_build

*&---------------------------------------------------------------------*
*&      Form  show_alv
*&---------------------------------------------------------------------*
*      显示内表 1
*----------------------------------------------------------------------*
FORM show_alv.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
    EXPORTING
      i_callback_program      = sy-repid
      it_fieldcat             = fc[]
      i_callback_user_command = 'PROCESS_USER_COMMAND_1'
      i_save                  = 'A'
    TABLES
      t_outtab                = itab_test
    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.                    "show_alv

*&---------------------------------------------------------------------*
*&      Form  PROCESS_USER_COMMAND_1
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      -->UCOMM        text
*      -->RS_SELFIELD  text
*----------------------------------------------------------------------*
FORM process_user_command_1 USING ucomm
               rs_selfield TYPE slis_selfield.

IF rs_selfield-fieldname <> space AND rs_selfield-tabindex > 0.
    PERFORM show_alv_2.
  ENDIF.

ENDFORM.                    "PROCESS_USER_COMMAND_1

*&---------------------------------------------------------------------*
*&      Form  show_alv_2
*&---------------------------------------------------------------------*
*       显示内表 2
*----------------------------------------------------------------------*
FORM show_alv_2.
  DATA: alv_layout       TYPE slis_layout_alv.

alv_layout-info_fieldname = 'COLOR'.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
    EXPORTING
      i_callback_program      = sy-repid
      it_fieldcat             = fc2[]
      i_callback_user_command = 'PROCESS_USER_COMMAND_2'
      is_layout               = alv_layout
      i_save                  = 'U'
    TABLES
      t_outtab                = itab_test2
    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.                                                    "show_alv_2

*&---------------------------------------------------------------------*
*&      Form  PROCESS_USER_COMMAND_2
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      -->UCOMM        text
*      -->RS_SELFIELD  text
*----------------------------------------------------------------------*
FORM process_user_command_2 USING ucomm
               rs_selfield TYPE slis_selfield.

IF rs_selfield-fieldname <> space AND rs_selfield-tabindex > 0.
    PERFORM show_alv_3.
  ENDIF.

ENDFORM.                    "PROCESS_USER_COMMAND_2

*&---------------------------------------------------------------------*
*&      Form  show_alv_3
*&---------------------------------------------------------------------*
*       显示内表 3
*----------------------------------------------------------------------*
FORM show_alv_3.
  DATA: alv_layout       TYPE slis_layout_alv.

alv_layout-coltab_fieldname = 'COLOR'.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
    EXPORTING
      i_callback_program = sy-repid
      it_fieldcat        = fc3[]
      is_layout          = alv_layout
      i_save             = 'U'
    TABLES
      t_outtab           = itab_test3
    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.                                                    "show_alv_3

ALV行 列颜色设置的更多相关文章

  1. 函数alv下的颜色设置

    ABAP中的颜色代码是由4位字都组成的 cxyz    c:color的简写,颜色代码均以C开头 x:标准色代码,SAP中一共有7个标准色    y:反转颜色启用/关闭 1/0 z:增强颜色启用/关闭 ...

  2. C# ListBox 每行显示颜色设置

    使用ListBox时,每行显示不同的颜色 1.把AllowHtmlDraw属性设置为True 2.直接在Add或者AddRange里写标签 代码里用的是DEV插件里的ListBox,使用原生的也是一样 ...

  3. DevExpress中XtraGrid控件对GridView每行的颜色设置 zt

    改变行颜色 private void GridView1_RowStyle(object sender, DevExpress.XtraGrid.Views.Grid.RowStyleEventArg ...

  4. windows cmd color颜色设置

    上一篇我们讲了去模仿电影黑客的命令界面,其中有关于cmd命令行的颜色设置,下面就细说一下: 1.cmd进入命令 2.color+空格+?    系统会给与相关提示: 3.可以看出颜色是一个十六进制控制 ...

  5. ABAP ALV 颜色设置(行,列,单元格)

    BCALV_EDIT_03 http://blog.sina.com.cn/s/blog_a87b19300102who3.html 关于ALV表格颜色,这种需求在项目中会经常用到. 列颜色 列的颜色 ...

  6. ALV列、行、单元格颜色设置

    )颜色含义 :海蓝:2:浅清:3:黄色:4:浅蓝:5:青色:6:红色:7:橙色. (1)首位为主颜色: (2)次位为辅助颜色: (3)末位为0时,表示首位数字表为表格的底色: 末位为1时,则表示以1为 ...

  7. ALV 颜色设置(行,列,单元格)

    [转自:https://www.cnblogs.com/mingdashu/p/color_alv.html] BCALV_EDIT_03 http://blog.sina.com.cn/s/blog ...

  8. SAP ABAP ALV 颜色设置(两个ALV函数例子) 列 行 单元格

    @[TOC](设置ALV颜色)# 前言淦! 要求花花绿绿的ALV ,那就淦他! 需要的参数和对应颜色放在最后.稍微改改就能用. 介绍两个常用的ALV函数实现1.REUSE_ALV_GRID_DISPL ...

  9. ALV的颜色分为行的颜色、列的颜色和CELL的颜色

    ALV的颜色分为行的颜色.列的颜色和CELL的颜色.任务要求,将一定的Tabellenfeld 用黄色填充,也就是说CELL的颜色 DATA:ls_cellcolorTYPElvc_s_scol,co ...

随机推荐

  1. Laravel之加密解密/日志/异常处理及自定义错误

    一.加密解密 1.加密Crypt::encrypt($request->secret) 2.解密try { $decrypted = Crypt::decrypt($encryptedValue ...

  2. 【转】WEB开发三层架构概述

    关于 三层架构(3-tier application) 通常意义上的三层架构就是将整个业务应用划分为:表现层(UI).业务逻辑层(BLL).数据访问层(DAL).区分层次的目的即为了“高内聚,低耦合” ...

  3. mysql kill process解决死锁

    mysql使用myisam的时候锁表比较多,尤其有慢查询的时候,造成死锁.这时需要手动kill掉locked的process.使他释放. (以前我都是重起服务)..惭愧啊.. 演示:(id 7是我用p ...

  4. Unix环境部署

    http://www.cnblogs.com/chuyuhuashi/p/4423699.html 分布式javahttp://www.cnblogs.com/tangyanbo/p/4499485. ...

  5. Odoo 11 Backend

    Table of Contents 命令入口 服务器 启动server thread 模式 prefork 模式 gevent模式 wsgi 应用 响应 客户端请求 xmlrpc web http路由 ...

  6. Android_编程规范与经常使用技巧

    一.Android编码规范 1.java代码中不出现中文,最多凝视中能够出现中文 2.局部变量命名.静态成员变量命名 仅仅能包括字母,单词首字母出第一个外.都为大写,其它字母都为小写 3.常量命名 仅 ...

  7. Nginx:处理HTTP请求

    参考资料<深入理解Nginx>(陶辉) 处理HTTP请求 接着上一次的内容,本次将说明HTTP框架是如何召集负责具体功能的各HTTP模块合作处理请求的. 在http://www.cnblo ...

  8. 捕获php请求内容

    通过将phpinfo()打印到文件实现 <?php echo str_pad('', 1024);//使缓冲区溢出 ob_start();//打开缓冲区 phpinfo(); $string = ...

  9. html5 的a标签是可以拨电话的,通过其Href属性来实现

    <a href="tel:18700000000">点击给我打电话吧!</a> 注: 1.<a href="tel:18750000000& ...

  10. java游戏开发之基础

    © 版权声明:本文为博主原创文章,转载请注明出处 游戏图形界面开发基础 AWT:(Abstract Window Toolkit,抽象窗口工具集) AWT中包含图形界面编程的基本类库,是Java语言G ...