ABAP 对内表的操作(增删改读及alv双击读取数据)

19 篇文章 3 订阅

https://www.cnblogs.com/wh-cnblogs/p/15989485.html

对内表操作: gt开头为内表(gt_zav,gt_S001) , wa 开头为工作区 (wa_zav,wa_S001)

*修改
*MODIFY TABLE gt_zav FROM wa_zav. "修改整行
*MODIFY TABLE gt_zav FROM wa_zav TRANSPORTING carrid. "修改某行的一个字段
*MODIFY gt_S001 FROM wa_S001 INDEX 1. "根据下标修改整行
*MODIFY gt_S001 FROM wa_S001 INDEX 1 TRANSPORTING spmon. "根据下标修改一行某个字段
*MODIFY gt_S001 FROM wa_S001 TRANSPORTING spmon where pmon = ‘199701’. "根据条件修改多行符合条件的

*删除
*DELETE TABLE gt_zav from wa_zav."删除一条
*DELETE gt_zav WHERE carrid = ‘1’. "根据条件删除多条
*DELETE gt_zav FROM 5 TO 10. "删除5到10
*DELETE gt_zav FROM 5. "除5以后的
*DELETE gt_zav TO 10. "除开始到第十条的

*插入 (如果带表头的表,或者内标和工作区同名,这可以用隐式插入,不需要什么工作区INTO到什么表)
*Append xx" 带表头 插入到表最后一行
*APPEND 工作区 TO 内表 "不带表头 插入到表最后一行
*APPEND LINES OF gt_S002 TO gt_S001. "将gt_S002 表所有数据插入gt_S001 表的表尾巴
*APPEND LINES OF gt_S002 FROM 2 TO 4 TO gt_S001. "将 gt_S002表的2到4行插入 gt_S001表的表尾巴
*COLLECT wa_S001 INTO gt_S001. "所有字段不同插入表尾,所有字段相同,只有数值字段不同则数字字段汇总,变为一条数据

*INSERT wa_S001 INTO TABLE gt_S001. "插入一条到表尾
*INSERT wa_S001 INTO gt_S001 INDEX 3 . " 插入一条数据至下标行
*INSERT LINES OF gt_S002 INTO TABLE gt_S001. "将gt_S002 表所有数据插入 gt_S001表的表尾巴
*INSERT LINES OF gt_S002 FROM 2 TO 4 INTO TABLE gt_S001. " 将gt_S002表的2到4行插入gt_S001表的表尾巴

*注:使用 INSERT 时,如果表内已存在唯一主键 ,则sy-subrc 会返回4 ,但不会 dump error,反之sy-subrc会返回 0

*读取(读取内表数据 read 是根据 key取整个表里查,所以 read 得表不用在循环了; 带表头和工作区域表名一致的可以省略 into 后语句,读取成功sy-subrc 返回 0 ,否则返回4)
*读取内表
READ TABLE gt_S001 INTO wa_S001 WITH KEY matnr = ‘PC_SERVICE_A’. "读取内表符合条件的字段入工作区,如果有多条,取内表符合的第一条sy-subrc 返回0
READ TABLE gt_S001 INTO wa_S001 WITH KEY matnr = ‘PC_SEVICE_A’. 读取内表符合条件的字段入工作区,如果有多条,取内表符合的第一条 sy-subrc返回 0
READ TABLE gt_S001 INTO wa_S001 INDEX 1. "读取内表下标为x 的放入工作区
READ TABLE gt_S001 WITH TABLE KEY 字段 = ‘xxxx’ 字段 = ‘xxx’ INTO wa_S001. "这必须key的键值条件写全,否则报错缺少表xx的键值primary_key 的组件 字段说明…

READ TABLE 内表 into 工作区

*备注:
读取alv双击的下标放入工作区 (注: rs_selfield TYPE slis_selfield.)
READ TABLE 内表 INTO DATA(工作区) INDEX rs_selfield-tabindex
*获取点击的字段的值
rs_selfield-fieldname

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值