通过FOR或REDUCE重写LOOP

2020-09-09 01:51发布

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

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


大家好

是否可以使用FOR或REDUCE重写此代码段?

将t_customres的LOOP引用到DATA(ls_customer)中。
  如果line_exists(t_routes [route = ls_customer-> route])。
  继续。
  万一。
  插入ls_customer-> *到表lt_filtered_customers中。
 ENDLOOP。

整个程序:

类型:
  开始于ty_customer,
  客户TYPE char10,
  名称TYPE char30,
  城市TYPE char30,
  路线TYPE char10,
  结束于ty_customer。
 类型:tt_customers ty_customer的类型排序表
  与唯一关键的客户。
 类型:
  开始ty_routes,
  路线TYPE char10,
  名称TYPE char40,
  结束ty_routes。
 类型:tt_routes ty_routes的类型排序表
  带唯一键路线。
 数据(t_customres)=
  VALUE tt_customers(
  (客户='C0001'名称='测试客户1'城市='纽约'路线='R0001')
  (客户='C0002'名称='客户2'城市='洛杉矶'路线='R0003')
  (客户='C0003'名称='良好客户3'城市='DFW'路线='R0001')
  (客户='C0004'名称='最佳客户4'城市='CH'路线='R0003')
  (客户='C0005'名称='最佳客户4'城市='CH'路线='R0005')
  (客户='C0006'名称='最佳客户4'城市='CH'路线='R0005')
  )。
 DATA(t_routes)=
  VALUE tt_routes(
  (route ='R0001'name ='Route 1')
  (route ='R0002'name ='Route 2')
  (route ='R0003'name ='Route 3')
  )。
 DATA(lt_filtered_customers)= VALUE tt_customers()。
 在t_customres引用数据(ls_customer)中循环。
  如果line_exists(t_routes [route = ls_customer-> route])。
  继续。
  万一。
  插入ls_customer-> *到表lt_filtered_customers中。
 ENDLOOP。

谢谢

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

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


大家好

是否可以使用FOR或REDUCE重写此代码段?

将t_customres的LOOP引用到DATA(ls_customer)中。
  如果line_exists(t_routes [route = ls_customer-> route])。
  继续。
  万一。
  插入ls_customer-> *到表lt_filtered_customers中。
 ENDLOOP。

整个程序:

类型:
  开始于ty_customer,
  客户TYPE char10,
  名称TYPE char30,
  城市TYPE char30,
  路线TYPE char10,
  结束于ty_customer。
 类型:tt_customers ty_customer的类型排序表
  与唯一关键的客户。
 类型:
  开始ty_routes,
  路线TYPE char10,
  名称TYPE char40,
  结束ty_routes。
 类型:tt_routes ty_routes的类型排序表
  带唯一键路线。
 数据(t_customres)=
  VALUE tt_customers(
  (客户='C0001'名称='测试客户1'城市='纽约'路线='R0001')
  (客户='C0002'名称='客户2'城市='洛杉矶'路线='R0003')
  (客户='C0003'名称='良好客户3'城市='DFW'路线='R0001')
  (客户='C0004'名称='最佳客户4'城市='CH'路线='R0003')
  (客户='C0005'名称='最佳客户4'城市='CH'路线='R0005')
  (客户='C0006'名称='最佳客户4'城市='CH'路线='R0005')
  )。
 DATA(t_routes)=
  VALUE tt_routes(
  (route ='R0001'name ='Route 1')
  (route ='R0002'name ='Route 2')
  (route ='R0003'name ='Route 3')
  )。
 DATA(lt_filtered_customers)= VALUE tt_customers()。
 在t_customres引用数据(ls_customer)中循环。
  如果line_exists(t_routes [route = ls_customer-> route])。
  继续。
  万一。
  插入ls_customer-> *到表lt_filtered_customers中。
 ENDLOOP。

谢谢

付费偷看设置
发送
1条回答
哎,真难
1楼-- · 2020-09-09 01:57

理想情况下,您可以这样做:

 DATA(lt_filtered_customers1)= VALUE tt_customers(FOR ls_customer1 IN t_customres
                                                    (COND#(当不存在line_exists(t_routes [route = ls_customer1-route])THEN ls_customer1)))。

一周热门 更多>