ABAP - Function ALV 09 颜色设置(行、列、单元格)

news2025/1/22 15:49:17
  • 用户有些需求要求ALV某些数值要用颜色着重的体现出来。
  • ALV 颜色设置有行颜色、列颜色、单元格颜色
  • 颜色值的设置:C+X(1~7)X(是否加重:1/0)X(是否反色:1/0),附:颜色代码
  •  设置列颜色:Fieldcat参数emphasize赋值
    ** Fieldcat 变量定义
    DATA:gt_fieldcat TYPE lvc_t_fcat,
         gs_fieldcat LIKE LINE OF gt_fieldcat.
    
    gs_fieldcat-emphasize = 'C6'."设置列颜色
    APPEND gs_fieldcat TO gt_fieldcat.

  •  设置行颜色:1.内表增加一个字段,char类型,长度为4位->2.内表赋值->3.设置Layout参数INFO_FNAME赋值,注意:REUSE_ALV_GRID_DISPLAY定义的Layout结构的字段参数是INFO_FIELDNAME
    "1.内表结构定义
    TYPES:BEGIN OF ty_data,
            color1  TYPE c LENGTH 4,    "颜色字段
          END OF ty_data.
    
    "2.内表赋值
    LOOP AT gt_data INTO gw_data.
      IF gw_data-score < 60.
        gw_data-color = 'C6'.
      ENDIF.
      MODIFY gt_data FROM gw_data.
    ENDLOOP.
    
    "3.Layout参数字段赋值
    gs_layout-info_fname = 'COLOR1'
    

  •  设置单元格颜色:1.内表结构增加一个类型为LVC_T_SCOL内表的字段>2.内表赋值->3.设置Layout参数CTAB_FNAME赋值,注意:REUSE_ALV_GRID_DISPLAY​​​​​​​定义的Layout结构的字段参数是CTAB_FIELDNAME
    "1.内表结构定义
    TYPES:BEGIN OF ty_data,
            color2 TYPE lvc_t_scol, "内表参数
          END OF ty_data.
    
    "单元格颜色结构变量定义    
    DATA gs_color TYPE lvc_S_scol.
    
    "2.内表赋值 
    gs_color-fname = 'SEL'. "单元格颜色设置-选择SEL增加颜色
    gs_color-color-col = 6. "单元格颜色设置-底色为红色
    gs_color-color-int = 1. "单元格颜色设置-加重
    gs_color-color-inv = 0. "单元格颜色设置-不反色
    gs_color-NOKEYCOL = '1'."覆盖单元格原色
    APPEND gs_color TO gw_data-color2.
    CLEAR: gs_color.
    
    "3.Layout参数赋值
    gs_layout-ctab_fname = 'COLOR2'."单元格颜色参数
    


  • 完整代码 
    TYPES:BEGIN OF ty_data,
            sel    TYPE char1,
            light  TYPE iconname,
            name   TYPE char10,
            score  TYPE p LENGTH 2 DECIMALS 1,
            remark TYPE c LENGTH 20,
            color1 TYPE c LENGTH 4,
            color2 TYPE lvc_t_scol,
          END OF ty_data.
    
    DATA gt_data TYPE TABLE OF ty_data.
    DATA gw_data TYPE ty_data.
    
    ** Layout  变量定义
    DATA gs_layout   TYPE lvc_s_layo.
    
    ** 颜色字段变量定义
    DATA gs_color TYPE lvc_S_scol.
    
    ** Fieldcat 变量定义
    DATA:gt_fieldcat TYPE lvc_t_fcat,
         gs_fieldcat LIKE LINE OF gt_fieldcat.
    
    ** FieldCat的宏
    DATA gv_pos TYPE i.
    
    DEFINE %%add_fieldcat.
      gv_pos = gv_pos + 1.
      gs_fieldcat-col_pos = gv_pos.
      gs_fieldcat-fieldname = &1.
      gs_fieldcat-scrtext_m = &2.
    
      CASE &1.
        WHEN 'SEL'.
          gs_fieldcat-checkbox = 'X'.  "当做选择框显示
          gs_fieldcat-edit     = 'X' . "该字段可以编辑
        WHEN 'SCORE'.
          gs_fieldcat-emphasize = 'C6'."设置列颜色
      ENDCASE.
    
      APPEND gs_fieldcat TO gt_fieldcat.CLEAR gs_fieldcat.
    END-OF-DEFINITION.
    
    START-OF-SELECTION.
    
      PERFORM get_data.
      PERFORM dis_falv.
    
    FORM get_data.
      gt_data[] = VALUE #(
                         ( sel = '' light = '' name = 'TOM'    score = '58')
                         ( sel = '' light = '' name = 'JEERY'  score = '98')
                         ( sel = '' light = '' name = 'MASTER' score = '68')
                       ).
    
      LOOP AT gt_data INTO gw_data.
        IF gw_data-score < 60.
          gw_data-light =  icon_red_light.
          gw_data-remark = '不及格'.
    
          gw_data-color1 = 'C6'.
    
        ELSEIF gw_data-score >= 60 AND  gw_data-score < 85.
          gw_data-light =  ICON_yellow_LIGHT.
          gw_data-remark = '良好'.
        ELSEIF gw_data-score >= 85.
          gw_data-light =  ICON_green_LIGHT.
          gw_data-remark = '优秀'.
    
          gs_color-fname = 'SEL'. "单元格颜色设置-选择SEL增加颜色
          gs_color-color-col = 6. "单元格颜色设置-底色为红色
          gs_color-color-int = 1. "单元格颜色设置-加重
          gs_color-color-inv = 0. "单元格颜色设置-不反色
          gs_color-NOKEYCOL = '1'."覆盖单元格原色
          APPEND gs_color TO gw_data-color2.
          CLEAR: gs_color.
        ENDIF.
        MODIFY gt_data FROM gw_data.
      ENDLOOP.
    ENDFORM.
    
    FORM dis_falv.
    ** Fieldcat字段映射处理
      %%add_fieldcat:'SEL'      '选择',  "( 前面字段值不可变 后面字段描述可变 每一行都是)
                     'LIGHT'    '状态',
                     'REMARK'   '备注',
                     'NAME'     '姓名',
                     'SCORE'    '分数'.
    
    ** Layout布局处理
      gs_layout-cwidth_opt = 'X'.     "自动优化列宽 (可以使用**在一行代码面前注释掉 看看ALV会有什么效果)
      gs_layout-zebra = 'X'.          "斑马纹输出
      gs_layout-info_fname = 'COLOR1'."行颜色参数
      gs_layout-ctab_fname = 'COLOR2'."单元格颜色参数
    
    ** 调用FunctionALV需要传入的参数:展示数据,FieldCat,Layout,Status
      CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY_LVC'
        EXPORTING
          i_callback_program       = sy-repid
          i_callback_pf_status_set = 'FRM_SET_STATUS'
          is_layout_lvc            = gs_layout
          it_fieldcat_lvc          = gt_fieldcat
        TABLES
          t_outtab                 = gt_data[]
        EXCEPTIONS
          program_error            = 1
          OTHERS                   = 2.
    ENDFORM.
    
    FORM frm_set_status USING p_extab TYPE slis_t_extab.
      SET PF-STATUS 'STANDARD'.
    ENDFORM.

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

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

相关文章

书生·浦语大模型图文对话Demo搭建

前言 本节我们先来搭建几个Demo来感受一下书生浦语大模型 InternLM-Chat-7B 智能对话 Demo 我们将使用 InternStudio 中的 A100(1/4) 机器和 InternLM-Chat-7B 模型部署一个智能对话 Demo 环境准备 在 InternStudio 平台中选择 A100(1/4) 的配置&#xff0c;如下图所示镜像…

蓝桥杯第十四届电子类单片机组决赛程序设计

目录 前言 单片机资源数据包_2023&#xff08;点击下载&#xff09; 一、第十四届比赛题目 1.比赛题目 2.题目解读 1&#xff09;任务要求 2&#xff09;注意事项 二、显示功能实现 1.关于高位为0时数码管熄灭功能的实现 2.关于显示小数位的处理 3.关于“校准值”的…

MySQL的21个SQL经验

1. 写完SQL先explain查看执行计划(SQL性能优化) 日常开发写SQL的时候,尽量养成这个好习惯呀:写完SQL后,用explain分析一下,尤其注意走不走索引。 explain select userid,name,age from user where userid =10086 or age =18;2、操作delete或者update语句,加个limit(S…

基础!!!吴恩达deeplearning.ai:神经网络中使用softmax

以下内容有任何不理解可以翻看我之前的博客哦&#xff1a;吴恩达deeplearning.ai 文章目录 softmax作为输出层的神经网络Tensorflow的实现softmax的改进实现数值舍入误差(Numerical Roundoff Errors)sigmoid修改修改softmax 在上一篇博客中我们了解了有关softmax的原理相关内容…

基于华为atlas的分类模型实战

分类模型选用基于imagenet训练的MobileNetV3模型&#xff0c;分类类别为1000类。 pytorch模型导出为onnx&#xff1a; 修改mobilenetv3.py中网络结构&#xff0c;模型选用MobileNetV3_Small模型&#xff0c;网络输出节点增加softmax层&#xff0c;将原始的return self.linear4…

HarmonyOS—使用数据模型和连接器

Serverless低代码开发平台是一个可视化的平台&#xff0c; 打通了HarmonyOS云侧与端侧能力&#xff0c;能够轻松实现HMS Core、AGC Serverless能力调用。其中&#xff0c;数据模型和连接器是两大主要元素。开发者在使用DevEco Studio的低代码功能进行开发时&#xff0c;可以使用…

Unity开发一个FPS游戏

在之前的文章Unity 3D Input System的使用-CSDN博客中,我介绍了如何用Input System来实现一个FPS游戏的移动控制,这里将进一步完善这个游戏。 以下是游戏的演示效果: fps_demo 添加武器模型 首先是增加主角玩家的武器,我们可以在网上搜索到很多免费的3D资源,例如在以下网…

Vue概念详解【目录】

本专栏简介&#xff1a; 这个专栏是关于 Vue2 和 Vue3 各种概念的大集合&#xff01;它深入挖掘原理&#xff0c;分析各种优势和劣势&#xff0c;适配各种应用场景&#xff0c;部分内容还列出了代码示例&#xff0c;以清晰地讲述原理。在这里&#xff0c;你将全面了解 Vue2 和…

在Web UI上提交Flink作业

1&#xff09;任务打包完成后&#xff0c;我们打开Flink的WEB UI页面&#xff0c;在右侧导航栏点击“Submit New Job”&#xff0c;然后点击按钮“ Add New”&#xff0c;选择要上传运行的JAR包 JAR包上传完成&#xff0c;如下图所示 &#xff08;2&#xff09;点击该JAR包&…

10 Redis之SB整合Redis

7. SB整合Redis Spring Boot 中可以直接使用 Jedis 实现对 Redis 的操作&#xff0c;但一般不这样用&#xff0c;而是使用 Redis操作模板 RedisTemplate 类的实例来操作 Redis。 RedisTemplate 类是一个对 Redis 进行操作的模板类。该模板类中具有很多方法&#xff0c;这些方…

图论基础(一)

一、图论 图论是数学的一个分支&#xff0c;它以图为研究对象。图论中的图是若干给定的点&#xff08;顶点&#xff09;以及连接两点的线&#xff08;边&#xff09;构成的图像&#xff0c;这种图形通常用来描述某些事物之间的某种特定关系&#xff0c;用点代表事物&#xff0c…

MFC web文件 CHttpFile的使用初探

MFC CHttpFile的使用 两种方式&#xff0c;第一种OpenURL&#xff0c;第二种SendRequest&#xff0c;以前捣鼓过&#xff0c;今天再次整结果发现各种踩坑&#xff0c;好记性不如烂笔头&#xff0c;记录下来。 OpenURL 这种方式简单粗暴&#xff0c;用着舒服。 try {//OpenU…

JavaScript最新实现城市级联操作,json格式的数据

前置知识&#xff1a; <button onclick"doSelect()">操作下拉列表</button><hr>学历&#xff1a;<select id"degree"><option value"0">--请选择学历--</option><option value"1">专科<…

【玩转pandas系列】pandas数据结构—DataFrame

文章目录 前言一、DataFrame创建1.1 字典创建1.2 NumPy二维数组创建 二、DataFrame切片2.1 行切片2.2 列切片2.3 行列切片 三、DataFrame运算3.1 DataFrame和标量的运算3.2 DataFrame之间的运算3.3 Series和DataFrame之间的运算 四、DataFrame多层次索引4.1 多层次索引构造1.隐…

安全防御-第六次

内容安全 攻击可能只是一个点&#xff0c;防御需要全方面进行 DFI和DPI技术--- 深度检测技术 DPI --- 深度包检测技术--- 主要针对完整的数据包&#xff08;数据包分片&#xff0c;分段需要重组&#xff09;&#xff0c;之后对数据包的内容进行识别。&#xff08;应用层&…

音频混音算法的实现

最近项目有用到混音算法&#xff0c;这里用比较常见的一种&#xff0c;就是简单的加和之后做一下归一化。 是参考这个博主实现的&#xff1a; 音频混音的算法实现 下面直接贴代码&#xff1a; #include <stdio.h> #include <stdlib.h> #include <math.h&…

Mac 配置Clion Qt 调试显示变量值

背景 使用Clion开发Qt程序&#xff0c;在进行调试时&#xff0c;会看不到Qt类的变量值&#xff0c;只有指针形式&#xff0c;对于调试很不方便。 环境&#xff1a; Macbook ProCPU&#xff1a;M3Qt 5.15.13CLion 2023.3.4 解决方案 为了让Clion能显示Qt类的值&#xff0c;…

新加坡服务器托管:开启全球化发展之门

新加坡作为一个小国家&#xff0c;却在全球范围内享有极高的声誉。新加坡作为亚洲的科技中心&#xff0c;拥有先进的通信基础设施和成熟的机房托管市场。除了其独特的地理位置和发达的经济体系外&#xff0c;新加坡还以其开放的商业环境和便利的托管服务吸引着越来越多的国际公…

react 路由的基本原理及实现

1. react 路由原理 不同路径渲染不同的组件 有两种实现方式 ● HasRouter 利用hash实现路由切换 ● BrowserRouter 实现h5 API实现路由切换 1. 1 HasRouter 利用hash 实现路由切换 1.2 BrowserRouter 利用h5 Api实现路由的切换 1.2.1 history HTML5规范给我们提供了一个…

【Go 快速入门】协程 | 通道 | select 多路复用 | sync 包

文章目录 前言协程goroutine 调度使用 goroutine 通道无缓冲通道有缓冲通道单向通道 select 多路复用syncsync.WaitGroupsync.Mutexsync.RWMutexsync.Oncesync.Map 项目代码地址&#xff1a;05-GoroutineChannelSync 前言 Go 1.22 版本于不久前推出&#xff0c;更新的新特性可…