zoukankan      html  css  js  c++  java
  • 函数alv下的颜色设置

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

    cxyz

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

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

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

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

    标准色代码一览表

    X 颜色 主要用处
    1 灰蓝色 抬头、标题栏
    2 浅灰色 列表内容
    3 黄色 汇总
    4 蓝色 关键字
    5 绿色 正确
    6 红色 错误
    7 橙色 控制

    如:

    单元格颜色控制:

    定义最后显示内表的时候要在里面增加一个 

    colour  type lvc_T_scol,类型,这是个内表类型,

    DATA  yellow_color TYPE LVC_S_SCOL. 这是它的工作区,

    如:

     

    TYPES:BEGIN OF t_detail,
          matnr   TYPE eina-matnr,      "物料

          ratio   type 
          colour  type lvc_T_scol,      "控制单元格颜色   

      END OF t_detail.

     

    DATA: gt_detail TYPE STANDARD TABLE OF t_detail,    "明细內表

          gs_detail LIKE LINE OF gt_detail,    "明细內表工作区

            IF l_ratio >= 50.
           yellow_color-fname = 'RATIO'.
           yellow_color-color-col = '6'.
           yellow_color-color-int = '1'.

          APPEND yellow_color TO gs_detail-colour. 

              endif.

           append gs_detail to gt_detail.

    除此之外还要设置布局格式

    i_layout-coltab_fieldname = 'COLOUR'. ”'COLOUR'是内表中控制单元格颜色的字段。

    有关颜色的控制如下

    一. 行颜色

        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'.  " 单元格颜色字段

    总结:

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

  • 相关阅读:
    7月15日考试 题解(链表+状压DP+思维题)
    暑假集训日记
    C# .NET 使用 NPOI 生成 .xlsx 格式 Excel
    JavaSE 基础 第42节 局部内部类
    JavaSE 基础 第41节 匿名内部类
    JavaSE 基础 第40节 内部类概述
    JavaSE 基础 第39节 接口的应用
    JavaSE 基础 第38节 接口的实现
    JavaSE 基础 第37节 接口概述
    JavaSE 基础 第36节 抽象类概述与使用
  • 原文地址:https://www.cnblogs.com/caizjian/p/3702551.html
Copyright © 2011-2022 走看看