ABAP分享五 ALV修改单元格并将修改数据更新到数据表中示例1
*下面的代码是在alv字段中修改字段的内容,点击保存后就可以保存数据至数据表。
TABLES: spfli.
DATA:
wa_fieldcat TYPE lvc_s_fcat , " 相当于工作区
i_fieldcat TYPE lvc_t_fcat , " 存放输出栏位名称的列表
i_layout TYPE lvc_s_layo . " 负责整个ALV的全局属性
DATA tab_spfli LIKE TABLE OF spfli WITH HEADER LINE. " 定义内表
DATA wa_spfli TYPE spfli.
DATA it_spfli LIKE STANDARD TABLE OF spfli. " 定义内表
DATA lt_spfli TYPE spfli.
SELECT * FROM spfli
INTO CORRESPONDING FIELDS OF TABLE tab_spfli. "将数据表中的数据存入内表中
PERFORM getfield.
PERFORM is_layout.
DATA: l_user_command TYPE slis_formname VALUE 'USER_COMMAND'. "定义返回事件
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY_LVC' "定义显示内表
EXPORTING
I_CALLBACK_PROGRAM = sy-repid
I_CALLBACK_USER_COMMAND = l_user_command
IS_LAYOUT_LVC = i_layout
IT_FIELDCAT_LVC = i_fieldcat
I_SAVE = 'A'
TABLES
t_outtab = tab_spfli
EXCEPTIONS
PROGRAM_ERROR = 1
OTHERS = 2
.
IF sy-subrc <> 0.
* Implement suitable error handling here
ENDIF.
FORM getfield. "定义显示字段
wa_fieldcat-col_pos = 1 .
wa_fieldcat-fieldname = 'CARRID'.
wa_fieldcat-just = 'C'.
wa_fieldcat-seltext = '航线代码'.
wa_fieldcat-fix_column = 'X'.
APPEND wa_fieldcat TO i_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-col_pos = 2 .
wa_fieldcat-fieldname = 'CONNID'.
wa_fieldcat-just = 'C'.
wa_fieldcat-seltext = '航班连接号'.
wa_fieldcat-fix_column = 'X'.
APPEND wa_fieldcat TO i_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-col_pos = 3 .
wa_fieldcat-fieldname = 'CITYFROM'.
wa_fieldcat-just = 'C'.
wa_fieldcat-seltext = '起飞城市'.
wa_fieldcat-edit = 'X'. "设置成可编辑状态
APPEND wa_fieldcat TO i_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-col_pos = 4 .
wa_fieldcat-fieldname = 'CITYTO'.
wa_fieldcat-just = 'C'.
wa_fieldcat-seltext = '到达城市'.
wa_fieldcat-edit = 'X'. "设置成可编辑状态
APPEND wa_fieldcat TO i_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-col_pos = 5 .
wa_fieldcat-fieldname = 'DERTIME'.
wa_fieldcat-just = 'C'.
wa_fieldcat-seltext = '出发时间'.
APPEND wa_fieldcat TO i_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-col_pos = 6 .
wa_fieldcat-fieldname = 'ARRTIME'.
wa_fieldcat-just = 'C'.
wa_fieldcat-seltext = '到达时间'.
APPEND wa_fieldcat TO i_fieldcat.
CLEAR wa_fieldcat.
ENDFORM.
FORM is_layout. "定义ALV显示样式
i_layout-ZEBRA = 'X'.
i_layout-CWIDTH_OPT = 'X'.
ENDFORM.
FORM user_command USING r_ucomm LIKE sy-ucomm "执行事件
rs_selfield TYPE slis_selfield.
CASE r_ucomm .
WHEN '&DATA_SAVE'. "当点击保存按钮时执行下面代码
SELECT * FROM spfli INTO TABLE it_spfli "tab_spfli 查找数据表中数据到内表
FOR ALL ENTRIES IN tab_spfli
WHERE carrid = tab_spfli-carrid AND connid = tab_spfli-connid.
LOOP AT it_spfli INTO lt_spfli. "循环内表
READ TABLE tab_spfli INTO wa_spfli WITH KEY "读取修改后的内表
carrid = lt_spfli-carrid connid = lt_spfli-connid.
IF sy-subrc = 0. "如果读取一致将修改后的内表字段的值赋值给新内表字段
lt_spfli-cityfrom = wa_spfli-cityfrom.
lt_spfli-cityto = wa_spfli-cityto.
MODIFY it_spfli FROM lt_spfli. "更新修改后的内表字段的值
ENDIF.
CLEAR lt_spfli.
CLEAR wa_spfli.
ENDLOOP.
UPDATE spfli FROM TABLE it_spfli. "根据更新后的内表更新数据表,将更新后的字段的值传入数据表中。
IF sy-subrc = 0.
COMMIT WORK.
* MESSAGE '保存成功' TYPE 'I'.
MESSAGE '保存成功' TYPE 'I'.
ELSE.
ROLLBACK WORK.
ENDIF.
WHEN '2'.
WHEN OTHERS.
ENDCASE.
ENDFORM.
ABAP分享五 ALV修改单元格并将修改数据更新到数据表中示例1的更多相关文章
- ABAP分享二 ALV标准范例DEMO汇总
SAP软件针对ALV的使用方法,提供了ALV标准demo程序: sap提供的ALV标准demo程序,只是展示简单的数据,用function ALV即可,若有复杂的增删改查操作 建议使用OO ALV,下 ...
- Easyui之datagrid实现点击单元格修改单元格背景颜色
前段时间有个需求中有点击datagrid的单元格实现某种事件,调用datagrid的onclickCell这个方法很容易实现,但是体验不好啊,完全不知道自己刚才点击的是哪个单元格,然后就尝试单击单元格 ...
- Excel表格如何保护单元格不被修改
Excel如何保护单元格不被修改 有时使用Excel时希望保护单元格不被修改,这可以叫做单元格的“写保护”即把光标定位在一个不允许输入数据的区域内时,是无论如何也无法在里面输入数据的.下面咱们就一起 ...
- poi操作Excel并修改单元格背景色
废话不多说,直接来代码!!! 其中标红的才是重点!!! 代码中有时可以不用创建新文件, 如果报错的话可以通过创建新文件来进行操作(懒,没去找报错原因),不过原文件也会被修改. 操作之前做好备份!操作之 ...
- 27.openpyxl 向指定单元格添加图片并修改图片大小 以及修改单元格行高列宽
openpyxl 向指定单元格添加图片并修改图片大小 以及修改单元格行高列宽 from openpyxl import Workbook,load_workbook from openpyxl.dra ...
- SQL Server 2008空间数据应用系列五:数据表中使用空间数据类型
原文:SQL Server 2008空间数据应用系列五:数据表中使用空间数据类型 友情提示,您阅读本篇博文的先决条件如下: 1.本文示例基于Microsoft SQL Server 2008 R2调测 ...
- mssql sqlserver 使用sql脚本检测数据表中一列数据是否连续的方法分享
原文地址:http://www.maomao365.com/?p=7335 摘要: 数据表中,有一列是自动流水号,由于各种操作异常原因(或者插入失败),此列数据会变的不连续,下文将讲述使用sql ...
- 使用PreparedStatement向数据表中插入、修改、删除、获取Blob类型的数据
使用PreparedStatement向数据表中插入.修改.删除.获取Blob类型的数据 2014-09-07 20:17 Blob介绍 BLOB类型的字段用于存储二进制数据 MySQL中,BLOB是 ...
- ABAP ALV单个单元格状态编辑
*&---------------------------------------------------------------------* *& Report ZPPR0024 ...
随机推荐
- 洛谷 题解 P3161 【[CQOI2012]模拟工厂】
本蒟蒻又双叒叕被爆踩辣! 题目链接 Solution: 这题又是一道贪心.. 数据范围: n<=15 ti<=100,000 gi<=10^9 mi<=10^9 这里就可以看到 ...
- luogu P3807 【模板】卢卡斯定理
求 C(n,n+m)%p C(m,n)%p=C(m%p,n%p)*C(m/p,n/p) #include<cstdio> #include<cstring> #include& ...
- luogu P3152 正整数序列
题目描述 kkk制造了一个序列,这个序列里的数全是由正整数构成的.你别认为她的数列很神奇--其实就是1, 2, -, n而已.当然,n是给定的.kkk的同学lzn认为0是一个好数字(看上去很饱满有木有 ...
- Webstorm相关设置
[1.快速激活Webstorm] http://jingyan.baidu.com/article/9f63fb919674f2c8400f0e9a.html [2.webstorm 2017 激活破 ...
- openstack学习之neutron ml2初始化代码分析
这里没有 去详细考虑neutron server怎么初始化的,而是直接从加载插件的地方开始分析.首先我们看下下面这个文件. Neutron/api/v2/router.py class APIRout ...
- ARTS-S centos查看端口被哪个进程占用
netstat -tunlp | grep 80 或者 lsof -i:80
- USB视频采集系统 视频测试软件将正式发布(方便调试测试各自摄像头,RAW,RGB,YUV)
先上图,看看这个软件,学习fpga将近一年,了解视频图像开发方向也半年有余,不断学习不断总结,开发软件工具是为了更方便的学习新通信 主要相关知识: FPGA+SDRAM+VGA(双端口fifo技术) ...
- leetcode-算法系列-两数之和
本系列的题目都是出自于"leetcode" 用博客记录是为了加强自己的记忆与理解,也希望能和大家交流更好更优的解题思路. 题目: 给定一个整数数组和一个目标值,找出数组中和为目标值 ...
- C语言每日一练——第5题
一.题目要求 选出大于100小于1000的所有个位数与十位数字之和被10除所得余数恰好是百位数字的所有数字(如293).计算并输出上述这些素数的个数cnt以及这些素数值得sum,最后把结果cnt和su ...
- 【Java】在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。
题目描述: 在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整 ...