【ABAP系列】SAP ABAP OOALV 动态设置单元格可否编辑

前言部分
大家可以关注我的公众号,公众号里的排版更好,阅读更舒适。
正文部分
对于OOALV有些列允许客户输入,但是当用户输入之后,或者ALV展示之前要判断是否满足一定的条件,如果满足,那么就要单独设置某一行或者几行的这个字段不可以编辑或可以编辑,效果如果所示:

实现步骤
1.在展示的内表或内表类型中添加字段
CELLTAB TYPE LVC_T_STYL.
例如:
TYPES : BEGIN OF T_SC,
BUKRS LIKE ANLZ-BUKRS,
ANLN1 LIKE ANLA-ANLN1, "模具编号
ANLN2 LIKE ANLA-ANLN2,
CELLTAB TYPE LVC_T_STYL,
END OF T_SC.
2.在layout设置中添加代码
XXX_LAYOUT-STYLEFNAME =’CELLTAB’.
3.实现控制编辑属性的代码
FORM FRM_INIT_STYLE_TAB .
DATA: LT_SFLIGHT TYPE TABLE OF SFLIGHT WITH HEADER LINE,
LT_CELLTAB TYPE LVC_T_STYL,
LS_CELLTAB TYPE LVC_S_STYL,
L_INDEX TYPE I.
LOOP AT IT_TAB INTO WA_TAB.
CLEAR : WA_TAB-CELLTAB. "不为空会报错
IF WA_TAB-CELLTAB IS INITIAL.
L_INDEX = SY-TABIX.
REFRESH LT_CELLTAB.
LS_CELLTAB-FIELDNAME = 'ZCWCZD'. IF WA_TAB-ZCWCZI IS NOT INITIAL AND
WA_TAB-ZCXCZI IS INITIAL.
LS_CELLTAB-STYLE = CL_GUI_ALV_GRID=>MC_STYLE_DISABLED.
ELSE.
LS_CELLTAB-STYLE = CL_GUI_ALV_GRID=>MC_STYLE_ENABLED.
ENDIF.
INSERT LS_CELLTAB INTO TABLE LT_CELLTAB. INSERT LINES OF LT_CELLTAB INTO TABLE WA_TAB-CELLTAB.
MODIFY IT_TAB FROM WA_TAB INDEX L_INDEX.
ENDIF.
ENDLOOP.
ENDFORM. " FRM_INIT_STYLE_TAB
4.在需要重新显示的地方调用代码
在每一个你需要重新判断单元格是否可以编辑的地方调用,如:
MODULE DISPLAY_FINANCIAL_DISPOSAL OUTPUT.
"设置可编辑字段
PERFORM FRM_INIT_STYLE_TAB.
"展示avl
PERFORM DISPLAY_FINANCIAL_DISPOSAL.
ENDMODULE. " DISPLAY_FINANCIAL_DISPOSAL OUTPUT
5.按实际情况配合修改数据事件使用
【ABAP系列】SAP ABAP OOALV 动态设置单元格可否编辑的更多相关文章
- cxGrid动态设置单元格对齐方式
cxGrid动态设置单元格对齐方式 2013年10月08日 00:52:49 踏雪无痕 阅读数:2150更多 个人分类: cxGrid 判断: //uses cxTextEditcxGrid1DB ...
- excel设置单元格不可编辑
把允许编辑的单元格选定,右键-设置单元格格式-保护,把锁定前的对钩去掉.再点工具-保护工作表.这样就可以只让你刚才设定的单元格允许编辑,其他不允许.
- eas之设置单元格可编辑
for(int i=0;i<kdtEntrys.getRowCount();i++){ kdtEntrys.getRow(i).getCell("orgUnit").g ...
- 【ABAP系列】ABAP CL_ABAP_CONV_IN_CE
公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[ABAP系列]ABAP CL_ABAP_CON ...
- layui 动态表格设置单元格样式
col.push({ field: , templet: function (d) { ") { return '<span style="color:white;backg ...
- 用NPOI创建Excel、合并单元格、设置单元格样式、边框的方法
本篇文章小编为大家介绍,用NPOI创建Excel.合并单元格.设置单元格样式.边框的方法.需要的朋友参考下 今天在做项目中,遇到使用代码生成具有一定样式的Excel,找了很多资料,最后终于解决了,Ex ...
- C#:org.in2bits.MyXls 文本格式日期 转换,以及设置单元格格式,保留两位小数点
org.in2bits.MyXls Excel导入日期格式的处理 表格内容为 2014-7-22 ,导入后显示为 41842 等于一个数值,根本不是日期,后来百度了一下,发现要做如下处理: stri ...
- firefox ie chrome 设置单元格宽度 td width 有bug,不能正常工作。以下方式可以解决
1. firefox ie chrome 设置单元格宽度 td width 有bug,不能正常工作. 如果是上面一行 和下面一行是分别属于两个table,但是他们的列需要对齐,也就是说分开画的,然后设 ...
- UITableView设置单元格选中后只显示一个打勾的三种简单方法(仅供参考)
1.第一种方法:先定位到最后一行,若选中最后一行直接退出,否则用递归改变上次选中的状态,重新设置本次选中的状态. - (UITableViewCell*)tableView:(UITableView* ...
随机推荐
- monkey命令大全
一.认识monkey Monkey 就是SDK中附带的一个工具.Monkey是Android中的一个命令行工具,可以运行在模拟器里或实际设备中: 它向系统发送伪随机的用户事件流(如按键输入.触摸屏输入 ...
- Web前端经典面试试题(一)
本篇收录了一些面试中经常会遇到的经典面试题,并且都给出了我在网上收集的答案.眼看新的一年马上就要开始了,相信很多的前端开发者会有一些跳槽的悸动,通过对本篇知识的整理以及经验的总结,希望能帮到更多的前端 ...
- DevExpress ASP.NET Core v19.1版本亮点:Visual Studio集成
行业领先的.NET界面控件DevExpress 发布了v19.1版本,本文将以系列文章的方式为大家介绍DevExpress ASP.NET Core Controls v19.1中新增的一些控件及增强 ...
- 使用ajax向服务端发送Form中的数据
前端代码: <form action="" id="myFormUpdate"> <p>宠物名称: <input type=&qu ...
- dlerror和dlclose用法
dlclose() 1. 包含头文件 #include<dlfcn.h> 2. 函数定义 int dlclose(void *handle) dlclose用于关闭指定句柄的动态链接库, ...
- Codeforces Round #395 Div.1 C pacifist【JZOJ5449】Pacifist
题目 papyrus 喜欢谜题... 来解一道如何? 在你面前有一个被加密了的数组,其原数组是一个等差序列,你面前的则是将原数组中的所有数字都对m 取模再打乱后而得到的新数组 papyrus 给你出的 ...
- linux运维、架构之路-K8s应用
一.Deployment k8s通过各种Controller管理Pod的生命周期,为了满足不同的业务场景,k8s提供了Deployment.ReplicaSet.DaemonSet.S ...
- C++读入神器——文操快读(oj也可以用)
当某天,本蒟蒻沉迷于卡常的时候: 我-- 突然,YYKdalao说:用文操快读啊! 然后 喔-目瞪口呆 不多说,上源码: 本来用的读入方式: inline void Read( int &x ...
- Linux 压缩方式测试
测试方法 使用 python 的 Faker 第三方包伪造数据,写入文件 test.txt 复制 test.txt 内容为 test2.txt ,将 test2.txt 的内容重定向到 test.tx ...
- 半径R覆盖最多点
struct point { double x, y; }; point p[N]; struct alpha { double v; bool flag; bool friend operator ...