当前位置: 首页 > news >正文

ABAP ALV和OOALV设置单元格颜色,编辑

首先给大家分享一篇博客:
REUSE_ALV_GRID_DISPLAY_LVC-可编辑单元格

文章目录

    • 单元格编辑
    • 单元格/行-颜色
    • 效果展示

**需求:**我是想实现某个单元格可根据数据来判断是否是可以进行编辑的或要添加一个什么样的颜色.

我们需要用到下面的三个结构
ALV 控制: 单元格的类型表:LVC_T_STYL
ALV 控制: 字段名称 + 类型:LVC_S_STYL
ALV 控制: 单元格颜色表:LVC_T_SCOL

单元格编辑

1.下面的zstyle这个字段就是用来编辑这个单元格是否需要编辑的

"输出结构
TYPES: BEGIN OF ty_output.INCLUDE STRUCTURE ztsd0001. "内表
TYPES  zstyle     TYPE lvc_t_styl. "编辑状态字段
TYPES: END OF ty_output.DATA: gt_output TYPE TABLE OF ty_output. "输出内表
DATA: gs_output TYPE ty_output. "输出工作区

2.在layout中设置上面的那个字段.

 gs_layout-stylefname = 'ZSTYLE'. "用于改变字段属性

3.在FIELDCAT中设置你要想实现那一列的效果,要把它设置成可编辑的,对是设置整列可编辑的(后续要经过判断在设置具体到那个单元格可编辑)

    IF &1 EQ 'aufnr2 '.  GS_FIELDCAT-EDIT = 'X'.ENDIF.

4.最后就是在展示ALV的前一步进行实现具体单元格可编辑的效果.

DATA:lt_celltab TYPE lvc_t_styl,ls_celltab TYPE lvc_s_styl."这个字段要和你在FIELDCAT 中设置那个列可编辑的字段,要对应ls_celltab-fieldname = 'AUFNR2'.  "下面这两行是常量, 你可以选择给他固定值,或者直接调用cl_gui_alv_grid中的常量ls_celltab-style = cl_gui_alv_grid=>mc_style_disabled. "不可编辑  初始值 '00100000'
"  ls_celltab-style = cl_gui_alv_grid=>MC_STYLE_ENABLED.    "可编辑  初始值 '00080000'INSERT ls_celltab INTO TABLE lt_celltab. INSERT LINES OF lt_celltab INTO TABLE gs_output-zstyle.   CLEAR:ls_celltab,lt_celltab ."判断该内表汇总字段aufnr2为不为初始化的 实现不可修改
"(也就是说这个字段有值的就不要进行可编辑,没有的可以进行编辑)LOOP AT gt_output INTO DATA(ls_out).IF ls_out-aufnr2 IS not INITIAL.MODIFY gt_output INDEX sy-tabix FROM gs_output TRANSPORTING zstyle.ENDIF.ENDLOOP.CLEAR:ls_out, gs_output.

到这里就完成了

单元格/行-颜色

1.下面的CLR行颜色代码的字段,cellcolor 用于单元格颜色.

"输出结构
TYPES: BEGIN OF ty_output.INCLUDE STRUCTURE ztsd0001. "内表
TYPES  cellcolor TYPE lvc_t_scol. "单元格颜色
TYPES  clr TYPE char04. "行颜色代码的字段
TYPES: END OF ty_output.DATA: gt_output TYPE TABLE OF ty_output. "输出内表
DATA: gs_output TYPE ty_output. "输出工作区

2.需要在layout总进行设置

gs_layout-info_fname = 'CLR'.  "行颜色代码的字段
gs_layout-ctab_fname = 'CELLCOLOR'. "单元格颜色内表字段

3.最后就是在展示ALV的前一步进行实现具体单元格/行的效果.

LOOP AT gt_output INTO gs_output.
"设置某一行为红色IF gs_output-aufnr = ''.gs_output-clr = 'C610'.MODIFY gt_output FROM gs_output TRANSPORTING clr.CLEAR gs_output.ENDIF."设置某一个单元格为黄色    IF gs_output-aufnr <> ''.lw_cellcolor-fname = 'AUFNR'."订单编号为‘’的行的‘AUFNR’字段颜色为 黄色lw_cellcolor-color-col = 3.lw_cellcolor-color-int = 1.lw_cellcolor-color-inv = 0.APPEND lw_cellcolor TO gs_output-cellcolor.MODIFY gt_output FROM gs_output.CLEAR lw_cellcolor.ENDIF.CLEAR gs_output.ENDLOOP.

效果展示

单元格编辑效果
在这里插入图片描述

颜色添加效果
在这里插入图片描述
叠加效果
在这里插入图片描述

http://www.lryc.cn/news/31636.html

相关文章:

  • Java知识复习(十三)数据库和SQL
  • JVM虚拟机种类
  • Linux操作系统学习(线程基础)
  • YOLOv5源码逐行超详细注释与解读(1)——项目目录结构解析
  • 前端开发总结的一些技巧和实用方法(2)
  • Docker搭建jenkins(Vue自动化部署)
  • ADCS攻击之CVE-2022–26923
  • AO3401-ASEMI低压P沟道MOS管AO3401
  • 【STM32MP157应用编程】3.控制PWM
  • 基于Python的selenium
  • Go底层原理:一起来唠唠GMP调度(一)
  • 前端——1.相关概念
  • java四种线程池(基本使用)
  • float的表示范围为什么比long大
  • Flutter Android 打包保姆式全流程 2023 版
  • C++笔记之lambda表达式
  • flink大数据处理流式计算详解
  • Java面试题(二十三)DCL单例
  • UML-类图
  • PostgreSQL 数据库和 pgAdmin 4
  • quarkus 搭建与基础开发环境配置总结
  • 扩散模型DDPM开源代码的剖析【对应公式与作者给的开源项目,diffusion model】
  • C语言 学生记录管理系统
  • 【独家】华为OD机试 C 语言解题 - 交换字符
  • 网络安全平台测试赛 easyphp(phar脏数据处理)
  • 【python】XML格式文件读写详解
  • 理解js的精度问题
  • 蓝桥杯 时间显示
  • qt中设置菜单高度
  • 测开:前端基础-css页面布局-定位