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

    总结:

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

  • 相关阅读:
    eclipse 粘贴字符串自动添加转义符
    原创 导出微信收藏到电脑
    解决 eclipse中properties文件编码问题
    jetty 内嵌服务
    解决log4j:WARN No appenders could be found for logger
    解决JettyMavenPlugin: Failed to load class "org.slf4j.impl.StaticLoggerBinder"
    读取properties文件方式
    解决ssh远程登陆linux显示-bash-4.1$
    解决weblogic.net.http.SOAPHttpsURLConnection incompatible with javax.net.ssl.HttpsURLConnection
    解决java.io.IOException: HTTPS hostname wrong: should be
  • 原文地址:https://www.cnblogs.com/caizjian/p/3702551.html
Copyright © 2020-2023  润新知