ALV颜色设置实践与总结

一. 行颜色

    1. 在结果内表中添加字段  color(4TYPE c ,用来存储四位颜色值.

    2. 在内表循环中给这个字段赋值,比如'C310' 黄色.

    3. 最关键的一点,在layout结构中设定颜色字段的名字,代码如下:

            is_layout-info_fieldname = 'COLOR'" 行颜色字段

        is_layout 是我们声明的一个ALV的 type slis_layout_alv  的结构.

 

二. 列颜色

   列颜色较为简单,我们在填充结构 it_fieldcat TYPE slis_t_fieldcat_alv 时,为每一列直接赋值就好了。

 

三。单元格颜色

    1. 在结果内表中添加字段    cellcolor TYPE lvc_t_scol . 这是一个内表,用来存储单元格的颜色。

    2. 在内表循环中给这个内表赋值,示例代码如下:

       PERFORM fill_cellcolor CHANGING wa_result-cellcolor. " 单元格高亮(黄色)

*&---------------------------------------------------------------------*
*&      Form  fill_cellcolor
*&---------------------------------------------------------------------*
*       填充单元格颜色数据
*----------------------------------------------------------------------*
FORM fill_cellcolor CHANGING p_cellcolor type lvc_t_scol.

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

  DEFINE set_color.
    wa_cellcolor-fname = &1.
    wa_cellcolor-color-col = '3'.
    wa_cellcolor-color-int = '1'.
    wa_cellcolor-color-inv = '0'.
    append wa_cellcolor to p_cellcolor.
  END-OF-DEFINITION.

  set_color 'MATNR'.
  set_color 'MAKTX'.
  set_color 'MEINS'.
  set_color 'CNT_S'.
  set_color 'QUOTE1'.
  set_color 'QUOTE2'.

ENDFORM.                    " fill_cellcolor


 

    3. 最关键的一点,在layout结构中设定颜色字段的名字,代码如下:

              is_layout-coltab_fieldname = 'CELLCOLOR'.  " 单元格颜色字段

 

总结:

    当同时设定了行颜色和列颜色后,行颜色会覆盖列颜色,有的时候用户不希望这种结果的出现,解决办法就是设定每行的单元格(当然不包括与设定列颜色的列相交叉的单元格)的颜色。

 

附录:ABAP颜色代码

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

Cxyz

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

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

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

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

标准色代码一览表

X

颜色

主要用处

1

灰蓝色

抬头、标题栏

2

浅灰色

列表内容

3

黄色

汇总

4

蓝色

关键字

5

绿色

正确

6

红色

错误

7

橙色

控制

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在ABAP中,可以通过使用ALV列表视图(ALV Grid)来为特定的单元格添加颜色提示。下面是一个简单的示例代码,演示如何在ALV Grid中添加颜色提示: 1. 首先,你需要在程序的顶部包含以下两个库: ```abap TYPE-POOLS: slis. INCLUDE: slis. ``` 2. 然后,在程序中定义一个内部表来存储显示的数据: ```abap DATA: lt_data TYPE TABLE OF spfli. ``` 3. 接下来,使用函数模块REUSE_ALV_GRID_DISPLAY来显示ALV Grid: ```abap CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY' EXPORTING i_callback_program = sy-repid TABLES t_outtab = lt_data. ``` 4. 然后,使用函数模块REUSE_ALV_FIELDCATALOG_MERGE来定义字段目录: ```abap CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE' EXPORTING i_program_name = sy-repid i_internal_tabname = 'SPFLI' CHANGING ct_fieldcat = gt_fieldcat[] EXCEPTIONS inconsistent_interface = 1 program_error = 2 OTHERS = 3. ``` 5. 接下来,在字段目录中定义一个颜色字段,并设置其属性: ```abap LOOP AT gt_fieldcat ASSIGNING FIELD-SYMBOL(<fs_fieldcat>). IF <fs_fieldcat>-fieldname = 'CARRID'. <fs_fieldcat>-color-col = 'C'. <fs_fieldcat>-emphasize = 'X'. ENDIF. ENDLOOP. ``` 在上述代码中,我们为字段'CARRID'定义了一个颜色字段,并设置颜色属性为'C',以及强调属性为'X'。 6. 最后,通过调用函数模块REUSE_ALV_GRID_DISPLAY,显示带有颜色提示的ALV Grid: ```abap CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY' EXPORTING i_callback_program = sy-repid TABLES t_outtab = lt_data fieldcat = gt_fieldcat. ``` 以上就是一个简单的示例,演示了如何在ABAP中使用ALV Grid来添加颜色提示。你可以根据自己的需求进行进一步的定制和扩展。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值