2020-08-22 17:41发布
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
专家们,
您能否为循环和读取共享ABAP 7.4新语法?
我在for循环的迭代中使用过。 但是如何在循环中包含read?
预先感谢
您提到的错误是因为您的代码完全没有意义。 让我解释一下您应该指出的内容。
gt_fin = VALUE tt_fin( 在lt_join中输入lw_j (要添加的行,必须类似于tt_fin的行类型)。)
可能,您需要这样的内容:
TYPES:Bygin of ty_fin, sernr TYPE字符串, matnr TYPE字符串, 结束于ty_fin, 带有空键的ty_fin的tt_fin类型标准表。 DATA(lt_join)=值tt_fin(())。 DATA(lt_ser)= VALUE tt_fin()。 DATA(gt_fin)=值tt_fin( 在lt_join中输入lw_j (matnr = VALUE#(lt_ser [sernr = lw_j-sernr] -matnr可选) sernr = lw_j-sernr ))。
您必须为lt_ser的行定义一个独立的类型(我假设它的名称为ty_ser)。 如果lt_ser被声明为内联,则可以在lt_ser内联声明之后执行以下操作:
TYPES ty_ser喜欢lt_ser的行。
非常感谢Sandra,感谢您耐心等待 我。
只是一个疑问。
这里我定义了tt_Fin。 但是lt_Ser是内联的,因此具有不同的类型。 仅当两者属于同一类型时,此方法才有效吗?
DATA(gt_fin)=值tt_fin(FOR lw_j IN lt_join (matnr = VALUE#(lt_ser [sernr = lw_j-sernr] -matnr可选) sernr = lw_j-sernr))。
您可以像下面那样尝试使用新的构造函数表达式(FLTER和CORRESPONDING)
类型进行检查: 从第1行开始, field1 TYPE i, field2 TYPE C LENGTH 1, 第1行的结尾, tt_line1第1行的类型排序表,具有非唯一键field1, 从第2行开始, field1 TYPE i, field3 TYPE i, 第2行的结尾, tt_line2第2行的类型排序表,具有非唯一键字段1, 从第3行开始, field1 TYPE i, field2 TYPE C LENGTH 1, field3 TYPE i, 第3行的结尾, tt_line3带有DEFAULT KEY的line3的标准类型表。 DATA(itab1)= VALUE tt_line1( (field1 = 1 field2 ='') (field1 = 3 field2 ='X') (field1 = 12 field2 ='4') (field1 = 11 field2 ='X'))。 DATA(itab2)= VALUE tt_line2( (field1 = 1 field3 = 1) (field1 = 1 field3 = 3) (field1 = 3 field3 = 4))。 DATA(itab3)=对应的tt_line3(过滤器tt_line1(itab1除了itab2外 其中field1 = field1))。
您正在使用的内部表应该是FILTER中排序表的类型。
-Mahesh
感谢sandra .. lt_Ser是否应始终为同一类型?
如果您需要加入连接 假设有一个匹配的行(否则来自tabl2的值是初始值),则通过table1将表从表1循环出并与table2联接,您可以按以下方式进行操作:
DATA(itab3)= VALUE ty_itab( 在itab1中 (键= wa键 valx = wa-valx valy = VALUE#(itab2 [key = wa-key] -valy OPTIONAL))))。
DATA(gt_fin)= VALUE tt_fin(FOR lw_j IN lt_join
(matnr = VALUE#(lt_ser [sernr = lw_j-sernr] -matnr可选) sernr = lw_j-sernr))。 令我困惑的是,如果您能告诉我这是怎么回事,那将非常有帮助。 这样我就可以在其他情况下自己使用它。 谢谢
您应该自己尝试。 您会学得更快。
现在,关于:
VALUE#(lt_ser [sernr = lw_j-sernr] -matnr OPTIONAL)
与 :
lt_ser [sernr = lw_j-sernr] -matnr
,除了不会发生CX_SY_ITAB_LINE_NOT_FOUND之外,它被替换为初始值。
如迈克尔所说, 查看文档:
https://help.sap。 com/doc/abapdocu_740_index_htm/7.40/zh-CN/index.html 。
尤其是表表达式:https://help.sap.com/doc/abapdocu_753_index_htm/7.53/zh-CN/index.htm?file=abentable_expressions.htm
最多设置5个标签!
您提到的错误是因为您的代码完全没有意义。 让我解释一下您应该指出的内容。
可能,您需要这样的内容:
您必须为lt_ser的行定义一个独立的类型(我假设它的名称为ty_ser)。 如果lt_ser被声明为内联,则可以在lt_ser内联声明之后执行以下操作:
非常感谢Sandra,感谢您耐心等待 我。
只是一个疑问。
这里我定义了tt_Fin。 但是lt_Ser是内联的,因此具有不同的类型。 仅当两者属于同一类型时,此方法才有效吗?
您可以像下面那样尝试使用新的构造函数表达式(FLTER和CORRESPONDING)
您正在使用的内部表应该是FILTER中排序表的类型。
-Mahesh
感谢sandra .. lt_Ser是否应始终为同一类型?
如果您需要加入连接 假设有一个匹配的行(否则来自tabl2的值是初始值),则通过table1将表从表1循环出并与table2联接,您可以按以下方式进行操作:
DATA(gt_fin)= VALUE tt_fin(FOR lw_j IN lt_join
您应该自己尝试。 您会学得更快。
现在,关于:
与 :
,除了不会发生CX_SY_ITAB_LINE_NOT_FOUND之外,它被替换为初始值。
如迈克尔所说, 查看文档:
https://help.sap。 com/doc/abapdocu_740_index_htm/7.40/zh-CN/index.html 。
尤其是表表达式:https://help.sap.com/doc/abapdocu_753_index_htm/7.53/zh-CN/index.htm?file=abentable_expressions.htm
一周热门 更多>