ABAP ALV和OOALV设置单元格颜色,编辑
创始人
2024-05-29 14:12:24
0

首先给大家分享一篇博客:
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.

效果展示

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

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

相关内容

热门资讯

安卓系统怎么会卡,安卓系统卡顿... 手机用久了,是不是发现安卓系统越来越卡?这可真是让人头疼的问题啊!今天,就让我来带你一探究竟,揭开安...
安卓系统怎么打开deb文件,安... 你是不是也遇到了这样一个问题:手机里下载了一个超酷的安卓应用,结果发现是个deb文件,这可怎么办呢?...
彻底脱离安卓系统的软件,纯国产... 你有没有想过,手机里的世界其实可以不完全是安卓的天下?想象如果你能彻底摆脱安卓系统的束缚,那会是怎样...
安卓系统软件隔离独立,构建安全... 安卓系统的软件隔离与独立:探索安全的数字世界在数字化时代,智能手机已经成为我们生活中不可或缺的一部分...
标致301安卓系统下载,下载与... 你有没有想过,你的标致301汽车竟然也能升级到安卓系统?没错,就是那个我们日常使用的安卓系统!今天,...
安卓系统推荐平板吗华为,安卓系... 你有没有想过,为什么安卓系统那么受欢迎,而华为的平板又那么火呢?今天,就让我带你一探究竟,看看安卓系...
华为买的安卓系统么,引领安卓生... 你有没有想过,华为的手机里到底是不是安卓系统呢?这个问题,估计不少手机迷都好奇过吧!今天,就让我带你...
安卓用什么手机系统最好,安卓系... 你有没有想过,安卓手机的世界里,哪个系统才是最棒的?是不是每次打开手机,都感觉有点乱糟糟的,不知道该...
yun系统如何刷安卓版,轻松实... 你有没有想过,你的安卓手机其实可以变得更加智能和强大呢?没错,就是通过刷入yun系统!听起来是不是有...
mac系统模拟安卓手机系统软件... 亲爱的读者们,你是否曾想过在Mac系统上也能体验到安卓手机系统的乐趣呢?没错,今天就要来跟你聊聊这个...
鸿蒙系统对比安卓的优点 你知道吗?最近手机圈里可是热闹非凡呢!各大品牌纷纷推出自家的新款手机,而其中最引人注目的,莫过于华为...
固态硬盘修复教程安卓系统,安卓... 你的安卓手机固态硬盘突然罢工了?别慌张,今天就来教你几招,让你的硬盘重焕生机!一、检查连接线是否松动...
手机装虚拟安卓系统教程,手机安... 你有没有想过,你的手机可以变成一个多才多艺的小戏精,既能装Windows,又能玩安卓?没错,这就是今...
安卓系统平板电脑屏幕暗,打造舒... 你是不是也遇到了这样的烦恼?你的安卓系统平板电脑屏幕突然暗了下来,亮度调节按钮也似乎失灵了。别急,让...
安卓高清系统推荐电脑版,打造极... 你有没有想过,手机上的安卓高清系统竟然也能搬到电脑上?没错,就是那种流畅、美观,还能让你在电脑上也能...
自己刷安卓盒子系统,功能、操作... 你有没有想过,家里的安卓盒子系统是不是该来个焕然一新的大变身呢?别急,让我带你一步步走进自己刷安卓盒...
安卓系统的空格怎么输入,探索安... 你是不是也和我一样,在使用安卓手机的时候,有时候会遇到一个让人头疼的问题——怎么输入空格呢?别急,今...
安卓系统如何删除僵尸粉 你是不是也遇到了这样的烦恼?手机里安卓系统的社交软件里,突然冒出了好多僵尸粉,这些家伙不仅不互动,还...
安卓平板电脑能刷系统,解锁无限... 你有没有想过,你的安卓平板电脑是不是也能来个“变身大法”,换换新系统呢?没错,今天就要来聊聊这个话题...
安卓双系统机器人,探索安卓双系... 你知道吗?在科技飞速发展的今天,手机已经不仅仅是一个通讯工具了,它还能变成一个多才多艺的小助手。最近...