读表与键,小学或中学?

2020-08-19 19:28发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)大家好, 我一直在阅读ABAP...

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

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


大家好,

我一直在阅读ABAP 740读取表语句。

问题:

我有一个zfield,其中field1到field10仅以field1作为主键。

1)我正在通过程序中的一个itab读取"带有键field2 =变量(从wa循环)将表读入wa"

此field2未指定为key,所以我将获得第一个找到的行,对吧? 如果是,我的推导结果可能正确或错误。

2)还是应该将其声明为"具有非唯一排序键field2_field3 COMPONENTS field2 field3。

3)因为我将不得不在代码中多次读取具有field2或field3的itab。

4条回答
空代码
2020-08-19 20:18

如果tab1不仅是表,而且标题行为" WITH HEADER",则只能设置tab1-zzprdgrp 声明时为" LINE"。 但是该概念不再使用,因为您仍然必须从标题行结构更新到您所引用表中的实际记录。

相反,字段符号要好得多, 因为在这种情况下,对表的实际记录的"引用"以及对字段符号的任何更改也对表的记录进行了更改。

因此,我选择写 您的代码是这样的:

",它使用Field-Symbols作为记录,而不是复制到其中的新DATA变量
 循环到itab分配。

   "旧的READ TABLE语句
   使用键knuma =  -knuma读取表itab2分配。
   如果sy-subrc EQ 0。
      -ZZPRDGRP =  -ZZPRDGRP。
   万一。

    "新的读取表表达式,可能的错误需要被捕获
    尝试。
         -ZZPRDGRP = itab2 [knuma =  -knuma] -ZZPRDGRP。
      捕获cx_sy_itab_line_not_found。
    ENDTRY。
 结局。
 

一周热门 更多>