表操作问题

2020-09-14 02:08发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)专家们, 我有一个内部表,其中...

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

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


专家们,

我有一个内部表,其中有28列说明类的特性,所以我的内部表看起来像这样。

其中f1 f2 ..是类特征

f1 f2 f3 f4 .. f28

我需要根据范围r1 r2 .. r28

过滤表条目

这意味着如果字段f1不在r1范围内,并且r1不是初始值,则删除该表入口,因为字段f1不在r1范围内,并且r1已填充。

我正在使用的程序是

将内部表tb_tab循环到wa

如果wa-f1不是初始的并且r1不是初始的

检查r1中的wa-f1

endif

如果wa-f2不是初始的并且r2不是初始的。

检查r2中的wa-f2。

endif

..

..类似地适用于28至r28

将wa附加到tb_temp

endloop。

最后删除表tb_tab并创建一个临时表tb_tab_temp,并将临时表的内容传递给tb_tab。

请提出是否还有其他更好的方法

谢谢

balu

1条回答
Cikesha
2020-09-14 02:38

我认为您应该检查范围是否是初始值,然后将其置于选择条件,您可以在此处使用动态sql。

或者您可以使用诸如以下的分配字段符号:

在itab上循环进入wa。
 做28次。
 将结构wa的组件sy-indx分配给字段符号()。
 分配| range_name {sy-indx} | 到。  "我这里没有要检查的系统,所以基本上您需要有28个量程
                                          "(除了最后一个号码)。

 检查中的。
 内。
 结束循环。

我认为上述代码并不能使性能更好,但会更短:)。

一周热门 更多>