按类方法从表中过滤字段值

2020-09-07 01:16发布

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

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


嗨,

如果我有类方法,则返回表,是否可以直接过滤表结果以从确切的行中获取字段值?

此标准的2行操作有效(但必须使用局部临时变量lt_tab)

DATA(lt_tab)= cl_myclass-> get_myobject(obj_id)-> get_mytable()。
DATA(lv_field_value)= lt_tab [line_id ='A'] -field_1。

如何达到这样的目标

DATA(lv_field_value)= cl_myclass-> get_myobject(obj_id)-> get_mytable()[line_id ='A'] -field_1。

此构造无效,我也通过FILTER#()尝试过,但也无效。

有什么想法吗?

谢谢。

帕维尔

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

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


嗨,

如果我有类方法,则返回表,是否可以直接过滤表结果以从确切的行中获取字段值?

此标准的2行操作有效(但必须使用局部临时变量lt_tab)

DATA(lt_tab)= cl_myclass-> get_myobject(obj_id)-> get_mytable()。
DATA(lv_field_value)= lt_tab [line_id ='A'] -field_1。

如何达到这样的目标

DATA(lv_field_value)= cl_myclass-> get_myobject(obj_id)-> get_mytable()[line_id ='A'] -field_1。

此构造无效,我也通过FILTER#()尝试过,但也无效。

有什么想法吗?

谢谢。

帕维尔

付费偷看设置
发送
2条回答
bbpeas
1楼-- · 2020-09-07 01:49

你好帕维尔,

请参阅表表达式的文档

在文档中提到了

  • 内部表itab必须直接使用其名称,字段符号或取消引用的数据引用来指定,如阅读位置

因此,总而言之,我们不能将表表达式用于从方法返回的itab,因为如上所述没有直接指定它。

另请参见此线程。 虽然有点老,但仍然适用。

最好的问候

lukcy2020
2楼-- · 2020-09-07 01:56

像class-> method()[value]这样的直接访问是不可能的,但是您可以循环或读取。

并且过滤器正在工作(表 必须进行散列或排序),idk如何过滤:

 CLASS测试定义。
   公共部分。
     CLASS-METHODS获得RETURNING VALUE(return_tab)TYPE Flighttab。
 ENDCLASS。
 类测试的实现。
   方法搞定。
     SELECT * FROM sflight INTO TABLE return_tab。
   终结法。
 ENDCLASS。
 选择开始。
   在test => get()处将LOOP AT插入CARID ='AA'的DATA(ls_data)中。
     写:/ls_data-carrid,ls_data-connid。
   结局。
  
   READ TABLE test => get()进入带有key carrid ='AA'的ls_data中。
  
   DATA(filter_tab)= FILTER flighttab(test => get()其中carrid = conv#('AA'))。
 "此语法错误,因为没有对flighttab进行散列或排序

一周热门 更多>