ALV Color-颜色

news2024/9/30 7:29:51

目录

前言

实战

        列颜色

        行颜色

         单元格颜色

前言

        在ABAP ALV中,Color颜色设置是一种增强列表显示效果的重要手段,可以用来突出显示特定行、列或单元格,以吸引用户注意或传达数据的特定状态。

        颜色设置中有优先级顺序,他们是单元格->行->列,即若同时使用了上面的三种更改颜色的方法,则列的颜色会被行的颜色覆盖掉,而行的颜色又会被单元格的颜色覆盖掉,最终只会显示出单元格的颜色。
        如果这列被设置为关键列,就是gs_fieldcat-KEY = 'X' ,那么颜色设置就不会起作用。

实战

        列颜色

        直接设置字段列的fieldcat-emphasize属性;
                 gs_fieldcat-emphasize = 'C310'.

        行颜色

        ALV中的每行数据颜色是通过Layout来控制的。需要在显示输出内表结构中增加一列字段,用来存储数据行的颜色。
            gs_layout-info_fieldname = 'COLOR'.

        ALV中的颜色是由4位数组成:'C'+COL+INT+INV

        参数结构如下:

*** Structure for colors
types: begin of slis_color,
         col type i,
         int type i,
         inv type i,
       end of slis_color.

        详细解释:

                第1位:固定取值C;
                第2位-COL:颜色值,取值为0~7;

                第3位-INT:高亮,即颜色是否加深,取值为0、1;(1表示加深显示)
                第4位-INV:颜色是否反转,即颜色是作用在背景上,还是作用在输出字符上,取值上为0、1(为1时表示设置的是前景色,即输出字符本身的颜色,好像只有在第3位为0时才有效?) 

        颜色值测试表:

        完整代码:

TYPE-POOLS:slis.
DATA: gt_fieldcat TYPE slis_t_fieldcat_alv WITH HEADER LINE.
DATA: gs_layout TYPE slis_layout_alv.

DATA:BEGIN OF gt_data OCCURS 0,
  val1(4),"颜色值
  val2(4),"颜色值
  color(4),"用来存储行颜色
  END OF gt_data.

START-OF-SELECTION.
  PERFORM f_inital.
  DEFINE f_fdcat.
    clear gt_fieldcat.
    gt_fieldcat-fieldname = &1.
    gt_fieldcat-seltext_l = &2.
    append gt_fieldcat.
  END-OF-DEFINITION.

  f_fdcat 'VAL1' '行颜色值'.
  f_fdcat 'VAL2' '行颜色值'.

  gs_layout-info_fieldname = 'COLOR'." 指定哪一列用来作为行颜色的列
  CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
    EXPORTING
      it_fieldcat = gt_fieldcat[]
      is_layout   = gs_layout
    TABLES
      t_outtab    = gt_data.

FORM f_inital .
  DATA: c1,c2,c3.
  DO 8 TIMES.
    c1 = sy-index - 1.
    DO 2 TIMES.
      c2 = sy-index - 1.
      DO 2 TIMES.
        c3 = sy-index - 1.
        CONCATENATE 'C' c1 c2 c3 INTO gt_data-color.
        gt_data-val1 = gt_data-color.
        gt_data-val2 = gt_data-color.
        APPEND gt_data.
      ENDDO.
    ENDDO.
  ENDDO.
ENDFORM.

         单元格颜色

         每个单元格的颜色也是可以单独进行设置的,当然既然可以给单元格设置颜色,则整列相同颜色也是可以采用此方式来设置的。
        gs_layout-coltab_fieldname = 'COLORTABLE'

        展示效果:

        完整代码:

TYPE-POOLS:slis.
DATA: gt_fieldcat TYPE slis_t_fieldcat_alv WITH HEADER LINE.
DATA: gs_layout TYPE slis_layout_alv.

DATA:BEGIN OF gt_data OCCURS 0,
  val1(40),"颜色值
  val2(40),"颜色值
  val3(40),
  colortable TYPE slis_t_specialcol_alv, "每行中的单元格颜色内表,可对多个单元格进行不同颜色设置
  END OF gt_data.
"每行中单元格颜色列表
DATA: gt_color TYPE slis_t_specialcol_alv WITH HEADER LINE.

START-OF-SELECTION.
  PERFORM f_inital.
  DEFINE def_fdcat.
    clear gt_fieldcat.
    gt_fieldcat-fieldname = &1.
    gt_fieldcat-seltext_l = &2.
    append gt_fieldcat.
  END-OF-DEFINITION.

  def_fdcat 'VAL1' '颜色值'.
  def_fdcat 'VAL2' '颜色值'.
  def_fdcat 'VAL3' '无颜色'.

  gs_layout-colwidth_optimize = 'X'.
  gs_layout-coltab_fieldname = 'COLORTABLE'."设置输出内表中哪列为颜色列表

  CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
    EXPORTING
      it_fieldcat = gt_fieldcat[]
      is_layout   = gs_layout
    TABLES
      t_outtab    = gt_data.

FORM f_inital .
  DATA: c1,c2.
  DO 7 TIMES.
    c1 = gt_color-color-col = sy-index - 1."颜色值
    DO 2 TIMES.
      c2 = gt_color-color-int =  sy-index - 1."颜色亮度
      gt_color-color-inv = '0'."颜色作用于背景
      CASE sy-index .
        WHEN 1.
          gt_color-fieldname = 'VAL1'."需进行颜色设置的列名(已具体到单元格)
          CONCATENATE 'col=' c1 ` ` 'int=' c2 ` `  'inv=0'  INTO gt_data-val1 .
        WHEN 2.
          gt_color-fieldname = 'VAL2'."需进行颜色设置的列名(已具体到单元格)
          CONCATENATE 'col=' c1 ` ` 'int=' c2 ` `  'inv=0'  INTO gt_data-val2 .
      ENDCASE.
      APPEND gt_color.
    ENDDO.
    "设置每行数据中单元格的颜色内表
    gt_data-colortable = gt_color[].
    gt_data-val3 = '无颜色'.
    APPEND gt_data.
    CLEAR:gt_color,gt_color[].
  ENDDO.
ENDFORM.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1662501.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Mac电脑安装打开APP显示问题已损坏 问题解决

当MAC电脑安装完软件打开时,显示文件已损坏,无法打开。搜了很多教程终于找到解决方案,记录下方便以后再用。 我的mac电脑是intel芯片的,如果你遇到这个问题,可以参考我的这个方案。 1.首先当打开软件后出现 “xx软件已…

HTTPS 原理和 TLS 握手机制

HTTPS的概述与重要性 在当今数字化时代,网络安全问题日益凸显,数据在传输过程中的安全性备受关注。HTTPS 作为一种重要的网络通信协议,为数据的传输提供了强有力的安全保障。它是在 HTTP 的基础上发展而来,通过引入数据加密机制&a…

C++ BuilderXE 计算程序运行时间精确到毫秒

#include <time.h> // //计算时间 clock_t start,end,dtStart; startclock(); // ProgressBar1->Percent0; // // ProgressBar1->Percenti/DDnum*100; // Application->ProcessMessages(); // //操作完成计时 …

干货分享:AI知识库-从认识到搭建

随着知识库的出现&#xff0c;人工智能也逐渐加入进来&#xff0c;形成了“AI知识库”。也许将AI和知识库拆开&#xff0c;你能理解是什么意思&#xff0c;但是当两个词结合在一起时&#xff0c;你又真的能理解它是做什么的吗&#xff1f;这就是今天我们要来聊的话题&#xff0…

服务器内存占用不足会怎么样,解决方案

在当今数据驱动的时代&#xff0c;服务器对于我们的工作和生活起着举足轻重的作用。而在众多影响服务器性能的关键因素当中&#xff0c;内存扮演着极其重要的角色。 服务器内存&#xff0c;也称RAM&#xff08;Random Access Memory&#xff09;&#xff0c;是服务器核心硬件部…

AI办公自动化:用kimi批量新建Word文档

Excel文件中有43行内容&#xff0c;希望根据这些内容批量新建43个word文档。 在kimichat中输入提示词&#xff1a; 你是一个Python编程专家&#xff0c;要完成一个编写批量新建Word文档Python脚本的任务&#xff0c;具体步骤如下&#xff1a; 打开F盘的表格文件&#xff1a;工…

​美团一面问我i++跟++i的区别是什么

美团一面问我i跟i的区别是什么 面试官&#xff1a;“i跟i的区别是什么&#xff1f;” 我&#xff1a;“i是先使用然后再执行1的操作&#xff0c;i是先执行1的操作然后再去使用i” 面试官&#xff1a;“那你看看下面这段代码&#xff0c;运行结果是什么&#xff1f;” public st…

微机控制电子式万能试验机WDW-20B

一.项目简介&#xff1a; 国内微机控制电子式万能试验机起步于90年代初&#xff0c;为提高企业产品的技术水平&#xff0c;公司先后引进国外先进技术&#xff0c;使公司的产品技术水平跃上了一个新的台阶。 二.使用领域&#xff1a; 该产品广泛用于金属、非金属材料的拉、压…

快充插线板怎么选?我的办公搭子是它!

最近我入手了一款倍思65W氮化镓快充插线板,不得不说真的是我的办公好搭子。在这里跟大家分享一下使用体验,希望能给正在挑选快充插线板的你一些参考。 首先,这款插线板的外观真的很讨喜。纯白色的长方体造型,简约而不失时尚感,放在办公桌上非常百搭。而且,它的体积小巧,长度比我…

024.反转链表

给定单链表的头节点 head &#xff0c;请反转链表&#xff0c;并返回反转后的链表的头节点。 示例 1&#xff1a; 输入&#xff1a;head [1,2,3,4,5] 输出&#xff1a;[5,4,3,2,1]示例 2&#xff1a; 输入&#xff1a;head [1,2] 输出&#xff1a;[2,1]示例 3&#xff1a; 输…

如何从 Mac 上清空的垃圾箱中恢复已删除的文件

在 Mac 上删除的文件将被移至垃圾箱并保留 30 天&#xff0c;然后才会被永久删除。然而&#xff0c;许多 Mac 用户可能会意外清空垃圾箱&#xff0c;而没有意识到其中包含重要文件。本指南包含从清空的废纸篓中恢复 Mac 上已删除文件的所有有效方法。 当您意识到自己不小心清空…

最有效的学习方法是:费曼学习法

最有效的学习方法&#xff1a;费曼学习法 最有效的学习方法是什么&#xff1f;就叫做费曼学习法。 其实也就是为什么给别人讲课的人&#xff0c;自己进步的也很快&#xff0c;那些做知识付费赛道的人&#xff0c;自己成长的也很迅速。 费曼学习法&#xff0c;包含4个步骤&…

番外篇 | 利用PyQt5+YOLOv5来搭建目标检测系统(附可视化界面+功能介绍+源代码)

前言:Hello大家好,我是小哥谈。PyQt5是一个Python绑定的Qt库,是用于创建图形用户界面(GUI)和其他应用程序组件的工具包。PyQt5提供了许多GUI元素,如按钮、文本框、标签等,也提供了许多Qt的功能,如网络、数据库、XML等。通过PyQt5可以在Python中使用Qt的丰富功能和强大的工…

以太网技术介绍

随着通信和计算机技术的不断发展&#xff0c;无论是骨干网还是接入网&#xff0c;以太网都已成为应用场景最多&#xff0c;应用范围最广泛的技术之一。对于初次应用以太网的读者&#xff0c;本文主要给出以太网技术的基础知识&#xff0c;并对以太网涉及的部分协议进行简要说明…

大米自动化生产线揭秘:包装设备选择与维护之道

在现代化的大米生产过程中&#xff0c;自动化生产线的应用已经越来越广泛。其中&#xff0c;包装设备作为生产线上的重要一环&#xff0c;其选择与维护直接关系到产品的质量和生产效率。与星派一起探讨大米自动化生产线中包装设备的选择与维护之道。 一、包装设备的选择 在选择…

解双曲型非线性方程的Harden-Yee算法(TVD格式)

解双曲型非线性方程的Harden-Yee算法 先贴代码&#xff0c;教程后面有空再写 import matplotlib import math matplotlib.use(TkAgg) import numpy as np import matplotlib.pyplot as plt def Phiy(yy,epsi):#phi(y)if abs(yy) > epsi:phiyy abs(yy)else:phiyy (yy*yy…

【机器学习】线性回归:以房价预测为例

线性回归&#xff1a;揭秘房价预测的黑科技 一、引言二、线性回归概述三、房价预测实例数据收集与预处理特征选择与建模模型评估与优化 四、总结与展望 一、引言 在数字化时代&#xff0c;数据科学已成为推动社会进步的重要引擎。其中&#xff0c;线性回归作为数据科学中的基础…

Go 语言并发编程初体验:简洁高效

文章目录 前言GoLang 并发编程基本概念进程与线程线程和协程并行与并发GoLang的协程机制 GoLang 并发实践案例需求传统方式实现使用 goroutines 实现并发goroutine 如何通信channel 使用注意事项 总结 前言 Go语言是谷歌推出的一种的编程语言&#xff0c;可以在不损失应用程序…

语义分割——脑肿瘤图像分割数据集

引言 亲爱的读者们&#xff0c;您是否在寻找某个特定的数据集&#xff0c;用于研究或项目实践&#xff1f;欢迎您在评论区留言&#xff0c;或者通过公众号私信告诉我&#xff0c;您想要的数据集的类型主题。小编会竭尽全力为您寻找&#xff0c;并在找到后第一时间与您分享。 …

leetcode刷题——设计循环链表

题目要求我们设计循环队列&#xff0c;其特点是容量固定&#xff0c;队列循环&#xff0c;如图所示&#xff1a; 这里的队列我们以链表队列举例&#xff0c;对于循环&#xff0c;只需要把尾节点的指针指向头节点。重点是队列的容量固定&#xff1a;如何确定队列是否已满和空&am…