基于两列值条件删除内部表

2020-09-12 04:24发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


大家好,

我有一个包含17条记录的内部表

我需要根据两个字段列的值删除两行

例如:

条件为,如果移动类型警告为102,并且其文档编号为belnr为初始,则它将检查101移动类型,并且其文档编号也为初始。

它应该从内部表格中删除这两个订单项。如何实现?

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


大家好,

我有一个包含17条记录的内部表

我需要根据两个字段列的值删除两行

例如:

条件为,如果移动类型警告为102,并且其文档编号为belnr为初始,则它将检查101移动类型,并且其文档编号也为初始。

它应该从内部表格中删除这两个订单项。如何实现?

付费偷看设置
发送
6条回答
大道至简
1楼-- · 2020-09-12 05:19

嗨,

我修改了-检查一下:

将it_tab放入数据(ls_tab1)中,其中bwart = 102并且belnr =''。

Lv_tabix1 = sy-tabix。

使用键101和belnr = space将it_tab读入数据(ls_tab2)。

如果sy-subrc是初始的。

lv_tabix2 = sy-tabix。

删除it_tab索引索引lv_tabix1。 "删除102

删除it_tab索引索引lv_tabix2。 "删除101

endif。

Endloop。

谢谢

Mohan

Tong__Ming
2楼-- · 2020-09-12 05:25
 *语法可能错误,请重写自己...

 在ITAB分配所在的BWART ='102'时环
                               贝尔尼是首创。
 读取表ITAB密钥BWART ='101'时不传输任何字段
                                                 BELNR =''。
 如果SY-SUBRC EQ 0。
    标志='X'。
 万一。
 结局。


 IF FLAG EQ ABAP_TRUE。
    删除ITAB WHERE BWART ='102'和'101'。
 万一。
 
My梦
3楼-- · 2020-09-12 05:24
排序:<内部表> BY <主键>。

 使用键BWART ='102'的READ TABLE <内部表>进入
                                                        BELNR =空间
                                                        二进制搜索。
 如果sy-subrc EQ 0。
   使用键BWART ='101'的READ TABLE <内部表>进入
                                                          BELNR =空间
                                                          二进制搜索。
   如果sy-subrc EQ 0。
      从<内部表>中删除。
      从<内部表>中删除。
   万一。
 万一。
                                                             
Climb_Ma
4楼-- · 2020-09-12 05:03

我认为有很多解决方案,只需添加我的一个即可:)

在itab INTO wa上按(vbeln = wa-vbeln)ASSIGNING <  fs_grp_key>。
   如果 -vbeln是INITIAL。
  循环到组 INTO wa2。
  如果wa2-bwart ='102'并且line_exist( [bwart ='101'])。
  其他。
  it_final = VALUE#(基础(it_final)(wa2))。
  万一。
  结局。
  其他。
  it_final = VALUE#(BASE(it_final)FOR GROUP (m)中的m)。
  万一。
 ENDLOOP。
悠然的二货
5楼-- · 2020-09-12 05:24

排序!

谢谢大家。

SAP小黑
6楼-- · 2020-09-12 05:17

嗨,莫汉,

那不是我的要求。

我需要检查第一个移动类型102及其文档编号,如果它是初始的,那么我应该检查101及其文档编号。

如果两个文档号都是首字母,我将删除两行

一周热门 更多>