从内部表中查找特定记录

2020-09-13 16:37发布

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

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


code.txt

大家好,

我在尝试从最终内部表中获取一些记录时遇到问题。 我的要求是我的报表中有一个select-options,其中一些名称将由用户键入(以及其他选择)。 我需要检查显示记录的最终表应该只包含存在名称的行。

当前,在我的代码中,如果我在s_objid中输入以下名称:

(7.7 kB)

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

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


code.txt

大家好,

我在尝试从最终内部表中获取一些记录时遇到问题。 我的要求是我的报表中有一个select-options,其中一些名称将由用户键入(以及其他选择)。 我需要检查显示记录的最终表应该只包含存在名称的行。

当前,在我的代码中,如果我在s_objid中输入以下名称:

(7.7 kB)
付费偷看设置
发送
4条回答
My梦
1楼 · 2020-09-13 16:43.采纳回答

我自己找到解决方案时关闭了线程。

正确的逻辑是:

删除lt_final,其中(agent1不在s_objid和agent2中,不在in s_objid中,agent3不在s_objid中,agent3不在s_objid中,
agent4不在s_objid中,agent5不在s_objid和agent6中,不在s_objid中,agent7不在s_objid中, agent8不在s_objid中。)。

野沐沐
2楼-- · 2020-09-13 17:02

您的代码中有一些注释。

1。 您具有以L_为前缀的GLOBAL变量->这非常容易引起误解。 一致,有意义的变量名很重要。

2。 我可以看到这些变量中的 some 仅在表演中使用。 这些应该在使用的形式内声明。 如果您将它们设置为全局,那么就有冒险引入难以发现错误的风险。 不好。

3。 表演已过时->尝试学习ABAP对象并使用类和方法

4。 您正在使用FOR ALL ENTRIES而不是JOINS。 通常,JOINS的性能要优于FOR FOR ALL Entries(例如在99%的情况下)。 使用JOINS可以简化代码。

5。 如果要在SELECTED数据中使用唯一值,请使用DISTINCT。

6。 使用带有适当键的HASHED或SORTED内部表。 使用READ TABLE ... WITH TABLE KEY ...

7。 考虑使用CL_SALV_TABLE而不是REUSE_ALV_GRID_DISPLAY:它使用的代码更少,更简单。

Climb_Ma
3楼-- · 2020-09-13 16:57
的s_objid中的LOOP AT。
我是小鹏鹏啊
4楼-- · 2020-09-13 17:06

嗨,马修 ,

您能详细说明一下代码片段吗? 我有8个关于名称的字段(agent1,agent2 ..... agent8)。

我不知道名称在哪个中。 那么我该如何检查呢?

一周热门 更多>