公众号:SAP Technical
本文作者:matinal
 

前言部分

大家可以关注我的公众号,公众号里的排版更好,阅读更舒适。

正文部分

对于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 动态设置单元格可否编辑的更多相关文章

  1. cxGrid动态设置单元格对齐方式

    cxGrid动态设置单元格对齐方式 2013年10月08日 00:52:49 踏雪无痕 阅读数:2150更多 个人分类: cxGrid   判断: //uses cxTextEditcxGrid1DB ...

  2. excel设置单元格不可编辑

    把允许编辑的单元格选定,右键-设置单元格格式-保护,把锁定前的对钩去掉.再点工具-保护工作表.这样就可以只让你刚才设定的单元格允许编辑,其他不允许.

  3. eas之设置单元格可编辑

    for(int i=0;i<kdtEntrys.getRowCount();i++){    kdtEntrys.getRow(i).getCell("orgUnit").g ...

  4. 【ABAP系列】ABAP CL_ABAP_CONV_IN_CE

    公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[ABAP系列]ABAP CL_ABAP_CON ...

  5. layui 动态表格设置单元格样式

    col.push({ field: , templet: function (d) { ") { return '<span style="color:white;backg ...

  6. 用NPOI创建Excel、合并单元格、设置单元格样式、边框的方法

    本篇文章小编为大家介绍,用NPOI创建Excel.合并单元格.设置单元格样式.边框的方法.需要的朋友参考下 今天在做项目中,遇到使用代码生成具有一定样式的Excel,找了很多资料,最后终于解决了,Ex ...

  7. C#:org.in2bits.MyXls 文本格式日期 转换,以及设置单元格格式,保留两位小数点

    org.in2bits.MyXls  Excel导入日期格式的处理 表格内容为 2014-7-22 ,导入后显示为 41842 等于一个数值,根本不是日期,后来百度了一下,发现要做如下处理: stri ...

  8. firefox ie chrome 设置单元格宽度 td width 有bug,不能正常工作。以下方式可以解决

    1. firefox ie chrome 设置单元格宽度 td width 有bug,不能正常工作. 如果是上面一行 和下面一行是分别属于两个table,但是他们的列需要对齐,也就是说分开画的,然后设 ...

  9. UITableView设置单元格选中后只显示一个打勾的三种简单方法(仅供参考)

    1.第一种方法:先定位到最后一行,若选中最后一行直接退出,否则用递归改变上次选中的状态,重新设置本次选中的状态. - (UITableViewCell*)tableView:(UITableView* ...

随机推荐

  1. loj2589 「NOIP2009」Hankson 的趣味题

    对于质因数分解理解还不到位. 此题可知$lcm$是$x$的倍数,$x$是$lcm$的约数,只要在$lcm$的分解质因数里对每一个质因子讨论种数即可. 具体来说,对于$lcm$的一个质因子$p$,讨论$ ...

  2. idea中使用JRebel插件

    首先 等待下载 点击Restart idea (重启idea) 然后等待idea 进行激活 记得勾选下面的那个复选框 激活url:http://139.199.89.239:1008/88414687 ...

  3. Robot Framework中ride.py打不开的解决方法

    1.首先查看wxPython版本是否跟python的版本一致,一般都使用wxPython2.8-win64-unicode-2.8.12.1-py27.exe或者wxPython2.8-win32-u ...

  4. JavaScript 算术运算符

    处理数值的典型情景是数值计算. ㈠JavaScript 算术运算符 算术运算符对数值(文字或变量)执行算术运算. ㈡算术运算符 典型的算术运算会操作两个数值. ⑴这两个数可以是字面量: var x = ...

  5. 关系型数据库(四),引擎MyISAM和InnoDB

    目录 1.MyISAM和InnoDB关于锁方面的区别是什么 2.MYSQL的两个常用存储引擎 3.MyISAM应用场景 4.InnoDB适合场景 四.引擎MyISAM和InnoDB 1.MyISAM和 ...

  6. sh_01_列表基本使用

    sh_01_列表基本使用 name_list = ["zhangsan", "lisi", "wangwu"] # 1. 取值和取索引 # ...

  7. httpd如何卸载以及安装

    卸载 首先,要确认下是否有安装过,或者是系统自带了httpd服务,通过以下命令: # rpm -qa | grep httpd 或者: # yum list | grep httpd 我已经安装过一次 ...

  8. 编译一个需要用特定key前面的应用程序

    LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) # Build all java files in the java subdirectory L ...

  9. MQTT服务器特性支持详情

    特别提示:本人博客部分有参考网络其他博客,但均是本人亲手编写过并验证通过.如发现博客有错误,请及时提出以免误导其他人,谢谢!欢迎转载,但记得标明文章出处:http://www.cnblogs.com/ ...

  10. oj.1677矩形嵌套,动态规划 ,贪心

    #include<iostream> #include<algorithm> #include<cstring> using namespace std; stru ...