代码如下:具体说明参见红色说明(本例子是从订单明细提取两个字段的数据到内表)

REPORT ZALV_EDIT.
TYPE-POOLS: SLIS.
*- Fieldcatalog
DATA: IT_FIELDCAT TYPE LVC_T_FCAT.
DATA: X_FIELDCAT TYPE LVC_S_FCAT.
DATA: X_LAYOUT TYPE LVC_S_LAYO.

"第1步:用操作具体单元的是否可编辑的内表和工作区

DATA: LS_EDIT TYPE LVC_S_STYL,
      LT_EDIT TYPE LVC_T_STYL.
"第2步:在内表定义添加字段,用于控制具体行的具体单元是否可编辑
DATA: BEGIN OF IT_VBAP OCCURS 0,
  VBELN LIKE VBAP-VBELN,
  POSNR LIKE VBAP-POSNR,
  STYLE TYPE LVC_T_STYL, "FOR DISABLE
END OF IT_VBAP.
DATA: LS_OUTTAB LIKE LINE OF IT_VBAP.
SELECT VBELN  POSNR
  UP TO 100 ROWS
  INTO CORRESPONDING FIELDS OF TABLE IT_VBAP
FROM VBAP.

DATA:L_POS TYPE I VALUE 1.
CLEAR: L_POS.
L_POS = L_POS + 1.
X_FIELDCAT-SELTEXT = 'VBELN'.
X_FIELDCAT-FIELDNAME = 'VBELN'.
X_FIELDCAT-TABNAME = 'ITAB'.
X_FIELDCAT-COL_POS = L_POS.
X_FIELDCAT-EDIT = 'X'.
X_FIELDCAT-OUTPUTLEN = '10'.
x_fieldcat-ref_field = 'VBELN'.
x_fieldcat-ref_table = 'VBAK'.
APPEND X_FIELDCAT TO IT_FIELDCAT.

CLEAR X_FIELDCAT.
L_POS = L_POS + 1.
X_FIELDCAT-SELTEXT = 'POSNR'.
X_FIELDCAT-FIELDNAME = 'POSNR'.
X_FIELDCAT-TABNAME = 'ITAB'.
X_FIELDCAT-COL_POS = L_POS.
X_FIELDCAT-EDIT = 'X'.
X_FIELDCAT-OUTPUTLEN = '5'.
APPEND X_FIELDCAT TO IT_FIELDCAT.
CLEAR X_FIELDCAT.
L_POS = L_POS + 1.

"第3步:设置第六行两个单元都不能输入
SY-TABIX = 6.
LS_EDIT-FIELDNAME = 'VBELN'.
LS_EDIT-STYLE = CL_GUI_ALV_GRID=>MC_STYLE_DISABLED.
LS_EDIT-STYLE2 = SPACE.
LS_EDIT-STYLE3 = SPACE.
LS_EDIT-STYLE4 = SPACE.
LS_EDIT-MAXLEN = 10.
INSERT LS_EDIT INTO TABLE LT_EDIT.

LS_EDIT-FIELDNAME = 'POSNR'.
LS_EDIT-STYLE = CL_GUI_ALV_GRID=>MC_STYLE_DISABLED.
LS_EDIT-STYLE2 = SPACE.
LS_EDIT-STYLE3 = SPACE.
LS_EDIT-STYLE4 = SPACE.
LS_EDIT-MAXLEN = 6.
INSERT LS_EDIT INTO TABLE LT_EDIT.

INSERT LINES OF LT_EDIT INTO TABLE LS_OUTTAB-STYLE.

"第4步:将控制数据写到内表

MODIFY IT_VBAP INDEX SY-TABIX FROM LS_OUTTAB TRANSPORTING STYLE .

"设置第10行只有项目不能输入

clear LS_OUTTAB.
refresh LT_EDIT.
LS_EDIT-FIELDNAME = 'POSNR'.
LS_EDIT-STYLE = CL_GUI_ALV_GRID=>MC_STYLE_DISABLED.
LS_EDIT-STYLE2 = SPACE.
LS_EDIT-STYLE3 = SPACE.
LS_EDIT-STYLE4 = SPACE.
LS_EDIT-MAXLEN = 6.
INSERT LS_EDIT INTO TABLE LT_EDIT.

INSERT LINES OF LT_EDIT INTO TABLE LS_OUTTAB-STYLE.

SY-TABIX = 10.

"将控制数据写到内表

MODIFY IT_VBAP INDEX SY-TABIX FROM LS_OUTTAB TRANSPORTING STYLE .

"第5步:设置控制字段
X_LAYOUT-STYLEFNAME = 'STYLE'.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY_LVC'
  EXPORTING
    I_CALLBACK_PROGRAM = SY-REPID
    IS_LAYOUT_LVC      = X_LAYOUT
    IT_FIELDCAT_LVC    = IT_FIELDCAT
  TABLES
    T_OUTTAB           = IT_VBAP[]
  EXCEPTIONS
    PROGRAM_ERROR      = 1
    OTHERS             = 2.
IF SY-SUBRC NE 0.
  MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
  WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.

source url:https://www.sdn.sap.com/irj/sdn/wiki?path=/display/Snippets/Disable+or+Enable+Input+fields+Conditionally+In+ALV

转载于:https://www.cnblogs.com/duadu/archive/2008/08/21/6166545.html

如何设置REUSE_ALV_GRID_DISPLAY'的单个单元格的是否可以输入相关推荐

  1. 如何设置'REUSE_ALV_GRID_DISPLAY'的单个单元格的颜色

    在ALV报表设计有时候需要根据一定条件将特定的单元显示成特定的颜色,具体实现步骤如下: 1. 在需要显示的内表中添加新的字段,字段类型为lvc_t_scol 2. 根据条件设置颜色数据: 3. 设置l ...

  2. EasyExcel设置行中单个单元格的样式

    1. 前言 在近期的工作中遇到一个导出Excel的需求: 用户通过Excel导入信息,校验用户导入的信息是否合法:如果导入的信息不合法,则保存失败:并且需要精确到行的字段设置标识,然后再将用户导入的信 ...

  3. Excel生成报表之解决方案--设置单个单元格格式

    首先要看效果图: 单元格C3设置字体.数据格式和边框属性,要生成这样的效果要进行哪些设置.先看在微软Excel中如何需要设置. 一.微软Excel中设置单个单元格 1.首先在C3中输入数值12. 如果 ...

  4. easyExcel设置单个单元格(颜色)样式

    背景:需求是使用excel设置目标单元格的样式(颜色),但我之前没有学过easyExcel,在网上找资料的时候,发现有关easyExcel相关的单个单元格样式设置的资料比较少,有的还源码不全,只能说用 ...

  5. POI设置单个单元格的样式

    一.POI的基础样式 1. 单元格样式 CellStyle决定了单元格的显示样式,决定了单元格: - 单元格各个边框样式及颜色- 单元格填充图案.前景色及背景色- 单元格内容水平.垂直对齐方式- 单元 ...

  6. EasyExcel设置特定单个单元格(颜色)样式

    原文链接出自:easyExcel设置单个单元格(颜色)样式 背景:需求是使用excel设置目标单元格的样式(颜色),但我之前没有学过easyExcel,在网上找资料的时候,发现有关easyExcel相 ...

  7. hutool工具ExcelWriter设置单个单元格样式

    官网自定义样式: ExcelWriter writer = ...;// 定义单元格背景色 StyleSet style = writer.getStyleSet(); // 第二个参数表示是否也设置 ...

  8. Vue+iview表格如何给单个单元格设置样式

    官方文档地址:https://www.iviewui.com/components/table#TDYS,单元格:通过给数据 data 设置字段 cellClassName 可以给任意一个单元格指定样 ...

  9. wps交叉表_WPS表格中如何锁定单个单元格?,这几步你要了解

    如同加密文件一样,WPS表格中可以对单个单元格进行锁定.起到保护里面数据的作用,其具体操作步骤如下: 工具/材料 WPS办公软件 操作方法 01 在桌面上双击WPS表格的快捷图标,打开WPS表格这款软 ...

最新文章

  1. max点缓存烘焙帧_深入理解浏览器的缓存机制
  2. 软件工程概论 课堂练习【用例图——客户提出申请要求贷款...】
  3. 印度18岁天才少年,造出“全球最小卫星”,实力不容小觑!
  4. 巧用 ExcelFileCleaner 减小excel 文件大小
  5. labview曲线上两点画延长线_自由泳,那些防不胜防的错误动作(上)
  6. 数据结构基本操作_【算法与数据结构 03】数据处理的基本操作——增删查
  7. 2021年山东省安全员A证考试题及山东省安全员A证考试试卷
  8. 2020华为海思的实习生面试记录(雨人)
  9. candence与matlab电路仿真,电力电子电路仿真:MATLAB和PSpice应用
  10. macmini作为远程服务器,我在用我的 Mac mini 做什么
  11. 中级病案信息技术计算机基础知识要点,病案信息技术职称考试基础知识复习
  12. allegro cadence PCB中出光绘文件遇到database has errors:artwork generation cancled.please run dbdoctor问题的解决办法
  13. 海思android随笔之工厂菜单PQ acm color调用流程
  14. 《海盗猎人》的优秀读后感范文5000字
  15. Vue项目中background-image属性设置方法
  16. 完美体验 微软WP7智能手机七大功能亮点
  17. 记录(Record)
  18. 元旦抽空修了一下自己家的优步YB-530多功能家用静音跑步机
  19. 一体化步进伺服电机在插件机中的应用
  20. 【游戏客户端】聊天排行榜朋友圈系统实现机制

热门文章

  1. 2022-2028年中国电力行业节能减排投资分析及前景预测报告
  2. cannot find package “github.com/json-iterator/go“cannot find package “github.com/modern-go/reflect2“
  3. FastAPI 自动生成的docs文档没法使用
  4. 使用python建立简单的树机构
  5. 虚拟机环境下Centos7操作系统的详细安装教程
  6. 『PyTorch』第十一弹_torch.optim优化器 每层定制参数
  7. LeetCode简单题之有多少小于当前数字的数字
  8. LeetCode简单题之增量元素之间的最大差值
  9. Atomic Layer Deposition原子层沉积技术
  10. MindSpore部署图像分割示例程序