在内部表中查找特定值

2020-09-15 12:00发布

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

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


Hallo专家,
我正在尝试在内部表中查找特定值"物料编号",为此,我在下面编写了代码,但是由于我没有收到任何结果,它仍然缺少我一些东西。

类型:标签2的开始,
 lo_matnr TYPE matnr,
  选项卡的结尾2。
 数据:始于wa_tab1,
 wa_matnr TYPE matnr,
  wa_tab1的结尾,
  tbl_tab1喜欢wa_tab1的表
                      使用键wa_column1,
       tbl_tab1_result TYPE match_result_tab,
       wa_tab1_result与tbl_tab1_result类似。

 wa_tab1-wa_matnr = wa_mara-matnr。
 将wa_tab1附加到tbl_tab1。
 在表tbl_tab1中查找'20 -30412'的所有事件
               结果tbl_tab1_result在字符模式下。
 循环至tbl_tab1_result INTO wa_tab1_result。
   读取表tbl_tab1 INTO wa_tab1索引wa_tab1_result-line。
   如果sy-subrc = 0。
     WRITE:/'Line:',wa_tab1_result-line,'Offset:',wa_tab1_result-offset。
     写:"值是:",wa_tab1 + wa_tab1_result-offset(3)。
   万一。
 结局。
 

非常感谢

珍妮

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

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


Hallo专家,
我正在尝试在内部表中查找特定值"物料编号",为此,我在下面编写了代码,但是由于我没有收到任何结果,它仍然缺少我一些东西。

类型:标签2的开始,
 lo_matnr TYPE matnr,
  选项卡的结尾2。
 数据:始于wa_tab1,
 wa_matnr TYPE matnr,
  wa_tab1的结尾,
  tbl_tab1喜欢wa_tab1的表
                      使用键wa_column1,
       tbl_tab1_result TYPE match_result_tab,
       wa_tab1_result与tbl_tab1_result类似。

 wa_tab1-wa_matnr = wa_mara-matnr。
 将wa_tab1附加到tbl_tab1。
 在表tbl_tab1中查找'20 -30412'的所有事件
               结果tbl_tab1_result在字符模式下。
 循环至tbl_tab1_result INTO wa_tab1_result。
   读取表tbl_tab1 INTO wa_tab1索引wa_tab1_result-line。
   如果sy-subrc = 0。
     WRITE:/'Line:',wa_tab1_result-line,'Offset:',wa_tab1_result-offset。
     写:"值是:",wa_tab1 + wa_tab1_result-offset(3)。
   万一。
 结局。
 

非常感谢

珍妮

付费偷看设置
发送
6条回答
灬番茄
1楼 · 2020-09-15 12:47.采纳回答

你好,珍妮,

1。 您可以测试此字符的位置规格,该计数以0开头。

写:wa_mara-matnr + 1。 -> 0-30412
写入:wa_mara-matnr + 0。 -> 20-30412

在线帮助
https://help.sap.com/doc/ abapdocu_751_index_htm/7.51/zh-CN/abenoffset_glosry.htm

2。 关于比赛线:对。 请参阅我的第二个附件。

3。 值为= -20。 它不是负数,但您使用命令

wa_tab1 + wa_tab1_result-offset(3)->" 20-"和第三个ch ca-del-pngoffset- 0.png 字符是-。

最好的问候,
Hedvig

Tong__Ming
2楼-- · 2020-09-15 12:43

在问这类问题之前,您应该真正尝试调试。

宇峰科技
3楼-- · 2020-09-15 12:49

你好,珍妮,

请参阅我的附件,稍加修改即可使您的代码正常工作。

(不要在Unicode程序(WA_MARA-MATNR)的名称中使用"-",还是wa_MARA是内部表?

最好的问候,
Hedvig

暮风yp
4楼-- · 2020-09-15 12:55

非常感谢您,真的很有帮助。

我有一些问题,希望您能向我澄清,因为我发现结果不现实,或者我误会了这种操作。 所以上面的结果显示:

匹配线= 1'对我来说,这意味着一旦我做马拉,我将在第一行中找到20-30412的交易者,而情况并非如此,因为在50250行中会找到20-30412。

从行首= 0开始的偏移量,这里是LINE = 1,因此偏移量将相应为0。

值是= -20。 我不知道为什么这里的值是负数。

非常感谢。

珍妮

Haoba3210
5楼-- · 2020-09-15 12:40

如果只需要一个条目,请尝试使用"读取",或者如果您需要多个条目,并且需要循环,则可以使用"在哪里放宽"。

在tbl_tab1处将LOOP放入wa_tab1中,其中wa_matnr = '20 -30412'。
 *在这里写代码
 结局
 
Aaron 3364
6楼-- · 2020-09-15 12:39

我认为这可能是问题所在:

 tbl_tab1类似wa_tab1 WITHKEY wa_column1的表,

由于该表必须是没有辅助表键的标准表,所以为什么不尝试:(否则您的表没有该数据模式)

带有键LO_MATNR的TAB2的TBL_TAB1类型表,

一周热门 更多>